Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrealey2005-04-19 17:35:02 +0000
committercbrealey2005-04-19 17:35:02 +0000
commit971d821534b5c95766bd2839d77be1e4b518d73b (patch)
tree302d5be26445644d36e59abebd479e2e17c19ab3 /bundles/org.eclipse.wst.ws.explorer
parent8d8e8d6abe52012d9c8a6174777f608a0890b48a (diff)
downloadwebtools.webservices-971d821534b5c95766bd2839d77be1e4b518d73b.tar.gz
webtools.webservices-971d821534b5c95766bd2839d77be1e4b518d73b.tar.xz
webtools.webservices-971d821534b5c95766bd2839d77be1e4b518d73b.zip
[88679] [91880] Refactor Web Services Explorer from component jst.ws to wst.ws / Delete obsolete org.eclipse.wst.ws plugins
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer')
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/.classpath8
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/.cvsignore7
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/.project28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/build-war-pde.xml50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/build-war.xml56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/build.properties24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/plugin.properties35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/plugin.xml93
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/CatalinaRunnable.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOption.java51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOptions.java50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardRunnable.java52
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardTask.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorer.java230
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerContext.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerLauncherCommand.java87
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeDefault.java77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeWSE.java76
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/plugin/ExplorerPlugin.java194
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java122
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/Action.java130
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/CheckWorkbenchFileReadOnlyAction.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearNodeAction.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearViewElementAction.java78
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormAction.java70
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormInputException.java26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToFileSystemAction.java127
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToWorkbenchAction.java217
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LaunchWebServiceWizardAction.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LinkAction.java81
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/NodeAction.java120
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenCalendarBrowserAction.java67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenWSDLBrowserAction.java51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ProxyLoadPageAction.java45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ResizeFramesAction.java54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/RetrieveHistoryAction.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeToolAction.java160
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ShowPerspectiveAction.java76
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ToggleNodeAction.java86
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ValidateEditAction.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WSDLFileNameHelper.java37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WriteWSDLToWorkbenchAction.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ActionInputs.java104
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/FrameNames.java28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ModelConstants.java19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ToolTypes.java19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListElement.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListManager.java120
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/TreeElement.java42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionDataParser.java231
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java234
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/constants/ActionDataConstants.java30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ActionDescriptor.java92
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ScenarioDescriptor.java26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/TransactionDescriptor.java26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/CurrentNodeSelectionTransformer.java47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ITransformer.java19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MassNodeIdTransformer.java105
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MultipartFormDataParserTransformer.java77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeIdTransformer.java134
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeSelectionTransformer.java163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ViewSelectionTransformer.java121
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddBusinessToUDDIPerspectiveAction.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddRegistryToUDDIPerspectiveAction.java43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceInterfaceToUDDIPerspectiveAction.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceToUDDIPerspectiveAction.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddToUDDIPerspectiveAction.java216
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddWSILToWSILPerspectiveAction.java76
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesAddToWSDLPerspectiveAction.java72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToFileSystemAction.java85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToWorkbenchAction.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesLaunchWebServiceWizardAction.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesRestoreDefaultFavoritesAction.java71
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesToggleNodeAction.java75
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/MultipleLinkAction.java110
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/RemoveFavoritesAction.java132
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/ResizeFavoritesFramesAction.java129
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesNodeAction.java70
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesToolAction.java90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SwitchPerspectiveFromFavoritesAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesActionInputs.java23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesFrameNames.java26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesModelConstants.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesElement.java37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesFolderElement.java50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesMainElement.java136
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessElement.java47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessFolderElement.java117
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryElement.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryFolderElement.java193
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceElement.java47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceFolderElement.java118
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceElement.java47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceFolderElement.java118
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceElement.java39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceFolderElement.java110
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILElement.java39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILFolderElement.java108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddToUDDIPerspectiveTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddWSILToWSILPerspectiveTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesAddToWSDLPerspectiveTool.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToFileSystemTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToWorkbenchTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesLaunchWebServiceWizardTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesMainNode.java83
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorFolderNode.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorNode.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesPerspective.java156
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesRestoreDefaultFavoritesTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesSetDefaultViewTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessFolderNode.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryFolderNode.java61
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceFolderNode.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceFolderNode.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceFolderNode.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceNode.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILDetailsTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILFolderNode.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIBusinessTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIRegistryTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceInterfaceTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSDLServiceTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSILTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/RemoveFavoritesTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ActionTool.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/AddToWSDLPerspectiveTool.java20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/BreadCrumb.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Controller.java225
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FolderNode.java27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormTool.java103
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolProperties.java108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolPropertiesInterface.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/History.java94
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToFileSystemTool.java19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToWorkbenchTool.java23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchOptionsManager.java95
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchWebServiceWizardTool.java23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageBundle.java126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageProvider.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageQueue.java49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Node.java448
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/NodeManager.java251
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Perspective.java57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SectionHeaderInfo.java61
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SetDefaultViewTool.java20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Tool.java107
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ToolManager.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ViewTool.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddItemsToFavoritesAction.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddPublisherAssertionsAction.java231
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddToFavoritesAction.java231
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceAdvancedAction.java52
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceSimpleAction.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusinessGetServicesAction.java81
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorFolderNodeAction.java44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodeAction.java63
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodesAction.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CommonPublisherAssertionsAction.java98
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CompletePublisherAssertionsAction.java206
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/FindAction.java249
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ManageReferencedServicesAction.java365
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenCategoryBrowserAction.java60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenRegistryAction.java232
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/PublishAction.java223
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodeAction.java239
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodesAction.java69
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessUUIDAction.java108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesAdvancedAction.java303
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesSimpleAction.java117
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfaceUUIDAction.java108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesAdvancedAction.java363
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesSimpleAction.java114
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceUUIDAction.java108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesAdvancedAction.java376
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesSimpleAction.java116
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessAdvancedAction.java265
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessSimpleAction.java111
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceAdvancedAction.java363
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceAdvancedAction.java234
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceSimpleAction.java156
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceSimpleAction.java212
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemovePublisherAssertionsAction.java217
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemoveSubQueryItemAction.java75
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ResizeUDDIFramesAction.java129
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectCategoryNodeAction.java71
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectFindToolAction.java83
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectNavigatorNodeAction.java73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectPropertiesToolAction.java83
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectSubQueryItemAction.java226
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetBusinessAction.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetServiceInterfacesAction.java78
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetBusinessesAction.java85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetServicesAction.java85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ShowPublisherAssertionsAction.java408
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SwitchPerspectiveFromUDDIAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleCategoryNodeAction.java79
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleNavigatorNodeAction.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferSubQueryResultsAction.java136
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferToAddCategoryDataAction.java43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIAddToWSDLPerspectiveAction.java131
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToFileSystemAction.java112
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToWorkbenchAction.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDILaunchWebServiceWizardAction.java89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDINodeAction.java38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIPropertiesFormAction.java47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UnpublishAction.java157
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateAction.java170
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateBusinessAction.java401
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateRegistryAction.java122
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceAction.java483
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceInterfaceAction.java331
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIActionInputs.java209
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIFrameNames.java30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIModelConstants.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/AbstractUDDIElement.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/BusinessElement.java51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryElement.java57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryModel.java532
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublishedItemsElement.java37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublisherAssertionElement.java112
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryElement.java62
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryParentElement.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/RegistryElement.java228
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceElement.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceInterfaceElement.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/UDDIMainElement.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/AddToFavoritesTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusPublishServiceTool.java109
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessDetailsTool.java71
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessNode.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/CategoryNode.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/DetailsTool.java77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetBusinessesTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServiceInterfacesTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ItemsSummaryTool.java49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManagePublisherAssertionsTool.java103
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManageReferencedServicesTool.java102
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/MultipleFormToolPropertiesInterface.java19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/PublishedItemsNode.java120
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryNode.java124
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryParentNode.java78
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RefreshTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegFindTool.java137
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegPublishTool.java125
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java233
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ResultsTool.java42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RootCategoryNode.java59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceDetailsTool.java75
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceDetailsTool.java82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceNode.java57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceNode.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryKeyProperty.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryTransferTarget.java89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIAddToWSDLPerspectiveTool.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToFileSystemTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToWorkbenchTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDILaunchWebServiceWizardTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIMainNode.java112
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorFolderNode.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorNode.java41
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java506
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UnpublishTool.java54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/util/Uddi4jHelper.java398
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/CharArrayWrapper.java37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java185
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataException.java25
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataParser.java243
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/TrimFilter.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/URLUtils.java101
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/Validator.java38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/XMLUtils.java140
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ClearWSDLAction.java96
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/CreateInstanceAction.java87
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpGetOperationFormAction.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpOperationFormAction.java109
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpPostOperationFormAction.java68
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationAction.java270
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationFormAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationSourceAction.java191
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenWSDLAction.java98
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenXSDInfoDialogAction.java44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/RefreshWSDLAction.java131
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ResizeWSDLFramesAction.java129
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLNavigatorNodeAction.java69
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLPropertiesToolAction.java90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SwitchPerspectiveFromWSDLAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SynchronizeFragmentViewsAction.java121
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ToggleWSDLNavigatorNodeAction.java74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/UpdateWSDLBindingAction.java90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLAddToFavoritesAction.java92
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToFileSystemAction.java70
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToWorkbenchAction.java49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLLaunchWebServiceWizardAction.java45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLPropertiesFormAction.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/BindingTypes.java23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/FragmentConstants.java91
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLActionInputs.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLFrameNames.java30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLModelConstants.java28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/Endpoint.java67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLBindingElement.java226
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLCommonElement.java54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLElement.java326
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLOperationElement.java261
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLServiceElement.java109
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IFragment.java39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncArrayFragment.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncodingWrapperFragment.java18
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDComplexFragment.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDDelegationFragment.java16
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDElementFragment.java16
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDFragment.java29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupAllFragment.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupChoiceFragment.java20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupFragment.java22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupSeqFragment.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDMapFragment.java23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleAtomicFragment.java14
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleListFragment.java15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleUnionFragment.java18
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDComplexTypeToFragmentMapper.java44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDElementDeclarationToFragmentMapper.java91
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDLiteralXMLEncodingToFragmentMapper.java77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDParticleToFragmentMapper.java100
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSOAPEncodingToFragmentMapper.java129
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSimpleTypeToFragmentMapper.java162
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentConfiguration.java90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentController.java88
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentMapper.java84
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/Fragment.java103
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFixFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFragment.java188
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayRangeFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncodingWrapperFragment.java186
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFixFragment.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFragment.java224
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexRangeFragment.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDefaultFragment.java121
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDelegationFragment.java113
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java223
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDEmptyFragment.java120
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDFragment.java317
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupAllFragment.java168
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFixFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java169
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceRangeFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupFragment.java262
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFixFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFragment.java30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqRangeFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDMapFragment.java230
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeFixFragment.java28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeRangeFragment.java28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFixFragment.java38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFragment.java42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumRangeFragment.java38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFixFragment.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFragment.java28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicRangeFragment.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFixFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java149
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListRangeFragment.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFixFragment.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFragment.java120
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionRangeFragment.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/HTTPUtil.java105
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/OptionVector.java66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/XSDTypeDefinitionUtil.java114
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/DetailsTool.java39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/InvokeWSDLOperationTool.java94
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/OpenWSDLTool.java37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/SOAPMessageQueue.java48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLAddToFavoritesTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingDetailsTool.java21
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingNode.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLDetailsTool.java43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToFileSystemTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToWorkbenchTool.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLLaunchWebServiceWizardTool.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLMainNode.java57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNavigatorNode.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNode.java61
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLOperationNode.java43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLPerspective.java369
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceDetailsTool.java21
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceNode.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transformer/FragmentTransformer.java99
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/ChunkedInputStream.java192
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPException.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPResponse.java91
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/util/SoapHelper.java132
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/xsd/WSDLPartsToXSDTypeMapper.java134
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToFavoritesAction.java95
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToUDDIPerspectiveAction.java89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToFavoritesAction.java95
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToUDDIPerspectiveAction.java89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToFavoritesAction.java93
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToUDDIPerspectiveAction.java125
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSDLServiceToFavoritesAction.java82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSILToFavoritesAction.java66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ClearWSILAction.java58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSDLToFileSystemAction.java147
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSILToFileSystemAction.java76
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/MultipleLinkAction.java105
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/NullAction.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILAction.java180
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILLinkAction.java86
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshAction.java89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIBusinessAction.java92
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIServiceAction.java92
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshWSILAction.java46
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ResizeWSILFramesAction.java129
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILNodeAction.java68
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILToolAction.java126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SwitchPerspectiveFromWSILAction.java65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WSILImportWSILToWorkbenchAction.java55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilAddToWSDLPerspectiveAction.java86
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilImportWSDLToWorkbenchAction.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilLaunchWebServiceWizardAction.java66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilToggleNodeAction.java75
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilActionInputs.java31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilFrameNames.java26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilModelConstants.java24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilCommonElement.java56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilElement.java453
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilLinkElement.java53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilServiceElement.java66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiBusinessElement.java98
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiServiceElement.java106
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsdlServiceElement.java85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsilLinkElement.java41
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToFavoritesTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToUDDIPerspectiveTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToFavoritesTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToUDDIPerspectiveTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSDLServiceToFavoritesTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSILToFavoritesTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ClearWSILTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSDLToFileSystemTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSILToFileSystemTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIBusinessTool.java44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIServicesTool.java52
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSDLServicesTool.java49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSILLinksTool.java41
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILLinkTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIBusinessTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIServiceTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshWSILTool.java35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiBusinessDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiServiceDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILImportWSILToWorkbenchTool.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILPerspective.java148
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsdlServiceDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilAddToWSDLPerspectiveTool.java32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilImportWSDLToWorkbenchTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLaunchWebServiceWizardTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLinkDetailsTool.java33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilMainNode.java49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNavigatorNode.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNode.java36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilSetDefaultViewTool.java34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/transformer/WSILViewSelectionTransformer.java140
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_de.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_es.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_fr.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_it.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ja.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ko.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_pt_BR.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_CN.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_TW.properties181
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_de.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_es.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_fr.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_it.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ja.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ko.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_pt_BR.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_CN.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_TW.properties145
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_de.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_es.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_fr.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_it.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ja.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ko.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_pt_BR.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_CN.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_TW.properties495
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_de.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_es.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_fr.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_it.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ja.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ko.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_pt_BR.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_CN.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_TW.properties155
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_de.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_es.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_fr.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_it.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ja.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ko.properties162
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_pt_BR.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_CN.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_TW.properties163
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/lib/.cvsignore1
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/web.xml9
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine.jsp91
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine_container.jsp137
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/CheckWorkbenchFileReadOnlyActionJSP.jsp55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearNodeAction.inc59
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearViewElementAction.inc45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToFileSystemAction.inc57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToWorkbenchAction.inc66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/LaunchWebServiceWizardAction.inc45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/RetrieveHistoryActionJSP.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SaveActionEngineScenario.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeAction.inc108
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeToolAction.inc182
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ShowPerspectiveActionJSP.jsp70
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ToggleNodeAction.inc77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ValidateEditActionJSP.jsp48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/WriteWSDLToWorkbenchActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_browser.jsp44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_content.jsp626
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_toolbar.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/calendar.css2
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/toolbar.css20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/treeview.css5
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/windows.css45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp61
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp62
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToFileSystemActionJSP.jsp24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToWorkbenchActionJSP.jsp22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesLaunchWebServiceWizardActionJSP.jsp19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesToggleNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesActionJSP.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesConfirmJSP.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/ResizeFavoritesFramesActionJSP.jsp53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesActionJSP.jsp51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesToolActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SwitchPerspectiveFromFavoritesActionJSP.jsp30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_actions_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_content.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_toolbar.jsp66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_perspective_content.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_content.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_toolbar.jsp82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_content.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_toolbar.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesImportToWorkbenchForm.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesLaunchWebServiceWizardForm.jsp20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIBusinessDetailsPage.jsp100
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIRegistryDetailsPage.jsp154
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceDetailsPage.jsp100
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceIntDetailsPage.jsp100
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSDLDetailsPage.jsp71
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSILDetailsPage.jsp72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/ProcessFavoritesFramesetsForm.jsp27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_enabled.gifbin0 -> 583 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_highlighted.gifbin0 -> 583 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_enabled.gifbin0 -> 623 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_highlighted.gifbin0 -> 623 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_enabled.gifbin0 -> 597 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_highlighted.gifbin0 -> 597 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_enabled.gifbin0 -> 591 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_highlighted.gifbin0 -> 591 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_enabled.gifbin0 -> 574 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_highlighted.gifbin0 -> 574 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_enabled.gifbin0 -> 564 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_highlighted.gifbin0 -> 564 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_enabled.gifbin0 -> 605 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_highlighted.gifbin0 -> 605 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_enabled.gifbin0 -> 587 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_highlighted.gifbin0 -> 587 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_business_node.gifbin0 -> 358 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_cat_node.gifbin0 -> 373 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_node.gifbin0 -> 353 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_interface_node.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_node.gifbin0 -> 541 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsdl_service_node.gifbin0 -> 563 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsil_node.gifbin0 -> 606 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesFormSubmit.jsp43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesPanes.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesTable.jsp62
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesframesets.jsp32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIBusinessView.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIRegistryView.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceInterfaceView.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceView.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSDLServiceView.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSILView.jsp128
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportToWorkbenchForm.jsp100
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportWSDLAndWSILToWorkbenchForm.jsp157
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/LaunchWebServiceWizardForm.jsp57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadContent.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadPage.jsp36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/copyright.inc12
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/formheader.inc23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/otherActions.jsp55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/simpleCommon_table.jsp26
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/actions.gifbin0 -> 365 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_enabled.gifbin0 -> 1023 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_highlighted.gifbin0 -> 1023 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_enabled.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_highlighted.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/calendar.gifbin0 -> 359 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_enabled.gifbin0 -> 545 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_highlighted.gifbin0 -> 545 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_enabled.gifbin0 -> 1008 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_highlighted.gifbin0 -> 1008 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_play.gifbin0 -> 145 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_record.gifbin0 -> 210 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_save.gifbin0 -> 229 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_stop.gifbin0 -> 149 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_play.gifbin0 -> 318 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_record.gifbin0 -> 211 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_save.gifbin0 -> 571 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_stop.gifbin0 -> 154 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/eview16/actionengine.gifbin0 -> 580 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_enabled.gifbin0 -> 144 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_highlighted.gifbin0 -> 144 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_enabled.gifbin0 -> 145 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_highlighted.gifbin0 -> 145 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_closed.gifbin0 -> 219 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_open.gifbin0 -> 324 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_enabled.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_highlighted.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_enabled.gifbin0 -> 330 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_highlighted.gifbin0 -> 330 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_enabled.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_highlighted.gifbin0 -> 327 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/keyline.gifbin0 -> 96 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_enabled.gifbin0 -> 590 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_highlighted.gifbin0 -> 590 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line.gifbin0 -> 70 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_last.gifbin0 -> 62 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_notlast.gifbin0 -> 92 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_last.gifbin0 -> 82 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_notlast.gifbin0 -> 82 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/navigator.gifbin0 -> 139 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_last.gifbin0 -> 84 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_notlast.gifbin0 -> 85 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_enabled.gifbin0 -> 216 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_highlighted.gifbin0 -> 216 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/root_main.gifbin0 -> 342 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/space.gifbin0 -> 50 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/status.gifbin0 -> 121 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_enabled.gifbin0 -> 323 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_highlighted.gifbin0 -> 323 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistclosed.gifbin0 -> 81 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistopened.gifbin0 -> 78 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_enabled.gifbin0 -> 347 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_highlighted.gifbin0 -> 347 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl.gifbin0 -> 563 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_enabled.gifbin0 -> 1008 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_highlighted.gifbin0 -> 1008 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_enabled.gifbin0 -> 599 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_highlighted.gifbin0 -> 599 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/launch_options_registry.jsp45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_content.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_toolbar.jsp77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/browserdetect.js15
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/calendarbrowser.jsp69
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formsubmit.jsp34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formutils.jsp41
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/panes.jsp39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/resumeproxyloadpage.js17
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/switchperspective.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/tables.jsp159
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/toolbar.js30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/treeview.js50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/wsdlbrowser.jsp48
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddItemsToFavoritesActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddPublisherAssertionsActionJSP.jsp46
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddToFavoritesActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceAdvancedActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusinessGetServicesActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CheckFavoriteExistsActionJSP.jsp65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodeActionJSP.jsp35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodesActionJSP.jsp35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CompletePublisherAssertionsActionJSP.jsp46
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/LaunchSubQueryAction.inc56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ManageReferencedServicesActionJSP.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/NewNodeAction.inc55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/OpenRegistryActionJSP.jsp36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodeActionJSP.jsp90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodesActionJSP.jsp65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessUUIDActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesAdvancedActionJSP.jsp51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfaceUUIDActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesAdvancedActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceUUIDActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesAdvancedActionJSP.jsp51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessAdvancedActionJSP.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceAdvancedActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceAdvancedActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceSimpleActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceSimpleActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemovePublisherAssertionsActionJSP.jsp46
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemoveSubQueryItemActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ResizeUDDIFramesActionJSP.jsp54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectCategoryNodeActionJSP.jsp77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectFindToolActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectNavigatorNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectPropertiesToolActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectSubQueryItemActionJSP.jsp51
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetBusinessActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetBusinessesActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetServicesActionJSP.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ShowPublisherAssertionsActionJSP.jsp57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SwitchPerspectiveFromUDDIActionJSP.jsp30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleCategoryNodeActionJSP.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleNavigatorNodeActionJSP.jsp21
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferSubQueryResultsActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferToAddCategoryDataActionJSP.jsp44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIAddToWSDLPerspectiveActionJSP.jsp54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToFileSystemActionJSP.jsp24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToWorkbenchActionJSP.jsp22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDILaunchWebServiceWizardActionJSP.jsp19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UnpublishActionJSP.jsp36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateAction.inc47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateBusinessActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateNewPublishActionJSP.jsp32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateRegistryActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceActionJSP.jsp86
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceInterfaceActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceNewPublishBusinessActionJSP.jsp36
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_browser.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_content.jsp113
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_toolbar.jsp44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/dWCommunity-data.txt2
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/geo-data.txt1383
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/naics-data.txt1814
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/unspsc-data.txt17054
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceAdvancedForm.jsp114
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceForm.jsp259
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceSimpleForm.jsp95
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusinessDetailsForm.jsp293
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/GetForm.jsp217
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ItemsSummaryForm.jsp210
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManagePublisherAssertionsForm.jsp408
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManageReferencedServicesForm.jsp231
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenPrivateRegistryForm.jsp111
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenRegistryForm.jsp196
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ProcessUDDIFramesetsForm.jsp27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegDetailsForm.jsp263
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesAdvancedForm.jsp93
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesForm.jsp47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesSimpleForm.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindForm.jsp705
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesAdvancedForm.jsp114
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesForm.jsp45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesSimpleForm.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesAdvancedForm.jsp85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesForm.jsp47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesSimpleForm.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindUUIDForm.jsp65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessAdvancedForm.jsp74
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessForm.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessSimpleForm.jsp71
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishForm.jsp583
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceAdvancedForm.jsp107
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceForm.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceAdvancedForm.jsp101
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceForm.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceSimpleForm.jsp92
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceSimpleForm.jsp103
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ResultsForm.jsp176
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceDetailsForm.jsp278
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceInterfaceDetailsForm.jsp292
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDIImportWSDLToWorkbenchForm.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDILaunchWebServiceWizardForm.jsp20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UnpublishForm.jsp90
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/advancedCommon_table.jsp63
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/authentication_table.jsp85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/categories_table.jsp77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsCategories_table.jsp60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsDiscoveryURLs_table.jsp68
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsIdentifiers_table.jsp60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsLanguageInput_table.jsp82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsSingleItem_table.jsp34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/discoveryURLs_table.jsp62
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findQualifiers_table.jsp65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findformheader.inc53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/identifiers_table.jsp54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/languageInput_table.jsp86
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/names_findQualifiers_table.jsp31
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/results_table.jsp52
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/resultsformheader.inc50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ud_categories_table.jsp56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjectsPublisherAssertions_table.jsp84
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjects_table.jsp80
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_enabled.gifbin0 -> 358 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_highlighted.gifbin0 -> 358 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_enabled.gifbin0 -> 372 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_highlighted.gifbin0 -> 372 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_open_highlighted.gifbin0 -> 369 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/category.gifbin0 -> 363 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_enabled.gifbin0 -> 347 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_highlighted.gifbin0 -> 347 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_enabled.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_highlighted.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_enabled.gifbin0 -> 595 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_highlighted.gifbin0 -> 595 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_enabled.gifbin0 -> 569 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_highlighted.gifbin0 -> 569 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_enabled.gifbin0 -> 362 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_highlighted.gifbin0 -> 362 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_enabled.gifbin0 -> 339 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_highlighted.gifbin0 -> 339 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_open_highlighted.gifbin0 -> 339 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/query.gifbin0 -> 564 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_enabled.gifbin0 -> 612 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_highlighted.gifbin0 -> 612 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/registry.gifbin0 -> 353 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/regstrycat_obj.gifbin0 -> 373 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_highlighted.gifbin0 -> 541 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interface_highlighted.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_enabled.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_highlighted.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_open_highlighted.gifbin0 -> 603 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_enabled.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_highlighted.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_enabled.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_highlighted.gifbin0 -> 594 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish.gifbin0 -> 351 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_enabled.gifbin0 -> 568 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_highlighted.gifbin0 -> 568 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_enabled.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_highlighted.gifbin0 -> 576 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_enabled.gifbin0 -> 599 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_highlighted.gifbin0 -> 599 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_content.jsp50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_toolbar.jsp66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_content.jsp76
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_toolbar.jsp84
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/cbpanes.jsp20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/detailstables.jsp1550
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/results.jsp135
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddiframesets.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddipanes.jsp35
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/udditables.jsp894
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_content.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_toolbar.jsp66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/uddi_perspective_content.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ClearWSDLActionJSP.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/CreateInstanceActionJSP.jsp34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpGetOperationFormActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpPostOperationFormActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationFormActionJSP.jsp138
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationSourceActionJSP.jsp172
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/OpenWSDLActionJSP.jsp58
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/RefreshWSDLActionJSP.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ResizeWSDLFramesActionJSP.jsp54
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLNavigatorNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLPropertiesToolActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchReadOnlyFragmentViewsActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchWSDLDetailsViewsActionJSP.jsp37
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionJSP.jsp56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ToggleWSDLNavigatorNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/UpdateWSDLBindingActionJSP.jsp34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLAddToFavoritesActionJSP.jsp40
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLCheckFavoriteExistsActionJSP.jsp65
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToFileSystemActionJSP.jsp23
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToWorkbenchActionJSP.jsp22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLLaunchWebServiceWizardActionJSP.jsp19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsFormView.jsp43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp316
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/InvokeWSDLOperationForm.jsp164
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/OpenWSDLForm.jsp81
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ProcessWSDLFramesetsForm.jsp27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsFormView.jsp222
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsSoapView.jsp114
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLBindingDetailsForm.jsp111
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsForm.jsp104
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsFormView.jsp106
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsSourceView.jsp45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLImportWSDLToWorkbenchForm.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLLaunchWebServiceWizardForm.jsp20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLServiceDetailsForm.jsp79
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/bindings_table.jsp72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/endpoint_table.jsp139
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/operations_table.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/services_table.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayFixWFragmentJSP.jsp55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRangeWFragmentJSP.jsp89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexFixWFragmentJSP.jsp75
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRFragmentJSP.jsp60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRangeWFragmentJSP.jsp87
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp201
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp98
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationRFragmentJSP.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationWFragmentJSP.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyRFragmentJSP.jsp17
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyWFragmentJSP.jsp77
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupAllWFragmentJSP.jsp190
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceFixWFragmentJSP.jsp113
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp79
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRangeWFragmentJSP.jsp136
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupRFragmentJSP.jsp89
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp55
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqRangeWFragmentJSP.jsp85
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfoDialog.jsp52
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_content.jsp47
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_toolbar.jsp50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp78
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeRangeWFragmentJSP.jsp97
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumFixWFragmentJSP.jsp93
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumRangeWFragmentJSP.jsp149
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp323
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp60
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRangeWFragmentJSP.jsp124
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListFixWFragmentJSP.jsp57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp45
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRangeWFragmentJSP.jsp87
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionFixWFragmentJSP.jsp128
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp44
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRangeWFragmentJSP.jsp141
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_enabled.gifbin0 -> 590 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_highlighted.gifbin0 -> 590 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_enabled.gifbin0 -> 579 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_highlighted.gifbin0 -> 579 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_binding_node.gifbin0 -> 615 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_operation_node.gifbin0 -> 359 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_service_node.gifbin0 -> 585 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/fragmenttables.jsp183
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlframesets.jsp32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlpanes.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/soap_envelope_xml.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_actions_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_container.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_content.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_toolbar.jsp66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_perspective_content.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_content.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_toolbar.jsp81
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_result_content.jsp72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_container.jsp39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_content.jsp39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_toolbar.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_browser.jsp57
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp301
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_toolbar.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsexplorer.jsp88
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearNodeConfirmJSP.jsp34
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearWSILActionJSP.jsp18
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSDLToFileSystemActionJSP.jsp24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSILToFileSystemActionJSP.jsp24
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILActionJSP.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILLinkActionJSP.jsp67
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/RefreshActionJSP.jsp63
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ResizeWSILFramesActionJSP.jsp42
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILToolActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SwitchPerspectiveFromWSILActionJSP.jsp30
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WSILImportWSILToWorkbenchActionJSP.jsp22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToFavoritesActionJSP.jsp39
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp56
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp53
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp72
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilImportWSDLToWorkbenchActionJSP.jsp22
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilLaunchWebServiceWizardActionJSP.jsp19
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilToggleNodeActionJSP.jsp33
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/OpenWSILForm.jsp98
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/ProcessWSILFramesetsForm.jsp27
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiBusinessDetailsPage.jsp126
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiServiceDetailsPage.jsp132
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WSILImportWSILToWorkbenchForm.jsp110
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsdlServiceDetailsPage.jsp148
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilDetailsPage.jsp88
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilImportWSDLToWorkbenchForm.jsp50
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLaunchWebServiceWizardForm.jsp20
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLinkDetailsPage.jsp84
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_enabled.gifbin0 -> 583 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_highlighted.gifbin0 -> 583 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_enabled.gifbin0 -> 564 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_highlighted.gifbin0 -> 564 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_enabled.gifbin0 -> 587 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_highlighted.gifbin0 -> 587 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_enabled.gifbin0 -> 597 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_highlighted.gifbin0 -> 586 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_enabled.gifbin0 -> 591 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_highlighted.gifbin0 -> 591 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_enabled.gifbin0 -> 596 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_highlighted.gifbin0 -> 596 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/wsil_node.gifbin0 -> 606 bytes
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilAbstractTable.jsp82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilFormSubmit.jsp43
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilNameTable.jsp82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilPanes.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilTable.jsp82
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilframesets.jsp32
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiBusinessView.jsp157
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiServicesView.jsp158
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsdlServicesView.jsp134
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsilLinksView.jsp130
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_actions_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_container.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_content.jsp49
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_toolbar.jsp66
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_perspective_content.jsp28
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_content.jsp73
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_toolbar.jsp81
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_container.jsp29
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_content.jsp38
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_toolbar.jsp66
1058 files changed, 104385 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/.classpath b/bundles/org.eclipse.wst.ws.explorer/.classpath
new file mode 100644
index 000000000..05af38ff3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="wsexplorer-src"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.wst.ws.explorer/.cvsignore b/bundles/org.eclipse.wst.ws.explorer/.cvsignore
new file mode 100644
index 000000000..d97a75614
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/.cvsignore
@@ -0,0 +1,7 @@
+bin
+build
+webapps
+temp.folder
+build.xml
+*.jar
+*.war \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/.project b/bundles/org.eclipse.wst.ws.explorer/.project
new file mode 100644
index 000000000..9621998fa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.wst.ws.explorer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.wst.ws.explorer/build-war-pde.xml b/bundles/org.eclipse.wst.ws.explorer/build-war-pde.xml
new file mode 100644
index 000000000..c3c20d05c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/build-war-pde.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.eclipse.wst.ws.explorer" default="build.wars" basedir=".">
+
+ <property name="wsexplorerDir" value="${buildDirectory}/org.eclipse.wst.ws.explorer/wsexplorer"/>
+
+ <target name="jspcompile" unless="wsexplorer.war" description="Pre-compile the JSPs in the org.eclipse.wst.ws.explorer plugin">
+ <java classname="org.apache.jasper.JspC" fork="true">
+ <arg line="-webxml ${wsexplorerDir}/WEB-INF/web.xml -d ${wsexplorerDir} -webapp ${wsexplorerDir}"/>
+ <classpath>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="org.eclipse.tomcat*/*.jar" />
+ </fileset>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="org.apache.ant*/lib/*.jar" />
+ </fileset>
+ </classpath>
+ </java>
+ <javac destdir="${wsexplorerDir}/WEB-INF/classes" includeAntRuntime="false">
+ <src path="${wsexplorerDir}"/>
+ <classpath>
+ <fileset dir="${buildDirectory}">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="**/*.jar" />
+ </fileset>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="wsexplorer.war" unless="wsexplorer.war" description="Create war: wsexplorer.war.">
+ <zip
+ basedir="${wsexplorerDir}"
+ destfile="${wsexplorerDir}/../wsexplorer.war"
+ whenempty="skip" update="false"
+ excludes="**/*.java **/*.jsp **/*.inc"
+ />
+ </target>
+
+ <target name="build.wars" description="Build all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
+ <available property="wsexplorer.war" file="${wsexplorerDir}/../wsexplorer.war"/>
+ <antcall target="jspcompile"/>
+ <antcall target="wsexplorer.war"/>
+ </target>
+
+ <target name="clean.wars" description="Clean all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
+ <delete file="wsexplorer.war"/>
+ </target>
+
+</project>
diff --git a/bundles/org.eclipse.wst.ws.explorer/build-war.xml b/bundles/org.eclipse.wst.ws.explorer/build-war.xml
new file mode 100644
index 000000000..d31a105bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/build-war.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.eclipse.wst.ws.explorer" default="build.wars" basedir=".">
+
+ <property name="wsexplorerDir" value="${buildDirectory}/plugins/org.eclipse.wst.ws.explorer/wsexplorer"/>
+
+ <target name="jspcompile" unless="wsexplorer.war" description="Pre-compile the JSPs in the org.eclipse.wst.ws.explorer plugin">
+ <java classname="org.apache.jasper.JspC" fork="true">
+ <arg line="-webxml ${wsexplorerDir}/WEB-INF/web.xml -d ${wsexplorerDir} -webapp ${wsexplorerDir}"/>
+ <classpath>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="org.eclipse.tomcat*/*.jar" />
+ </fileset>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="org.apache.ant*/lib/*.jar" />
+ </fileset>
+ </classpath>
+ </java>
+ <javac destdir="${wsexplorerDir}/WEB-INF/classes" includeAntRuntime="false">
+ <src path="${wsexplorerDir}"/>
+ <classpath>
+ <fileset dir="${buildDirectory}/plugins">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="${buildDirectory}/plugins">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="${baseLocation}/plugins">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="wsexplorer.war" unless="wsexplorer.war" description="Create war: wsexplorer.war.">
+ <zip
+ basedir="${wsexplorerDir}"
+ destfile="${wsexplorerDir}/../wsexplorer.war"
+ whenempty="skip" update="false"
+ excludes="**/*.java **/*.jsp **/*.inc **/*.txt"
+ />
+ </target>
+
+ <target name="build.wars" description="Build all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
+ <available property="wsexplorer.war" file="${wsexplorerDir}/../wsexplorer.war"/>
+ <antcall target="jspcompile"/>
+ <antcall target="wsexplorer.war"/>
+ </target>
+
+ <target name="clean.wars" description="Clean all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
+ <delete file="wsexplorer.war"/>
+ </target>
+
+</project>
diff --git a/bundles/org.eclipse.wst.ws.explorer/build.properties b/bundles/org.eclipse.wst.ws.explorer/build.properties
new file mode 100644
index 000000000..3dcd89204
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/build.properties
@@ -0,0 +1,24 @@
+source.explorer.jar = src/
+source.wsexplorer/WEB-INF/lib/wsexplorer.jar = wsexplorer-src/
+jars.compile.order = explorer.jar,\
+ wsexplorer/WEB-INF/lib/wsexplorer.jar
+output.wsexplorer/WEB-INF/lib/wsexplorer.jar = bin/
+bin.includes = plugin.xml,\
+ *.jar,\
+ explorer.jar,\
+ plugin.properties,\
+ properties/,\
+ webapps/,\
+ wsexplorer.war
+src.includes = build/,\
+ plugin.properties,\
+ plugin.xml,\
+ properties/,\
+ src/,\
+ wsexplorer/,\
+ build.properties,\
+ webapps/,\
+ explorer.jar,\
+ wsexplorer.war,\
+ wsexplorer-src/
+custom = false
diff --git a/bundles/org.eclipse.wst.ws.explorer/plugin.properties b/bundles/org.eclipse.wst.ws.explorer/plugin.properties
new file mode 100644
index 000000000..5ec01b2e5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/plugin.properties
@@ -0,0 +1,35 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+#
+# Messages in plugin.xml.
+#
+PLUGIN_NAME=Web Services Explorer
+PLUGIN_PROVIDER=Eclipse.org
+
+#
+# Messages for the client type extension
+#
+WEBSERVICECLIENTTYPE_NAME_WSEXPLORER=Stubless (Web Services Explorer)
+TASK_LABEL_EXPLORE_WSDL_USING_WSE=Explorer WSDL using Web Services Explorer.
+
+#
+# Messages for the WSExplorer type extension
+#
+MSG_ERROR_LAUNCH_WSEXPLORER=IWAB0366E Unable to launch Web Services Explorer.
+MSG_ERROR_LOAD_LAUNCH_OPTIONS=IWAB0367E Unable to load launch options.
+MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8=Broken VM does not support UTF-8.
+
+#
+# Messages for popup action (Test with Web Services Explorer)
+#
+POPUP_TEST_WSDL=Test with Web Services Explorer
+
diff --git a/bundles/org.eclipse.wst.ws.explorer/plugin.xml b/bundles/org.eclipse.wst.ws.explorer/plugin.xml
new file mode 100644
index 000000000..488d20bb6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/plugin.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin
+ id="org.eclipse.wst.ws.explorer"
+ version="1.0.0"
+ name="%PLUGIN_NAME"
+ provider-name="%PLUGIN_PROVIDER"
+ class="org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin">
+
+ <runtime>
+ <library name="explorer.jar">
+ <export name="*"/>
+ </library>
+ </runtime>
+
+ <requires>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.tomcat"/>
+ <import plugin="org.eclipse.help.appserver"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.emf.common"/>
+ <import plugin="org.eclipse.emf.ecore"/>
+ <import plugin="org.eclipse.xsd"/>
+ <import plugin="org.eclipse.wst.command.env"/>
+ <import plugin="org.eclipse.wst.command.env.core"/>
+ <import plugin="org.eclipse.wst.command.env.ui"/>
+ <import plugin="org.eclipse.wst.internet.webbrowser"/>
+ <import plugin="org.eclipse.wst.ws"/>
+ <import plugin="org.eclipse.wst.ws.parser"/>
+ <import plugin="org.eclipse.wst.wsdl"/>
+ <import plugin="org.wsdl4j"/>
+ <import plugin="org.apache.axis11"/>
+ <import plugin="org.apache.wsil4j"/>
+ <import plugin="org.uddi4j"/>
+ </requires>
+
+
+<!-- ================================================================= -->
+<!-- Extension point: Eclipse Popup Action (org.eclipse.ui.popupMenus) -->
+<!-- ================================================================= -->
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ objectClass="org.eclipse.core.resources.IFile"
+ nameFilter="*.wsdl"
+ id="org.eclipse.jst.ws.internal.consumption.ui.action.WSDLFileMenu">
+ <action
+ label="%POPUP_TEST_WSDL"
+ class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
+ menubarPath="org.eclipse.jst.ws.atk.ui.webservice.category.popupMenu/popupActions"
+ id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
+ </action>
+ </objectContribution>
+ <objectContribution
+ objectClass="org.eclipse.wst.wsdl.util.WSDLResourceImpl"
+ nameFilter="*"
+ id="org.eclipse.jst.ws.internal.consumption.ui.action.WSDLFileMenu">
+ <action
+ label="%POPUP_TEST_WSDL"
+ class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
+ menubarPath="additions"
+ id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
+ </action>
+ </objectContribution>
+ <objectContribution
+ objectClass="org.eclipse.wst.wsdl.Service"
+ nameFilter="*"
+ id="org.eclipse.jst.ws.internal.consumption.ui.action.WSDLFileMenu">
+ <action
+ label="%POPUP_TEST_WSDL"
+ class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
+ menubarPath="additions"
+ id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
+ </action>
+ </objectContribution>
+<!-- TODO: Move this contribution to org.eclipse.jst.ws.ui
+ <objectContribution
+ objectClass="org.eclipse.jst.j2ee.webservice.wsclient.ServiceRef"
+ nameFilter="*"
+ id="org.eclipse.jst.ws.internal.consumption.ui.action.WSDLFileMenu">
+ <action
+ label="%POPUP_TEST_WSDL"
+ class="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL"
+ menubarPath="additions"
+ id="org.eclipse.wst.ws.internal.explorer.popup.PopupTestWSDL">
+ </action>
+ </objectContribution>
+-->
+ </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil b/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil
new file mode 100644
index 000000000..10658f4bc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inspection xmlns="http://schemas.xmlsoap.org/ws/2001/10/inspection/"
+ xmlns:wsilwsdl="http://schemas.xmlsoap.org/ws/2001/10/inspection/wsdl/"
+ xmlns:wsiluddi="http://schemas.xmlsoap.org/ws/2001/10/inspection/uddi/"
+ xmlns:uddi="urn:uddi-org:api">
+ <abstract xml:lang="en-US">v5_0_1_0</abstract>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST</abstract>
+ <abstract xml:lang="en-US">http://uddi.ibm.com/testregistry/inquiryapi</abstract>
+ <abstract xml:lang="en-US">https://uddi.ibm.com/testregistry/publishapi</abstract>
+ <abstract xml:lang="en-US">http://uddi.ibm.com/testregistry/registry.html</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_IBM</abstract>
+ <abstract xml:lang="en-US">http://uddi.ibm.com/ubr/inquiryapi</abstract>
+ <abstract xml:lang="en-US">https://uddi.ibm.com/ubr/publishapi</abstract>
+ <abstract xml:lang="en-US">http://uddi.ibm.com/ubr/registry.html</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST</abstract>
+ <abstract xml:lang="en-US">http://test.uddi.microsoft.com/inquire</abstract>
+ <abstract xml:lang="en-US">https://test.uddi.microsoft.com/publish</abstract>
+ <abstract xml:lang="en-US">https://test.uddi.microsoft.com/register.aspx</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT</abstract>
+ <abstract xml:lang="en-US">http://uddi.microsoft.com/inquire</abstract>
+ <abstract xml:lang="en-US">https://uddi.microsoft.com/publish</abstract>
+ <abstract xml:lang="en-US">https://uddi.microsoft.com/register.aspx</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST</abstract>
+ <abstract xml:lang="en-US">http://udditest.sap.com/UDDI/api/inquiry/</abstract>
+ <abstract xml:lang="en-US">https://udditest.sap.com/UDDI/api/publish/</abstract>
+ <abstract xml:lang="en-US">http://udditest.sap.com/</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_SAP</abstract>
+ <abstract xml:lang="en-US">http://uddi.sap.com/UDDI/api/inquiry/</abstract>
+ <abstract xml:lang="en-US">https://uddi.sap.com/UDDI/api/publish/</abstract>
+ <abstract xml:lang="en-US">http://uddi.sap.com/</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_XMETHODS</abstract>
+ <abstract xml:lang="en-US">http://uddi.xmethods.net/inquire</abstract>
+ <abstract xml:lang="en-US">https://uddi.xmethods.net/publish</abstract>
+ <abstract xml:lang="en-US">http://www.xmethods.net/ve2/Register.po?event=registerOrg</abstract>
+ </link>
+
+ <link referencedNamespace="urn:uddi-org:api">
+ <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_NTTCOMM</abstract>
+ <abstract xml:lang="en-US">http://www.uddi.ne.jp/registry/inquiryapi</abstract>
+ <abstract xml:lang="en-US">https://www.uddi.ne.jp/registry/publishapi</abstract>
+ <abstract xml:lang="en-US">http://www.uddi.ne.jp/registry/registry.html</abstract>
+ </link>
+
+ <link referencedNamespace="http://schemas.xmlsoap.org/ws/2001/10/inspection/" location="http://www.xmethods.com/inspection.wsil"/>
+</inspection>
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/CatalinaRunnable.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/CatalinaRunnable.java
new file mode 100644
index 000000000..19ba1f16f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/CatalinaRunnable.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.help.internal.appserver.AppserverPlugin;
+import org.eclipse.help.internal.appserver.WebappManager;
+
+public class CatalinaRunnable {
+
+ private static CatalinaRunnable catalinaRunnable_;
+
+ private CatalinaRunnable() {
+ }
+
+ public static CatalinaRunnable getCatalinaRunnable() {
+ if (catalinaRunnable_ == null) {
+ catalinaRunnable_ = new CatalinaRunnable();
+ catalinaRunnable_.init();
+ }
+ return catalinaRunnable_;
+ }
+
+ public boolean isTomcatStarted() {
+ try {
+ return AppserverPlugin.getDefault().getAppServer().isRunning();
+ } catch (Throwable t) {
+ return false;
+ }
+ }
+
+ public int getTomcatPort() {
+ return WebappManager.getPort();
+ }
+
+ private void init() {
+ WSExplorer wsExplorer = WSExplorer.getInstance();
+ String ctxt = wsExplorer.getContextName();
+ String pluginID = wsExplorer.getParentPluginID();
+ String warLocation = wsExplorer.getWARLocation();
+ String webappLocation = wsExplorer.getWebAppLocation();
+ try {
+ if (warLocation != null)
+ WebappManager.start(ctxt, pluginID, new Path(warLocation));
+ else
+ WebappManager.start(ctxt, pluginID, new Path(webappLocation));
+ } catch (Throwable t) {
+ }
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOption.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOption.java
new file mode 100644
index 000000000..3666ede76
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOption.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wst.ws.internal.explorer;
+
+/**
+ * @author cbrealey@ca.ibm.com
+ *
+ * This simple class is used to hold a single Web Services
+ * Explorer launch option property and its value. Allowed
+ * launch option properties are defined by
+ * <code>{@link LaunchOptions}</code>.
+ */
+public class LaunchOption {
+ private String key_;
+
+ private String option_;
+
+ /*
+ * Constructs a new launch option with the given
+ * property name and value.
+ */
+ public LaunchOption(String key, String option) {
+ key_ = key;
+ option_ = option;
+ }
+
+ /**
+ * Returns the property name of this launch option.
+ * @return The property name.
+ */
+ public String getKey() {
+ return key_;
+ }
+
+ /**
+ * Returns the property value of this launch option.
+ * @return The property value.
+ */
+ public String getOption() {
+ return option_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOptions.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOptions.java
new file mode 100644
index 000000000..392f03b11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchOptions.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wst.ws.internal.explorer;
+
+/**
+ * @author cbrealey@ca.ibm.com
+ *
+ * This class defines the property names understood by the Web Services Explorer
+ * and used to configure it's initial appearance and behaviour at the time it is
+ * launched.
+ * @see LaunchOption
+ */
+public class LaunchOptions {
+ // General purpose preload constants
+
+ public static final String STATE_LOCATION = "stateLocation";
+
+ public static final String DEFAULT_FAVORITES_LOCATION = "defaultFavoritesLocation";
+
+ // WSDL Page preload constants
+
+ public static final String WSDL_URL = "wsdl";
+
+ public static final String WEB_SERVICE_ENDPOINT = "webServiceEndpoint";
+
+ public static final String SERVICE_QNAME_STRING = "serviceQNameString";
+
+ public static final String BINDING_NAME_STRING = "bindingNameString";
+
+ // UDDI Page preload constants
+
+ public static final String INQUIRY_URL = "inquiry";
+
+ public static final String PUBLISH_URL = "publish";
+
+ public static final String SERVICE_NAME = "serviceName";
+
+ public static final String SERVICE_KEY = "serviceKey";
+
+ public static final String CATEGORIES_DIRECTORY = "categoriesDirectory";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardRunnable.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardRunnable.java
new file mode 100644
index 000000000..6375d5312
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardRunnable.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard;
+
+public class LaunchWizardRunnable extends Thread implements Runnable {
+ private String id;
+
+ private String wsdlURL;
+
+ private boolean finish;
+
+ public LaunchWizardRunnable(String id, String wsdlURL) {
+ this.id = id;
+ this.wsdlURL = (wsdlURL != null) ? wsdlURL : "";
+ finish = false;
+ }
+
+ public boolean isFinish() {
+ return finish;
+ }
+
+ public void run() {
+ try {
+ DynamicWizard wizard = new DynamicWizard();
+ wizard.setInitialData(id);
+ IStructuredSelection sel = new StructuredSelection(wsdlURL);
+ wizard.init(null, sel);
+ WizardDialog wd = new WizardDialog(new Shell(Display.getDefault(),
+ SWT.APPLICATION_MODAL), wizard);
+ wd.open();
+ } catch (Exception e) {
+ } finally {
+ finish = true;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardTask.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardTask.java
new file mode 100644
index 000000000..f5329e2f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/LaunchWizardTask.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * 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;
+
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+
+public class LaunchWizardTask {
+ // singleton
+ private static LaunchWizardTask task_;
+
+ // the shell for the wizard to be launched
+ private Shell shell_;
+
+ // the LaunchWizardRunnable that is currently running
+ private LaunchWizardRunnable runnable_;
+
+ private LaunchWizardTask(Shell shell) {
+ shell_ = shell;
+ runnable_ = null;
+ }
+
+ public static LaunchWizardTask getInstance() {
+ if (task_ == null)
+ task_ = new LaunchWizardTask(PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getShell());
+ return task_;
+ }
+
+ public void asyncExec(Runnable runnable) throws SWTException {
+ shell_.getDisplay().asyncExec(runnable);
+ }
+
+ public boolean checkAndAsyncExec(LaunchWizardRunnable runnable) {
+ try {
+ if (!getIsExecuting()) {
+ asyncExec(runnable);
+ runnable_ = runnable;
+ return true;
+ } else
+ return false;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ public boolean getIsExecuting() {
+ if (runnable_ != null) {
+ boolean isFinish = runnable_.isFinish();
+ if (isFinish)
+ runnable_ = null;
+ return !isFinish;
+ } else
+ return false;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorer.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorer.java
new file mode 100644
index 000000000..31675476f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorer.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * 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;
+
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.browser.IWebBrowser;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
+import org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin;
+
+public class WSExplorer {
+ private static WSExplorer instance;
+
+ private static int launchOptionsKey_ = 0;
+
+ public WSExplorer() {
+ }
+
+ public static WSExplorer getInstance() {
+ if (instance == null) {
+ instance = new WSExplorer();
+ }
+ return instance;
+ }
+
+ public String getContextName() {
+ return "wsexplorer";
+ }
+
+ public String getParentPluginID() {
+ return ExplorerPlugin.ID;
+ }
+
+ public String getWARLocation() {
+ return "wsexplorer.war";
+ }
+
+ public String getWebAppLocation() {
+ return "wsexplorer";
+ }
+
+ public String getWelcomeURL() {
+ return "wsexplorer.jsp";
+ }
+
+ public String getLaunchOptionRegistryURL() {
+ return "launch_options_registry.jsp";
+ }
+
+ public String getBaseURL() {
+ StringBuffer sb = new StringBuffer();
+ sb.append("http://localhost:");
+ sb.append(CatalinaRunnable.getCatalinaRunnable().getTomcatPort());
+ sb.append("/");
+ sb.append(getContextName());
+ sb.append("/");
+ return sb.toString();
+ }
+
+ public String getMetadataDirectory() {
+ // <workspace>/.metadata/.plugins/org.eclipse.wst.ws.explorer/ (note
+ // the trailing separator).
+ return ExplorerPlugin.getInstance().getPluginStateLocation();
+ }
+
+ public IStatus launch(IWorkbench wb, IStructuredSelection sel,
+ LaunchOption[] options, boolean forceLaunchOutsideIDE) {
+ // launchOptionKey
+ int launchOptionKey = getLaunchOptionsKey();
+ // Web Services Explorer URL
+ StringBuffer sb = new StringBuffer();
+ sb.append(getBaseURL());
+ sb.append(getWelcomeURL());
+ sb.append("?");
+ if (options != null && options.length > 0) {
+ String encodedID = null;
+ try {
+ encodedID = URLEncoder.encode(ExplorerPlugin.ID,
+ ExplorerPlugin.CHARSET);
+ } catch (UnsupportedEncodingException e) {
+ return new Status(
+ IStatus.ERROR,
+ ExplorerPlugin.ID,
+ 0,
+ ExplorerPlugin
+ .getMessage("%MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8"),
+ e);
+ }
+ sb.append(encodedID);
+ sb.append("=");
+ sb.append(launchOptionKey);
+ }
+ // launch Web Services Explorer
+ try {
+ URL url = new URL(sb.toString());
+ if (forceLaunchOutsideIDE) {
+ if (System.getProperty("os.name").toLowerCase().indexOf("win") == -1)
+ Runtime.getRuntime()
+ .exec("mozilla " + url.toExternalForm());
+ else
+ Runtime.getRuntime().exec(
+ "cmd /C start iexplore " + url.toExternalForm());
+ } else {
+ // browserId
+ StringBuffer browserId = new StringBuffer();
+ browserId.append(ExplorerPlugin.ID);
+ browserId.append(getContextName());
+
+ IWorkbenchBrowserSupport browserSupport = ExplorerPlugin.getInstance().getWorkbench().getBrowserSupport();
+ IWebBrowser browser = browserSupport.createBrowser(browserId.toString());
+ browser.openURL(url);
+ }
+ } catch (Exception e) {
+ return new Status(IStatus.ERROR, ExplorerPlugin.ID, 0,
+ ExplorerPlugin.getMessage("%MSG_ERROR_LAUNCH_WSEXPLORER"),
+ e);
+ }
+ // register launch options
+ if (options != null && options.length > 0) {
+ try {
+ StringBuffer launchOptionsRegURL = new StringBuffer();
+ launchOptionsRegURL.append(getBaseURL());
+ launchOptionsRegURL.append(getLaunchOptionRegistryURL());
+ URL url = new URL(launchOptionsRegURL.toString());
+ URLConnection connection = url.openConnection();
+ connection.setDoOutput(true);
+ PrintWriter out = new PrintWriter(connection.getOutputStream());
+ StringBuffer params = new StringBuffer();
+ String encodedID = null;
+ try {
+ encodedID = URLEncoder.encode(ExplorerPlugin.ID,
+ ExplorerPlugin.CHARSET);
+ } catch (UnsupportedEncodingException e) {
+ return new Status(
+ IStatus.ERROR,
+ ExplorerPlugin.ID,
+ 0,
+ ExplorerPlugin
+ .getMessage("%MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8"),
+ e);
+ }
+ params.append(encodedID);
+ params.append("=");
+ params.append(launchOptionKey);
+ params.append("&");
+ for (int i = 0; i < options.length; i++) {
+ if (options[i] != null) {
+ params.append(options[i].getKey());
+ params.append("=");
+ String option = null;
+ try {
+ option = URLEncoder.encode(options[i].getOption(),
+ ExplorerPlugin.CHARSET);
+ } catch (UnsupportedEncodingException e) {
+ return new Status(
+ IStatus.ERROR,
+ ExplorerPlugin.ID,
+ 0,
+ ExplorerPlugin
+ .getMessage("%MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8"),
+ e);
+ }
+ params.append(option);
+ params.append("&");
+ }
+ }
+ out.print(params.toString());
+ out.close();
+ out = null;
+ InputStream is = connection.getInputStream();
+ is.close();
+ is = null;
+ } catch (Exception e) {
+ return new Status(IStatus.WARNING, ExplorerPlugin.ID, 0,
+ ExplorerPlugin
+ .getMessage("%MSG_ERROR_LOAD_LAUNCH_OPTIONS"),
+ e);
+ }
+ }
+ return new Status(IStatus.OK, ExplorerPlugin.ID, 0, "", null);
+ }
+
+ private static int getLaunchOptionsKey() {
+ return launchOptionsKey_++;
+ }
+
+ public IStatus launch(IWorkbench wb, IStructuredSelection sel,
+ String[] inquiryURL, String[] publishURL,
+ boolean forceLaunchOutsideIDE) {
+ int inquiryURLOptionLength = (inquiryURL != null) ? inquiryURL.length
+ : 0;
+ int publishURLOptionLength = (publishURL != null) ? publishURL.length
+ : 0;
+ LaunchOption[] options = new LaunchOption[inquiryURLOptionLength
+ + publishURLOptionLength];
+ int index = 0;
+ if (inquiryURL != null) {
+ for (int i = 0; i < inquiryURL.length; i++) {
+ options[index] = new LaunchOption(LaunchOptions.INQUIRY_URL,
+ inquiryURL[i]);
+ index++;
+ }
+ }
+ if (publishURL != null) {
+ for (int i = 0; i < publishURL.length; i++) {
+ options[index] = new LaunchOption(LaunchOptions.PUBLISH_URL,
+ publishURL[i]);
+ index++;
+ }
+ }
+ return launch(wb, sel, options, forceLaunchOutsideIDE);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerContext.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerContext.java
new file mode 100644
index 000000000..9d8ee2c16
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerContext.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * 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;
+
+public final class WSExplorerContext {
+ public static final String ID = "org.eclipse.wst.ws.explorer";
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerLauncherCommand.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerLauncherCommand.java
new file mode 100644
index 000000000..6069758b3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WSExplorerLauncherCommand.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 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.wst.ws.internal.explorer;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.wst.command.internal.env.common.EnvironmentUtils;
+import org.eclipse.wst.command.internal.provisional.env.core.SimpleCommand;
+import org.eclipse.wst.command.internal.provisional.env.core.common.Environment;
+import org.eclipse.wst.command.internal.provisional.env.core.common.Status;
+
+/**
+ * @author cbrealey@ca.ibm.com
+ *
+ * This <code>Command</code>, when executed, launches the
+ * Web Services Explorer.
+ */
+public class WSExplorerLauncherCommand extends SimpleCommand {
+ private boolean forceLaunchOutsideIDE;
+
+ private LaunchOption[] launchOptions;
+
+ public WSExplorerLauncherCommand() {
+ super("WSExplorerLauncherCommand", "WSExplorerLauncherCommand");
+ }
+
+ public void writeCategoryInfo(String inquiryURL, String categoriesDirectory) {
+ try {
+ Properties p = new Properties();
+ p.setProperty(LaunchOptions.CATEGORIES_DIRECTORY,
+ categoriesDirectory);
+ StringBuffer propertiesFileName = new StringBuffer();
+ propertiesFileName.append(WSExplorer.getInstance()
+ .getMetadataDirectory());
+ File metadataDirectoryFile = new File(propertiesFileName.toString());
+ if (!metadataDirectoryFile.exists()) {
+ metadataDirectoryFile.mkdirs();
+ }
+ propertiesFileName.append(URLEncoder.encode(inquiryURL,"UTF-8")).append(
+ ".properties");
+ FileOutputStream fout = new FileOutputStream(propertiesFileName
+ .toString());
+ p.store(fout, null);
+ fout.close();
+ } catch (IOException e) {
+ }
+ }
+
+ public IStatus execute() {
+ return WSExplorer.getInstance().launch(null, null, launchOptions,
+ forceLaunchOutsideIDE);
+ }
+
+ public Status execute(Environment env) {
+ return EnvironmentUtils.convertIStatusToStatus(execute());
+ }
+
+ /**
+ * @param forceLaunchOutsideIDE
+ * The forceLaunchOutsideIDE to set.
+ */
+ public void setForceLaunchOutsideIDE(boolean forceLaunchOutsideIDE) {
+ this.forceLaunchOutsideIDE = forceLaunchOutsideIDE;
+ }
+
+ /**
+ * @param launchOptions
+ * The launchOptions to set.
+ */
+ public void setLaunchOptions(LaunchOption[] launchOptions) {
+ this.launchOptions = launchOptions;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeDefault.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeDefault.java
new file mode 100644
index 000000000..f1816997c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeDefault.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.favorites;
+
+import java.io.IOException;
+
+import org.apache.wsil.WSILDocument;
+import org.apache.wsil.WSILException;
+import org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesRegistryTypeAbstract;
+import org.eclipse.wst.ws.internal.parser.favorites.IFavoritesUDDIRegistry;
+
+public class FavoritesRegistryTypeDefault extends FavoritesRegistryTypeAbstract {
+ private static WSILDocument wsilDoc_;
+
+ public static final String FAVORITES_DEFAULT = "properties/favorites_default.wsil";
+
+ private String defaultFavorites_ = null;
+
+ public FavoritesRegistryTypeDefault() {
+ super();
+ wsilDoc_ = null;
+ }
+
+ public FavoritesRegistryTypeDefault(String defaultFavorites) {
+ super();
+ wsilDoc_ = null;
+ defaultFavorites_ = defaultFavorites;
+ }
+
+ public String getReadLocation() {
+ StringBuffer readLocation = new StringBuffer();
+ if (defaultFavorites_ == null)
+ {
+ readLocation.append(ExplorerPlugin.getInstance().getPluginInstallLocation());
+ readLocation.append(FAVORITES_DEFAULT);
+ }
+ else
+ {
+ readLocation.append(defaultFavorites_);
+ }
+ return readLocation.toString();
+ }
+
+ public String getWriteLocation() {
+ return null;
+ }
+
+ protected WSILDocument getWSILDocument() {
+ if (wsilDoc_ == null) {
+ wsilDoc_ = loadWSILDocument(getReadLocation(), true);
+ IFavoritesUDDIRegistry[] registries = getFavoritesUDDIRegistries();
+ /* TODO: Public registry strings shouldn't be in properties - Ain't extensible.
+ for (int i = 0; i < registries.length; i++) {
+ registries[i].setName(WSPlugin.getResourceString(registries[i].getName()));
+ }
+ */
+ }
+ return wsilDoc_;
+ }
+
+ public WSILDocument getFavoritesDefault() {
+ return getWSILDocument();
+ }
+
+ public void save() throws WSILException, IOException {
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeWSE.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeWSE.java
new file mode 100644
index 000000000..253fc8c16
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/favorites/FavoritesRegistryTypeWSE.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.favorites;
+
+import org.apache.wsil.WSILDocument;
+import org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesRegistryTypeAbstract;
+
+
+public class FavoritesRegistryTypeWSE extends FavoritesRegistryTypeAbstract
+{
+ private static WSILDocument wsilDoc_;
+ public static final String FAVORITES_WSEXPLORER = "favorites.wsil";
+ private String defaultFavorites_ = null;
+ private String stateLocation_ = null;
+
+ public FavoritesRegistryTypeWSE()
+ {
+ super();
+ wsilDoc_ = null;
+ }
+
+ public FavoritesRegistryTypeWSE(String defaultFavorites, String stateLocation) {
+ super();
+ wsilDoc_ = null;
+ defaultFavorites_ = defaultFavorites;
+ stateLocation_ = stateLocation;
+ }
+
+ public String getReadLocation()
+ {
+ StringBuffer readLocation = new StringBuffer();
+ readLocation.append(stateLocation_ == null ? ExplorerPlugin.getInstance().getPluginStateLocation() : stateLocation_);
+ readLocation.append(FAVORITES_WSEXPLORER);
+ return readLocation.toString();
+ }
+
+ public String getWriteLocation()
+ {
+ return getReadLocation();
+ }
+
+ protected WSILDocument getWSILDocument()
+ {
+ if (wsilDoc_ == null)
+ {
+ wsilDoc_ = loadWSILDocument(getReadLocation(), false);
+ if (wsilDoc_ == null)
+ {
+ restoreFavoritesDefault();
+ try
+ {
+ save();
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ }
+ return wsilDoc_;
+ }
+
+ public void restoreFavoritesDefault()
+ {
+ wsilDoc_ = (new FavoritesRegistryTypeDefault(defaultFavorites_)).getWSILDocument();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/plugin/ExplorerPlugin.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/plugin/ExplorerPlugin.java
new file mode 100644
index 000000000..4eddd5916
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/plugin/ExplorerPlugin.java
@@ -0,0 +1,194 @@
+/*******************************************************************************
+ * 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.plugin;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.Hashtable;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.ws.internal.explorer.LaunchWizardTask;
+import org.eclipse.wst.ws.internal.explorer.favorites.FavoritesRegistryTypeDefault;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * This is the plugin class for the Web Services Explorer.
+ */
+public class ExplorerPlugin extends AbstractUIPlugin
+{
+ /**
+ * The identifier of the descriptor of this plugin in plugin.xml.
+ */
+ public static final String ID = "org.eclipse.wst.ws.explorer";
+ public static final String CHARSET = "UTF-8";
+ /**
+ * The reference to the singleton instance of this plugin.
+ */
+ private static ExplorerPlugin instance_;
+
+ /**
+ * Constructs a runtime plugin object for this plugin. The "plugin" element
+ * in plugin.xml should include the attribute class =
+ * "org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin".
+ *
+ * @param descriptor
+ * The descriptor of this plugin.
+ */
+ public ExplorerPlugin()
+ {
+ super();
+ instance_ = this;
+ }
+
+ /**
+ * Returns the singleton instance of this plugin. Equivalent to calling
+ * (ExplorerPlugin)Platform.getPlugin("org.eclipse.wst.ws.explorer");
+ *
+ * @return The ExplorerPlugin singleton.
+ */
+ static public ExplorerPlugin getInstance()
+ {
+ return instance_;
+ }
+
+ /**
+ * Called once by the platform when this plugin is first loaded.
+ *
+ * @throws CoreException
+ * If this plugin fails to start.
+ */
+ public void start(BundleContext bundle) throws Exception
+ {
+ super.start(bundle);
+ // init the shell of LaunchWizardTask
+ LaunchWizardTask.getInstance();
+ }
+
+ /**
+ * Called once by the platform when this plugin is unloaded.
+ *
+ * @throws CoreException
+ * If this plugin fails to shutdown.
+ */
+ public void stop(BundleContext bundle) throws Exception
+ {
+ super.stop(bundle);
+ }
+
+ /**
+ * Returns the message string identified by the given key from the
+ * plugin.properties file for the appropriate locale.
+ *
+ * @param key
+ * The message key string prefixed by a "%" symbol. That is, the
+ * string passed in must be of the form "%KEY" where the
+ * plugin.properties file contains a line of the form: "KEY =
+ * value".
+ * @return The locale-specific message.
+ */
+ public static String getMessage(String key)
+ {
+ return Platform.getResourceString(instance_.getBundle(), key);
+ }
+
+ /**
+ * Returns the message string identified by the given key from the
+ * plugin.properties file for the appropriate locale. Substitution sequences
+ * in the message string are replaced by the given array of substitution
+ * objects (which are most frequently strings). See java.text.MessageFormat
+ * for further details on substitution.
+ *
+ * @param key
+ * The message key string prefixed by a "%" symbol. That is, the
+ * string passed in must be of the form "%KEY" where the
+ * plugin.properties file contains a line of the form: "KEY =
+ * value".
+ * @param args
+ * The substitution values for the message as required by the
+ * message in plugin.properties and by the rules of class
+ * java.text.MessageFormat.
+ * @return The locale-specific message.
+ */
+ public static String getMessage(String key, Object[] args)
+ {
+ return MessageFormat.format(getMessage(key), args);
+ }
+
+ /**
+ * Returns an image descriptor for the named resource as relative to the
+ * plugin install location.
+ *
+ * @return An image descriptor, possibly null.
+ */
+ public static ImageDescriptor getImageDescriptor(String name)
+ {
+ try
+ {
+ URL installURL = instance_.getBundle().getEntry("/");
+ URL imageURL = new URL(installURL, name);
+ return ImageDescriptor.createFromURL(imageURL);
+ }
+ catch (MalformedURLException e)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * See IPluginHelper.
+ */
+ public void setMsgLoggerConfig(Hashtable msgLoggerConfig)
+ {
+ }
+
+ /**
+ * See IPluginHelper.
+ */
+ public Hashtable getMsgLoggerConfig(Plugin plugin)
+ {
+ return new Hashtable();
+ }
+
+ /**
+ * See IPluginHelper.
+ */
+ public Hashtable getMsgLoggerConfig()
+ {
+ return getMsgLoggerConfig(this);
+ }
+
+ public String getPluginStateLocation()
+ {
+ return Platform.getPluginStateLocation(this).addTrailingSeparator().toOSString();
+ }
+
+ public String getDefaultFavoritesLocation()
+ {
+ return getPluginInstallLocation()+FavoritesRegistryTypeDefault.FAVORITES_DEFAULT;
+ }
+
+ public String getPluginInstallLocation()
+ {
+ try
+ {
+ return Platform.resolve(instance_.getBundle().getEntry("/")).getFile();
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java
new file mode 100644
index 000000000..ef6803fdb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/popup/PopupTestWSDL.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.popup;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.wst.ws.internal.explorer.LaunchOption;
+import org.eclipse.wst.ws.internal.explorer.LaunchOptions;
+import org.eclipse.wst.ws.internal.explorer.WSExplorerLauncherCommand;
+import org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin;
+import org.eclipse.wst.ws.internal.monitor.GetMonitorCommand;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+public class PopupTestWSDL extends Action implements IActionDelegate
+{
+ public PopupTestWSDL()
+ {
+ super(ExplorerPlugin.getMessage("%POPUP_TEST_WSDL"));
+ }
+
+ private IStructuredSelection getWorkbenchSelection()
+ {
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ if (window != null)
+ {
+ ISelection selection = window.getSelectionService().getSelection();
+ if (selection instanceof IStructuredSelection)
+ return (IStructuredSelection)selection;
+ }
+ return null;
+ }
+
+ public void run()
+ {
+ String stateLocation = ExplorerPlugin.getInstance().getPluginStateLocation();
+ String defaultFavoritesLocation = ExplorerPlugin.getInstance().getDefaultFavoritesLocation();
+ WSExplorerLauncherCommand command = new WSExplorerLauncherCommand();
+ command.setForceLaunchOutsideIDE(false);
+ IStructuredSelection selection = getWorkbenchSelection();
+ Vector launchOptions = new Vector();
+ if (selection != null)
+ {
+ for (Iterator it = selection.iterator(); it.hasNext();)
+ {
+ String wsdlURL = null;
+ Object object = it.next();
+ if (object instanceof IResource)
+ {
+ File wsdlFile = ((IResource)object).getLocation().toFile();
+ try
+ {
+ wsdlURL = wsdlFile.toURL().toString();
+ }
+ catch (MalformedURLException murle)
+ {
+ wsdlURL = wsdlFile.toString();
+ }
+ }
+ /* TODO: Move this up to org.eclipse.jst.ws.ui.
+ if (object instanceof ServiceImpl)
+ {
+ ServiceImpl serviceImpl = (ServiceImpl)object;
+ wsdlURL = J2EEActionAdapterFactory.getWSDLURI(serviceImpl);
+ }
+ if (object instanceof ServiceRef)
+ {
+ ServiceRef serviceImpl = (ServiceRef)object;
+ wsdlURL = J2EEActionAdapterFactory.getWSDLURI(serviceImpl);
+ }
+ if (object instanceof WSDLResourceImpl)
+ {
+ WSDLResourceImpl WSDLRImpl = (WSDLResourceImpl)object;
+ wsdlURL = J2EEActionAdapterFactory.getWSDLURI(WSDLRImpl);
+ }
+ */
+ GetMonitorCommand getMonitorCmd = new GetMonitorCommand();
+ getMonitorCmd.setMonitorService(true);
+ getMonitorCmd.setCreate(false);
+ getMonitorCmd.setWebServicesParser(new WebServicesParser());
+ getMonitorCmd.setWsdlURI(wsdlURL);
+ getMonitorCmd.execute(null);
+ List endpoints = getMonitorCmd.getEndpoints();
+ for (Iterator endpointsIt = endpoints.iterator(); endpointsIt.hasNext();)
+ launchOptions.add(new LaunchOption(LaunchOptions.WEB_SERVICE_ENDPOINT, (String)endpointsIt.next()));
+ launchOptions.add(new LaunchOption(LaunchOptions.WSDL_URL, wsdlURL));
+ launchOptions.add(new LaunchOption(LaunchOptions.STATE_LOCATION,stateLocation));
+ launchOptions.add(new LaunchOption(LaunchOptions.DEFAULT_FAVORITES_LOCATION,defaultFavoritesLocation));
+ }
+ }
+ command.setLaunchOptions((LaunchOption[])launchOptions.toArray(new LaunchOption[0]));
+ command.execute();
+ }
+
+ public void run(IAction action)
+ {
+ run();
+ }
+
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/Action.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/Action.java
new file mode 100644
index 000000000..b7f8e1211
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/Action.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.CurrentNodeSelectionTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.*;
+import javax.servlet.http.*;
+
+// Abstract action class used for both Link and Form actions.
+public abstract class Action
+{
+ protected Controller controller_;
+ protected Hashtable propertyTable_;
+ protected Vector removedProperties_;
+
+ public Action()
+ {
+ this(null);
+ }
+
+ public Action(Controller controller)
+ {
+ controller_ = controller;
+ propertyTable_ = new Hashtable();
+ removedProperties_ = new Vector();
+ }
+
+ public final Controller getController()
+ {
+ return controller_;
+ }
+
+ /**
+ * Read properties from an HttpServletRequest and add them to the property table.
+ * @param HttpServletRequest The HttpServletRequest containing the embedded parameters.
+ * @return boolean Whether or not the operation was successful.
+ */
+ public abstract boolean populatePropertyTable(HttpServletRequest request);
+
+ /**
+ * Get the property table.
+ * @return Hashtable A hashtable containing the properties for this action.
+ */
+ public final Hashtable getPropertyTable()
+ {
+ return propertyTable_;
+ }
+
+ /**
+ * Set the property table.
+ * @return void
+ */
+ public void setPropertyTable(Hashtable propertyTable)
+ {
+ propertyTable_ = propertyTable;
+ }
+
+ /**
+ * Add a property to the property table.
+ * @param void
+ */
+ public final void addProperty(Object key, Object value)
+ {
+ propertyTable_.put(key, value);
+ }
+
+ /**
+ * Remove a property from the property table. Track the deletions.
+ * @param Object The key of the property being removed.
+ */
+ public final void removeProperty(Object key)
+ {
+ propertyTable_.remove(key);
+ removedProperties_.addElement(key);
+ }
+
+ public final String[] getPropertyAsStringArray(Object key)
+ {
+ Object object = propertyTable_.get(key);
+ if (object instanceof String[])
+ return (String[])object;
+ else if (object != null)
+ return new String[] {object.toString()};
+ else
+ return new String[0];
+ }
+
+ public final boolean execute()
+ {
+ return execute(true);
+ }
+
+ public final boolean execute(boolean useActionEngine)
+ {
+ if (useActionEngine)
+ return controller_.getActionEngine().executeAction(this);
+ else
+ return run();
+ }
+
+ // Abstract method for running this action.
+ public abstract boolean run();
+
+ /**
+ * Return the transformers used to normalize the input/output parameters for this action
+ * @return ITransformer[]
+ */
+ public ITransformer[] getTransformers()
+ {
+ return new ITransformer[] {new CurrentNodeSelectionTransformer(controller_)};
+ }
+
+ protected void handleUnexpectedException(Perspective perspective,MessageQueue messageQueue,String exceptionName,Throwable t)
+ {
+ messageQueue.addMessage(perspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage(exceptionName);
+ messageQueue.addMessage(t.getMessage());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/CheckWorkbenchFileReadOnlyAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/CheckWorkbenchFileReadOnlyAction.java
new file mode 100644
index 000000000..0cfceec6d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/CheckWorkbenchFileReadOnlyAction.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import javax.servlet.http.*;
+
+public class CheckWorkbenchFileReadOnlyAction extends Action
+{
+ public static final String getActionLink()
+ {
+ return "actions/CheckWorkbenchFileReadOnlyActionJSP.jsp";
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearNodeAction.java
new file mode 100644
index 000000000..65d3db43b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearNodeAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.perspective.*;
+
+public abstract class ClearNodeAction extends NodeAction
+{
+ public ClearNodeAction(Controller controller,NodeManager nodeManager)
+ {
+ super(controller,nodeManager);
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ Node node = nodeManager_.getNode(nodeId);
+ TreeElement element = node.getTreeElement();
+ element.disconnectAll();
+ // Do not add this to the history.
+ MessageQueue messageQueue = controller_.getCurrentPerspective().getMessageQueue();
+ messageQueue.addMessage(controller_.getMessage("MSG_INFO_NODE_CLEARED",node.getNodeName()));
+ return true;
+ }
+ return false;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ // Deleting a node from the tree results in changes to the treeview and status contents.
+ public abstract String getTreeContentVar();
+ public abstract String getTreeContentPage();
+ public abstract String getPropertiesContainerVar();
+ public abstract String getPropertiesContainerPage();
+ public abstract String getStatusContentVar();
+ public abstract String getStatusContentPage();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearViewElementAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearViewElementAction.java
new file mode 100644
index 000000000..90614e073
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ClearViewElementAction.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.perspective.*;
+
+import javax.servlet.http.*;
+
+// Abstract action class used for both Link and Form actions.
+public abstract class ClearViewElementAction extends LinkAction
+{
+ private String listManagerRel_;
+ private NodeManager nodeManager_;
+ public ClearViewElementAction(Controller controller,NodeManager nodeManager,String listManagerRel)
+ {
+ super(controller);
+ nodeManager_ = nodeManager;
+ listManagerRel_ = listManagerRel;
+ }
+
+ // ...jsp?viewId=...
+ protected final boolean processLinkParameters(HttpServletRequest request)
+ {
+ String viewIdString = request.getParameter(ActionInputs.VIEWID);
+ // Perform data validation.
+ try
+ {
+ int viewId = Integer.parseInt(viewIdString);
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed!
+ return false;
+ }
+ propertyTable_.put(ActionInputs.VIEWID,viewIdString);
+ return true;
+ }
+
+ public final boolean run()
+ {
+ int viewId = Integer.parseInt((String)propertyTable_.get(ActionInputs.VIEWID));
+ Node selectedNode = nodeManager_.getSelectedNode();
+ ViewTool viewTool = (ViewTool)selectedNode.getToolManager().getSelectedTool();
+ if (viewTool.getToolManager(viewId) == null)
+ {
+ // Stale view.
+ return false;
+ }
+ TreeElement element = selectedNode.getTreeElement();
+ ListManager listManager = (ListManager)element.getPropertyAsObject(listManagerRel_);
+ listManager.removeElementWithViewId(viewId);
+ viewTool.clearViewToolManager(viewId);
+ selectedNode.setViewId(ActionInputs.VIEWID_DEFAULT);
+ // Do not add this to the history.
+ return true;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public abstract String getPropertiesContainerVar();
+ public abstract String getPropertiesContainerPage();
+ public abstract String getStatusContentVar();
+ public abstract String getStatusContentPage();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormAction.java
new file mode 100644
index 000000000..d87965205
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormAction.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import javax.servlet.http.*;
+import java.util.Hashtable;
+import java.util.Iterator;
+
+public abstract class FormAction extends Action
+{
+ public FormAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected abstract boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException;
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ try
+ {
+ MultipartFormDataParser parser = new MultipartFormDataParser();
+ parser.parseRequest(request,HTMLUtils.UTF8_ENCODING);
+ getSelectedFormTool().clearErrors();
+ boolean result = processParsedResults(parser);
+ removedProperties_.removeAllElements();
+ return result;
+ }
+ catch (MultipartFormDataException e)
+ {
+ }
+ return false;
+ }
+
+ public void setPropertyTable(Hashtable propertyTable)
+ {
+ try
+ {
+ processParsedResults(new MultipartFormDataParser(propertyTable));
+ }
+ catch (MultipartFormDataException mfde)
+ {
+ }
+ for (Iterator it = propertyTable.keySet().iterator(); it.hasNext();)
+ {
+ Object key = it.next();
+ Hashtable thisPropertyTable = getPropertyTable();
+ if (!thisPropertyTable.containsKey(key))
+ addProperty(key, propertyTable.get(key));
+ }
+ }
+
+ protected final void addToHistory(int perspectiveId,String url)
+ {
+ controller_.addToHistory(perspectiveId,url);
+ }
+
+ public abstract FormTool getSelectedFormTool();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormInputException.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormInputException.java
new file mode 100644
index 000000000..0f94a9920
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/FormInputException.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+// A class for reporting form input exceptions.
+public class FormInputException extends Exception
+{
+ /**
+ * Comment for <code>serialVersionUID</code>
+ */
+ private static final long serialVersionUID = 3257846601685938742L;
+
+public FormInputException(String msg)
+ {
+ super(msg);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToFileSystemAction.java
new file mode 100644
index 000000000..cefc21128
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToFileSystemAction.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.wsdl.internal.impl.wsdl4j.WSDLFactoryImpl;
+import javax.wsdl.Definition;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLWriter;
+import java.io.OutputStreamWriter;
+import java.io.OutputStream;
+import javax.servlet.http.*;
+import org.apache.wsil.WSILDocument;
+
+public abstract class ImportToFileSystemAction extends LinkAction
+{
+ public ImportToFileSystemAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ // os is the OutputStream of the file in the file system
+ public abstract boolean write(OutputStream os);
+
+ // the default name for the file
+ public abstract String getDefaultFileName();
+
+ public boolean writeWSDLDefinition(OutputStream os, Definition definition)
+ {
+ try
+ {
+ WSDLFactory wsdlFactory = new WSDLFactoryImpl();
+ WSDLWriter wsdlWriter = wsdlFactory.newWSDLWriter();
+ wsdlWriter.writeWSDL(definition, os);
+ return true;
+ }
+ catch (Throwable t)
+ {
+ return false;
+ }
+ }
+
+ public boolean writeWSILDocument(OutputStream os, WSILDocument wsilDoc)
+ {
+ OutputStreamWriter osw = null;
+ try
+ {
+ osw = new OutputStreamWriter(os);
+ wsilDoc.write(osw);
+ return true;
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ finally
+ {
+ try
+ {
+ if (osw != null)
+ osw.close();
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID, String jspPage)
+ {
+ StringBuffer actionLink = new StringBuffer(jspPage);
+ actionLink.append('?');
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ String nodeID = request.getParameter(ActionInputs.NODEID);
+ String toolID = request.getParameter(ActionInputs.TOOLID);
+ String viewID = request.getParameter(ActionInputs.VIEWID);
+ String viewToolID = request.getParameter(ActionInputs.VIEWTOOLID);
+ try
+ {
+ Integer.parseInt(nodeID);
+ Integer.parseInt(toolID);
+ Integer.parseInt(viewID);
+ Integer.parseInt(viewToolID);
+ propertyTable_.put(ActionInputs.NODEID, nodeID);
+ propertyTable_.put(ActionInputs.TOOLID, toolID);
+ propertyTable_.put(ActionInputs.VIEWID, viewID);
+ propertyTable_.put(ActionInputs.VIEWTOOLID, viewToolID);
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public abstract String getStatusContentVar();
+
+ public abstract String getStatusContentPage();
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToWorkbenchAction.java
new file mode 100644
index 000000000..9f766037b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ImportToWorkbenchAction.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * 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.actions;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.MessageQueue;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.wsil.AddWSDLToWSILCommand;
+import org.eclipse.wst.command.internal.env.ui.eclipse.EclipseEnvironment;
+
+public abstract class ImportToWorkbenchAction extends FormAction {
+ private IWorkspaceRoot iWorkspaceRoot_;
+ private IProject iProject_;
+ private IResource targetFileResource_;
+
+ public ImportToWorkbenchAction(Controller controller) {
+ super(controller);
+ iWorkspaceRoot_ = ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException {
+ FormTool formTool = getSelectedFormTool();
+ MessageQueue msgQueue = controller_.getCurrentPerspective().getMessageQueue();
+ boolean inputsValid = true;
+ String workbenchProjectName = parser.getParameter(ActionInputs.WORKBENCH_PROJECT_NAME);
+ if (workbenchProjectName == null || workbenchProjectName.length() <= 0) {
+ msgQueue.addMessage(controller_.getMessage("MSG_ERROR_INVALID_WORKBENCH_PROJECT"));
+ inputsValid = false;
+ }
+ else
+ {
+ iProject_ = iWorkspaceRoot_.getProject(workbenchProjectName);
+ propertyTable_.put(ActionInputs.WORKBENCH_PROJECT_NAME, workbenchProjectName);
+ }
+ String importFile = parser.getParameter(ActionInputs.IMPORT_FILE);
+ if (importFile != null)
+ {
+ propertyTable_.put(ActionInputs.IMPORT_FILE, ActionInputs.IMPORT_FILE);
+ String importedFileName = parser.getParameter(ActionInputs.IMPORTED_FILE_NAME);
+ if (importedFileName == null || importedFileName.length() <= 0)
+ {
+ msgQueue.addMessage(controller_.getMessage("MSG_ERROR_INVALID_FILE_NAME"));
+ inputsValid = false;
+ }
+ else
+ propertyTable_.put(ActionInputs.IMPORTED_FILE_NAME, importedFileName);
+ }
+ String importToWSIL = parser.getParameter(ActionInputs.IMPORT_TO_WSIL);
+ if (importToWSIL != null)
+ {
+ propertyTable_.put(ActionInputs.IMPORT_TO_WSIL, ActionInputs.IMPORT_TO_WSIL);
+ propertyTable_.put(ActionInputs.IMPORTED_WSDL_URL, parser.getParameter(ActionInputs.IMPORTED_WSDL_URL));
+ String wsilFileName = parser.getParameter(ActionInputs.WSIL_FILE_NAME);
+ if (wsilFileName == null || wsilFileName.length() <= 0)
+ {
+ msgQueue.addMessage(controller_.getMessage("MSG_ERROR_INVALID_WSIL_FILE_NAME"));
+ inputsValid = false;
+ }
+ else
+ propertyTable_.put(ActionInputs.WSIL_FILE_NAME, wsilFileName);
+ }
+ if (importFile == null && importToWSIL == null)
+ {
+ msgQueue.addMessage(controller_.getMessage("MSG_ERROR_NO_IMPORT_OPTION_SELECTED"));
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ private OutputStream getOutputStream(String defaultFileName) throws FileNotFoundException {
+ File file = new File(controller_.getServletEngineStateLocation() + defaultFileName);
+ FileOutputStream fos = new FileOutputStream(file);
+ return fos;
+ }
+
+ private boolean importTempFileToWebProject(String defaultFileName) throws FileNotFoundException, CoreException
+ {
+ if (targetFileResource_ != null && targetFileResource_.getType() == IResource.FILE)
+ targetFileResource_.delete(true,new NullProgressMonitor());
+
+ String importedFileName = (String)propertyTable_.get(ActionInputs.IMPORTED_FILE_NAME);
+ File file = new File(controller_.getServletEngineStateLocation()+defaultFileName);
+ BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
+
+ IFile iFile = iProject_.getFile("/"+importedFileName);
+ iFile.create(bis,true,new NullProgressMonitor());
+
+ // Remove the temporary file
+ file.delete();
+ return true;
+ }
+
+ public boolean fileExists()
+ {
+ String importedFileName = (String)propertyTable_.get(ActionInputs.IMPORTED_FILE_NAME);
+ if (importedFileName != null)
+ {
+ targetFileResource_ = iProject_.findMember(importedFileName);
+ return (targetFileResource_ != null && targetFileResource_.getType() == IResource.FILE);
+ }
+ else
+ return false;
+ }
+
+ public boolean isTargetFileResourceReadOnly()
+ {
+ return targetFileResource_.getResourceAttributes().isReadOnly();
+ }
+
+ // TODO: ResourceContext need to move to org.eclipse.wst.ws.
+ public boolean isCheckoutFilesEnabled()
+ {
+ return true;
+// return WebServicePlugin.getInstance().getResourceContext().isCheckoutFilesEnabled();
+ }
+
+ public String getWebServicePluginFileMessage(String messageId)
+ {
+ String importedFileName = (String)propertyTable_.get(ActionInputs.IMPORTED_FILE_NAME);
+ return controller_.getMessage(messageId,new String[]{iProject_.getFullPath().toString(),importedFileName});
+ }
+
+ // TODO: ResourceContext need to move to org.eclipse.wst.ws.
+ public boolean isOverwriteFilesEnabled()
+ {
+ return true;
+// return WebServicePlugin.getInstance().getResourceContext().isOverwriteFilesEnabled();
+ }
+
+ public boolean validateEdit()
+ {
+ IFile[] files = new IFile[1];
+ files[0] = (IFile)targetFileResource_;
+ IStatus status = ResourcesPlugin.getWorkspace().validateEdit(files,null);
+ MessageQueue messageQueue = controller_.getCurrentPerspective().getMessageQueue();
+ messageQueue.addMessage(status.getMessage());
+ return status.isOK();
+ }
+
+ public boolean run() {
+ MessageQueue msgQueue = controller_.getCurrentPerspective().getMessageQueue();
+ if (propertyTable_.get(ActionInputs.IMPORT_FILE) != null)
+ {
+ try {
+ ImportToFileSystemAction action = newImportToFileSystemAction();
+ action.run();
+ String defaultFileName = action.getDefaultFileName();
+ if (!action.write(getOutputStream(defaultFileName))) {
+ msgQueue.addMessage(controller_.getMessage("MSG_ERROR_WRITING_TEMP_FILE_TO_FS"));
+ return false;
+ }
+ importTempFileToWebProject(defaultFileName);
+ String importedFileName = (String)propertyTable_.get(ActionInputs.IMPORTED_FILE_NAME);
+ msgQueue.addMessage(controller_.getMessage("MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL", importedFileName));
+ }
+ catch (FileNotFoundException fnfe) {
+ msgQueue.addMessage(fnfe.getMessage());
+ return false;
+ }
+ catch (CoreException ce) {
+ msgQueue.addMessage(ce.getMessage());
+ return false;
+ }
+ }
+ if (propertyTable_.get(ActionInputs.IMPORT_TO_WSIL) != null)
+ {
+ String projectName = (String)propertyTable_.get(ActionInputs.WORKBENCH_PROJECT_NAME);
+ String importedWSILFileName = (String)propertyTable_.get(ActionInputs.WSIL_FILE_NAME);
+ String wsdlURL = (String)propertyTable_.get(ActionInputs.IMPORTED_WSDL_URL);
+ StringBuffer wsilPlatformURL = new StringBuffer("platform:/resource/");
+ wsilPlatformURL.append(projectName);
+ wsilPlatformURL.append('/');
+ wsilPlatformURL.append(importedWSILFileName);
+ AddWSDLToWSILCommand command = new AddWSDLToWSILCommand();
+ String[] args = new String[5];
+ args[0] = AddWSDLToWSILCommand.ARG_WSIL;
+ args[1] = wsilPlatformURL.toString();
+ args[2] = AddWSDLToWSILCommand.ARG_WSDL;
+ args[3] = wsdlURL;
+ args[4] = AddWSDLToWSILCommand.ARG_RESOLVE_WSDL;
+ command.setArguments(args);
+ command.execute(new EclipseEnvironment(null, null, null, null));
+ msgQueue.addMessage(controller_.getMessage("MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL", importedWSILFileName));
+ }
+ return true;
+ }
+
+ public abstract String getStatusContentVar();
+ public abstract String getStatusContentPage();
+ public abstract ImportToFileSystemAction newImportToFileSystemAction();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LaunchWebServiceWizardAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LaunchWebServiceWizardAction.java
new file mode 100644
index 000000000..1370dde4e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LaunchWebServiceWizardAction.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+
+public abstract class LaunchWebServiceWizardAction extends FormAction
+{
+ public LaunchWebServiceWizardAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String wizardID = parser.getParameter(ActionInputs.WEB_SERVICE_WIZARD);
+ propertyTable_.put(ActionInputs.WEB_SERVICE_WIZARD, wizardID);
+ return true;
+ }
+
+ public boolean launchWizard(String wsdlURL)
+ {
+ LaunchWizardTask task = LaunchWizardTask.getInstance();
+ if (task.getIsExecuting())
+ {
+ controller_.getCurrentPerspective().getMessageQueue().addMessage(controller_.getMessage("MSG_ERROR_WIZARD_ALREADY_RUNNING"));
+ return false;
+ }
+ int wizardID = Integer.parseInt((String)propertyTable_.get(ActionInputs.WEB_SERVICE_WIZARD));
+ LaunchWizardRunnable runnable;
+ if (wizardID == ActionInputs.WEB_SERVICE_CLIENT_WIZARD)
+ runnable = new LaunchWizardRunnable("org.eclipse.jst.ws.internal.consumption.ui.wizard.client.clientwizard", wsdlURL);
+ else if (wizardID == ActionInputs.WEB_SERVICE_SKELETON_WIZARD)
+ runnable = new LaunchWizardRunnable("org.eclipse.jst.ws.creation.ui.wizard.serverwizard", wsdlURL);
+ else
+ return false;
+ task.checkAndAsyncExec(runnable);
+ return true;
+ }
+
+ public abstract String getStatusContentVar();
+
+ public abstract String getStatusContentPage();
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LinkAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LinkAction.java
new file mode 100644
index 000000000..223b155c3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/LinkAction.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.http.*;
+
+// Abstract class representing the action of clicking a link. These actions
+// may change the history list.
+public abstract class LinkAction extends Action
+{
+ private boolean isAddedToHistory_;
+ private boolean isStaleBreadCrumb_;
+
+ public LinkAction(Controller controller)
+ {
+ super(controller);
+ isAddedToHistory_ = false;
+ isStaleBreadCrumb_ = false;
+ }
+
+ // Determine if the action was successfully added to this history list.
+ // This should be called after the run() method.
+ public final boolean isAddedToHistory()
+ {
+ return isAddedToHistory_;
+ }
+
+ protected abstract boolean processLinkParameters(HttpServletRequest request);
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ String isHistoryString = request.getParameter(ActionInputs.ISHISTORY);
+ if (isHistoryString != null)
+ propertyTable_.put(ActionInputs.ISHISTORY,isHistoryString);
+ return processLinkParameters(request);
+ }
+
+ // Add the action's URL to the controller's history list.
+ protected final void addToHistory(int perspectiveId,String url)
+ {
+ if (!isHistoryAction())
+ isAddedToHistory_ = controller_.addToHistory(perspectiveId,url);
+ }
+
+ public final boolean isHistoryAction()
+ {
+ return (propertyTable_.get(ActionInputs.ISHISTORY) != null);
+ }
+
+ public final void setStaleBreadCrumb()
+ {
+ if (isHistoryAction())
+ {
+ isStaleBreadCrumb_ = true;
+ controller_.processStaleBreadCrumb();
+ }
+ }
+
+ public final boolean isStaleBreadCrumb()
+ {
+ return isStaleBreadCrumb_;
+ }
+
+ // Call this when a stale breadcrumb is encountered while traversing history chain.
+ public final String getNextHistoryActionLink()
+ {
+ return RetrieveHistoryAction.getActionLink(controller_.getHistoryDirection());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/NodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/NodeAction.java
new file mode 100644
index 000000000..aec33b30c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/NodeAction.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.http.*;
+
+public abstract class NodeAction extends LinkAction
+{
+ protected NodeManager nodeManager_;
+ private boolean requiresTreeViewRefresh_;
+ private boolean requiresNodeSelection_;
+ private boolean requiresViewSelection_;
+ private boolean requiresStatusUpdate_;
+
+ public NodeAction(Controller controller,NodeManager nodeManager)
+ {
+ super(controller);
+ nodeManager_ = nodeManager;
+ requiresTreeViewRefresh_ = false;
+ requiresNodeSelection_ = false;
+ requiresViewSelection_ = false;
+ requiresStatusUpdate_ = false;
+ }
+
+ // ...jsp?nodeId=...<&isHistory=1>
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ String nodeIdString = request.getParameter(ActionInputs.NODEID);
+ // Perform data validation.
+ try
+ {
+ int nodeId = Integer.parseInt(nodeIdString);
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed!
+ return false;
+ }
+ propertyTable_.put(ActionInputs.NODEID,nodeIdString);
+ return true;
+ }
+
+ protected final boolean isStaleNode(int nodeId)
+ {
+ return (nodeManager_.getNode(nodeId) == null);
+ }
+
+ /**
+ * Make a node visible. A node is visible when all of its ancestors are expanded.
+ * @param Node The node to be made visible.
+ * @return boolean Indicator for whether or not the tree structure was changed (i.e. expanded to show the node in question).
+ */
+ protected final boolean makeNodeVisible(Node node)
+ {
+ requiresTreeViewRefresh_ = node.getNodeManager().makeNodeVisible(node);
+ return requiresTreeViewRefresh_;
+ }
+
+ /**
+ * Select a node with id nodeId.
+ * @param int The id of the node to be selected.
+ */
+ protected final void setSelectedNodeId(int nodeId)
+ {
+ if (nodeManager_.getSelectedNodeId() != nodeId)
+ {
+ requiresNodeSelection_ = true;
+ nodeManager_.setSelectedNodeId(nodeId);
+ }
+ }
+
+ protected final void setSelectedViewId(int viewId)
+ {
+ Node selectedNode = nodeManager_.getSelectedNode();
+ if (selectedNode.getViewId() != viewId)
+ {
+ requiresViewSelection_ = true;
+ selectedNode.setViewId(viewId);
+ }
+ }
+
+ // Determine whether or not the treeview requires reloading as a result of this action.
+ // Reloading is required when branches are added/removed.
+ public boolean requiresTreeViewRefresh()
+ {
+ return requiresTreeViewRefresh_;
+ }
+
+ // Determine whether or not a new node has been selected as a result of the action.
+ public boolean requiresNodeSelection()
+ {
+ return requiresNodeSelection_;
+ }
+
+ // Determine if a new view element is selected.
+ public boolean requiresViewSelection()
+ {
+ return requiresViewSelection_;
+ }
+
+ // Determine if any status messages arose from this action.
+ public boolean requiresStatusUpdate()
+ {
+ return requiresStatusUpdate_;
+ }
+
+ protected abstract String getActionLinkForHistory();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenCalendarBrowserAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenCalendarBrowserAction.java
new file mode 100644
index 000000000..f9136ec40
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenCalendarBrowserAction.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+import javax.servlet.http.*;
+
+public class OpenCalendarBrowserAction extends Action
+{
+ public OpenCalendarBrowserAction()
+ {
+ }
+
+ // calendar_browser.jsp?sessionId=...&calendarType=...
+ public static final String getActionLink(String sessionId,int calendarType)
+ {
+ StringBuffer actionLink = new StringBuffer("calendar_browser.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ actionLink.append('&').append(ActionInputs.CALENDAR_TYPE).append('=').append(calendarType);
+ return actionLink.toString();
+ }
+
+ public static final String getActionLinkForDate(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.CALENDAR_TYPE_DATE);
+ }
+
+ public static final String getActionLinkForDateTime(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.CALENDAR_TYPE_DATETIME);
+ }
+
+ public static final String getActionLinkForGYearMonth(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.CALENDAR_TYPE_GYEARMONTH);
+ }
+
+ public static final String getActionLinkForGDay(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.CALENDAR_TYPE_GDAY);
+ }
+
+ public static final String getActionLinkForGMonthDay(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.CALENDAR_TYPE_GMONTHDAY);
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenWSDLBrowserAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenWSDLBrowserAction.java
new file mode 100644
index 000000000..f29974991
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/OpenWSDLBrowserAction.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+import javax.servlet.http.*;
+
+public class OpenWSDLBrowserAction extends Action
+{
+ public OpenWSDLBrowserAction()
+ {
+ }
+
+ public static final String getActionLink(String sessionId,int wsdlType)
+ {
+ StringBuffer actionLink = new StringBuffer("wsdl_browser.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ actionLink.append('&').append(ActionInputs.WSDL_TYPE).append('=').append(wsdlType);
+ return actionLink.toString();
+ }
+
+ public static final String getActionLinkForService(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.WSDL_TYPE_SERVICE);
+ }
+
+ public static final String getActionLinkForServiceInterface(String sessionId)
+ {
+ return getActionLink(sessionId,ActionInputs.WSDL_TYPE_SERVICE_INTERFACE);
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ProxyLoadPageAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ProxyLoadPageAction.java
new file mode 100644
index 000000000..01a5e40b2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ProxyLoadPageAction.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+import javax.servlet.http.*;
+
+public class ProxyLoadPageAction extends Action
+{
+ // Get the action given a relative targetPage URL. e.g. "forms/LongLoadingForm.jsp"
+ public static final String getActionLink(String targetPage)
+ {
+ return getActionLink(null,targetPage);
+ }
+
+ // Get the action given a sessionId and a relative targetPage URL.
+ public static final String getActionLink(String sessionId,String targetPage)
+ {
+ StringBuffer actionLink = new StringBuffer("forms/ProxyLoadPage.jsp?");
+ if (sessionId != null)
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId).append('&');
+ actionLink.append(ActionInputs.TARGET_PAGE).append('=').append(targetPage);
+ return actionLink.toString();
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ResizeFramesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ResizeFramesAction.java
new file mode 100644
index 000000000..87d94cec9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ResizeFramesAction.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import javax.servlet.http.*;
+
+public abstract class ResizeFramesAction extends Action
+{
+ protected Controller controller_;
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String frameName = parser.getParameter(ActionInputs.FRAME_NAME);
+ if (frameName != null)
+ propertyTable_.put(ActionInputs.FRAME_NAME,frameName);
+ else
+ return false;
+ return processOthers(parser);
+ }
+
+ protected abstract boolean processOthers(MultipartFormDataParser parser) throws MultipartFormDataException;
+
+ public ResizeFramesAction(Controller controller)
+ {
+ controller_ = controller;
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ try
+ {
+ MultipartFormDataParser parser = new MultipartFormDataParser();
+ parser.parseRequest(request,HTMLUtils.UTF8_ENCODING);
+ boolean result = processParsedResults(parser);
+ return result;
+ }
+ catch (MultipartFormDataException e)
+ {
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/RetrieveHistoryAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/RetrieveHistoryAction.java
new file mode 100644
index 000000000..add1e2406
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/RetrieveHistoryAction.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.http.*;
+
+public class RetrieveHistoryAction extends LinkAction
+{
+ private BreadCrumb breadCrumb_;
+
+ public RetrieveHistoryAction(Controller controller)
+ {
+ super(controller);
+ breadCrumb_ = null;
+ }
+
+ // actions/RetrieveHistoryAction.jsp?jump=1 - forward (ActionInputs.JUMP_FORWARD)
+ // actions/RetrieveHistoryAction.jsp?jump=-1 - backward (ActionInputs.JUMP_BACK)
+ public final static String getActionLink(int jump)
+ {
+ StringBuffer actionLink = new StringBuffer("actions/RetrieveHistoryActionJSP.jsp?");
+ actionLink.append(ActionInputs.JUMP).append('=').append(jump);
+ return actionLink.toString();
+ }
+
+ protected final boolean processLinkParameters(HttpServletRequest request)
+ {
+ String jumpString = request.getParameter(ActionInputs.JUMP);
+ // Perform data validation.
+ try
+ {
+ int jump = Integer.parseInt(jumpString);
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed!
+ return false;
+ }
+ propertyTable_.put(ActionInputs.JUMP,jumpString);
+ return true;
+ }
+
+ public final boolean run()
+ {
+ int jump = Integer.parseInt((String)propertyTable_.get(ActionInputs.JUMP));
+ switch (jump)
+ {
+ case ActionInputs.JUMP_FORWARD:
+ breadCrumb_ = controller_.forward();
+ return true;
+ case ActionInputs.JUMP_BACK:
+ breadCrumb_ = controller_.back();
+ return true;
+ }
+ return false;
+ }
+
+ public final BreadCrumb getBreadCrumb()
+ {
+ return breadCrumb_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeAction.java
new file mode 100644
index 000000000..494444b6c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.NodeSelectionTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public abstract class SelectNodeAction extends NodeAction
+{
+ protected Node selectedNode_;
+
+ public SelectNodeAction(Controller controller,NodeManager nodeManager)
+ {
+ super(controller,nodeManager);
+ selectedNode_ = null;
+ }
+
+ public final void performBaseAction(int nodeId)
+ {
+ setSelectedNodeId(nodeId);
+ selectedNode_ = nodeManager_.getSelectedNode();
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ // Ensure that the node is visible.
+ makeNodeVisible(nodeManager_.getNode(nodeId));
+ performBaseAction(nodeId);
+ addToHistory(getPerspectiveId(),getActionLinkForHistory());
+ return true;
+ }
+ setStaleBreadCrumb();
+ return false;
+ }
+
+ public final Node getSelectedNode()
+ {
+ return selectedNode_;
+ }
+
+ public ITransformer[] getTransformers()
+ {
+ return new ITransformer[] {new NodeSelectionTransformer(controller_)};
+ }
+
+ // Selecting a node changes the treeview content and the properties container.
+ public abstract String getTreeContentVar();
+ public abstract String getTreeContentPage();
+ public abstract String getPropertiesContainerVar();
+ public abstract String getPropertiesContainerPage();
+ public abstract int getPerspectiveId();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeToolAction.java
new file mode 100644
index 000000000..25bdb456e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/SelectNodeToolAction.java
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.CurrentNodeSelectionTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.http.*;
+
+public abstract class SelectNodeToolAction extends SelectNodeAction
+{
+ protected NodeManager nodeManager_;
+ protected Tool selectedTool_;
+
+ public SelectNodeToolAction(Controller controller,NodeManager nodeManager)
+ {
+ super(controller,nodeManager);
+ nodeManager_ = nodeManager;
+ selectedTool_ = null;
+ }
+
+ public final NodeManager getNodeManager()
+ {
+ return nodeManager_;
+ }
+
+ // ...jsp?nodeId=...&toolId=...<&viewId=...&viewToolId=...><&isHistory=1>
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ boolean result = super.processLinkParameters(request);
+ String toolIdString = request.getParameter(ActionInputs.TOOLID);
+ String viewIdString = request.getParameter(ActionInputs.VIEWID);
+ String viewToolIdString = request.getParameter(ActionInputs.VIEWTOOLID);
+
+ // Perform data validation.
+ try
+ {
+ int toolId = Integer.parseInt(toolIdString);
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed.
+ return false;
+ }
+ propertyTable_.put(ActionInputs.TOOLID,toolIdString);
+
+ // Optional properties
+ try
+ {
+ int viewId = Integer.parseInt(viewIdString);
+ propertyTable_.put(ActionInputs.VIEWID,viewIdString);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ {
+ int viewToolId = Integer.parseInt(viewToolIdString);
+ propertyTable_.put(ActionInputs.VIEWTOOLID,viewToolIdString);
+ }
+ }
+ catch (NumberFormatException e)
+ {
+ }
+ return result;
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ // Ensure that the node is visible.
+ makeNodeVisible(nodeManager_.getNode(nodeId));
+ setSelectedNodeId(nodeId);
+ selectedNode_ = nodeManager_.getSelectedNode();
+ int toolId = Integer.parseInt((String)propertyTable_.get(ActionInputs.TOOLID));
+ ToolManager toolManager = selectedNode_.getToolManager();
+ toolManager.setSelectedToolId(toolId);
+ selectedTool_ = toolManager.getSelectedTool();
+ String viewIdString = ((String)propertyTable_.get(ActionInputs.VIEWID));
+ if (viewIdString != null)
+ {
+ int viewId = Integer.parseInt(viewIdString);
+ setSelectedViewId(viewId);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ {
+ String viewToolIdString = ((String)propertyTable_.get(ActionInputs.VIEWTOOLID));
+ ViewTool viewTool = (ViewTool)selectedTool_;
+ if (viewToolIdString != null)
+ {
+ int viewToolId = Integer.parseInt(viewToolIdString);
+ ToolManager viewToolManager = selectedNode_.getViewToolManager();
+ if (viewToolManager == null)
+ {
+ if (!isHistoryAction())
+ {
+ viewToolManager = viewTool.createToolManager(viewId);
+ viewToolId = viewToolManager.getSelectedToolId();
+ }
+ else
+ {
+ setStaleBreadCrumb();
+ return false;
+ }
+ }
+ viewToolManager.setSelectedToolId(viewToolId);
+ }
+ }
+ }
+ else
+ setSelectedViewId(ActionInputs.VIEWID_DEFAULT);
+ addToHistory(getPerspectiveId(),getActionLinkForHistory());
+ return true;
+ }
+ setStaleBreadCrumb();
+ return false;
+ }
+
+ public ITransformer[] getTransformers()
+ {
+ return new ITransformer[] {new CurrentNodeSelectionTransformer(controller_)};
+ }
+
+ public final Tool getSelectedViewTool()
+ {
+ if (propertyTable_.get(ActionInputs.VIEWID) != null)
+ return selectedNode_.getViewToolManager().getSelectedTool();
+ return null;
+ }
+
+ public final Tool getSelectedTool()
+ {
+ return selectedTool_;
+ }
+
+ // Selecting a node tool updates the properties content. Also, in the event
+ // of a history switch, nodes may need to be selected resulting in changes to
+ // both the treeview content and the properties container. These requirements are
+ // covered through the base class.
+ public abstract String getPropertiesContentVar();
+ public abstract String getPropertiesContentPage();
+ public String getStatusContentVar()
+ {
+ return null;
+ }
+
+ public String getStatusContentPage()
+ {
+ return null;
+ }
+
+ public abstract int getPerspectiveId();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ShowPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ShowPerspectiveAction.java
new file mode 100644
index 000000000..05e144f72
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ShowPerspectiveAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import javax.servlet.http.*;
+
+public class ShowPerspectiveAction extends LinkAction
+{
+ public ShowPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ // actions/show_perspective.jsp?perspective=0<&isHistory=1> - UDDI (ActionInputs.PERSPECTIVE_UDDI)
+ // actions/show_perspective.jsp?perspective=1<&isHistory=1> - WSIL (ActionInputs.PERSPECTIVE_WSIL)
+ // actions/show_perspective.jsp?perspective=2<&isHistory=1> - WSDL (ActionInputs.PERSPECTIVE_WSDL)
+ // actions/show_perspective.jsp?perspective=3<&isHistory=1> - Favorites (ActionInputs.PERSPECTIVE_FAVORITES)
+ public final static String getActionLink(int newPerspective,boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("actions/ShowPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.PERSPECTIVE).append('=').append(newPerspective);
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ return true;
+ }
+
+ protected final boolean processLinkParameters(HttpServletRequest request)
+ {
+ boolean result = false;
+ String perspectiveString = request.getParameter(ActionInputs.PERSPECTIVE);
+ // Perform data validation.
+ try
+ {
+ int perspective = Integer.parseInt(perspectiveString);
+ propertyTable_.put(ActionInputs.PERSPECTIVE,perspectiveString);
+ MultipartFormDataParser parser = new MultipartFormDataParser();
+ parser.parseRequest(request,HTMLUtils.UTF8_ENCODING);
+ result = processParsedResults(parser);
+ removedProperties_.removeAllElements();
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed! - This should not happen.
+ }
+ catch (MultipartFormDataException e)
+ {
+ }
+ return result;
+ }
+
+ public boolean run()
+ {
+ int perspective = Integer.parseInt((String)propertyTable_.get(ActionInputs.PERSPECTIVE));
+ controller_.setCurrentPerspective(perspective);
+ addToHistory(perspective,getActionLink(perspective,true));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ToggleNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ToggleNodeAction.java
new file mode 100644
index 000000000..bd35d8ec4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ToggleNodeAction.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.NodeIdTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public abstract class ToggleNodeAction extends NodeAction
+{
+ protected Node toggledNode_;
+ public ToggleNodeAction(Controller controller,NodeManager nodeManager)
+ {
+ super(controller,nodeManager);
+ toggledNode_ = null;
+ }
+
+ // Toggle the current node and update the selection iff the currently selected
+ // is a related descendant of a collapsed node.
+ /**
+ * Toggle the current node and update the selection iff the currently selected
+ * node is a related descendant of the current node and the current node is
+ * now collapsed as a result of this action.
+ *
+ * @param int The node ID of the node for which this action applies to.
+ * @return boolean Indicator of whether or not a selection change was necessary.
+ */
+ public final boolean performBaseAction(int nodeId)
+ {
+ toggledNode_ = nodeManager_.getNode(nodeId);
+ nodeManager_.setFocusedNodeId(nodeId);
+ toggledNode_.setVisibilityOfChildren(!toggledNode_.isOpen());
+ Node selectedNode = nodeManager_.getSelectedNode();
+ if (selectedNode != null)
+ {
+ if (!selectedNode.isVisible())
+ {
+ setSelectedNodeId(nodeId);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ if (performBaseAction(nodeId))
+ {
+ // Save the selection of the toggle link in the history.
+ addToHistory(getPerspectiveId(),getActionLinkForHistory());
+ }
+ // Do not save the toggle in history.
+ return true;
+ }
+ setStaleBreadCrumb();
+ return false;
+ }
+
+ public final Node getToggledNode()
+ {
+ return toggledNode_;
+ }
+
+ public ITransformer[] getTransformers()
+ {
+ return new ITransformer[] {new NodeIdTransformer(controller_)};
+ }
+
+ public abstract String getTreeContentVar();
+ public abstract String getTreeContentPage();
+ public abstract String getPropertiesContainerVar();
+ public abstract String getPropertiesContainerPage();
+ public abstract int getPerspectiveId();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ValidateEditAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ValidateEditAction.java
new file mode 100644
index 000000000..ea7184d63
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/ValidateEditAction.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import javax.servlet.http.*;
+
+public class ValidateEditAction extends Action
+{
+ public static final String getActionLink()
+ {
+ return "actions/ValidateEditActionJSP.jsp";
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WSDLFileNameHelper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WSDLFileNameHelper.java
new file mode 100644
index 000000000..2471ea164
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WSDLFileNameHelper.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+public class WSDLFileNameHelper
+{
+ private static final String default_ = "temp.wsdl";
+
+ /**
+ * Given a wsdl path (file, URL etc.), guess at the file name by looking for the .wsdl extension at the end of the
+ * path and the file that it belongs to. If this is not possible, return the default defined in this class.
+ * @param String The path (file, URL etc.) of this WSDL file.
+ * @return String The WSDL file name determined by this routine.
+ */
+ public static final String getWSDLFileName(String wsdlPathname)
+ {
+ if (wsdlPathname != null)
+ {
+ if (wsdlPathname.endsWith(".wsdl"))
+ {
+ int lastSeparatorPos = Math.max(wsdlPathname.lastIndexOf("/"),wsdlPathname.lastIndexOf("\\"));
+ if (lastSeparatorPos > 0)
+ return wsdlPathname.substring(lastSeparatorPos+1,wsdlPathname.length());
+ }
+ }
+ return default_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WriteWSDLToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WriteWSDLToWorkbenchAction.java
new file mode 100644
index 000000000..dfcf6a356
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/actions/WriteWSDLToWorkbenchAction.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions;
+
+import javax.servlet.http.*;
+
+public class WriteWSDLToWorkbenchAction extends Action
+{
+ public static final String getActionLink()
+ {
+ return "actions/WriteWSDLToWorkbenchActionJSP.jsp";
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ActionInputs.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ActionInputs.java
new file mode 100644
index 000000000..0bfeac353
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ActionInputs.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * 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.constants;
+
+public class ActionInputs
+{
+ // URL parm for all actions which are in the history list.
+ public static final String ISHISTORY = "isHistory";
+
+ // Utility constant for tree node identification.
+ public static final String NODEID = "nodeId";
+
+ // Utility constant for tool identification.
+ public static final String TOOLID = "toolId";
+
+ // Utility constant for view identification.
+ public static final String VIEWID = "viewId";
+ public static final int VIEWID_DEFAULT = -1;
+
+ // Utility constant for view tool identification.
+ public static final String VIEWTOOLID = "viewToolId";
+ public static final int VIEWTOOLID_DEFAULT = -1;
+
+ // Utility constants for transport classes
+ public static final String TRANSPORT_CLASS_NAME = "org.uddi4j.TransportClassName";
+ public static final String TRASPORT_CLASS = "org.uddi4j.transport.ApacheAxisTransport";
+ //public static final String AXIS_TRANSPORT_CLASS = "org.uddi4j.transport.ApacheAxisTransport";
+ //public static final String SOAP_TRANSPORT_CLASS = "org.uddi4j.transport.ApacheSOAPTransport";
+
+ // ToggleNodeAction and its derivatives.
+ public static final String OPEN = "open";
+ public static final int OPEN_NODE = 1;
+ public static final int CLOSE_NODE = 0;
+
+ // ShowPerspectiveAction
+ public static final String PERSPECTIVE = "perspective";
+ public static final int PERSPECTIVE_UDDI = 0;
+ public static final int PERSPECTIVE_WSIL = 1;
+ public static final int PERSPECTIVE_WSDL = 2;
+ public static final int PERSPECTIVE_FAVORITES = 3;
+
+ // RetrieveHistoryAction
+ public static final String JUMP = "jump";
+ public static final int JUMP_FORWARD = 1;
+ public static final int JUMP_BACK = -1;
+
+ // LaunchWebServiceWizardAction
+ public final static String WEB_SERVICE_WIZARD = "webServiceWizard";
+ public final static int WEB_SERVICE_CLIENT_WIZARD = 0;
+ public final static int WEB_SERVICE_SKELETON_WIZARD = 1;
+
+ // ImportToWorkbenchAction
+ public final static String WORKBENCH_PROJECT_NAME = "workbenchProjectName";
+ public final static String IMPORT_FILE = "importWSDL";
+ public final static String IMPORTED_FILE_NAME = "importedFileName";
+ public final static String IMPORT_TO_WSIL = "importToWSIL";
+ public final static String WSIL_FILE_NAME = "WSILFileName";
+ public final static String IMPORTED_WSDL_URL = "importedWsdlUrl";
+ public final static String IMPORT_ACTION = "importAction";
+
+ // ProxyLoadAction
+ public final static String TARGET_PAGE = "targetPage";
+
+ // Session ID for pop ups whose browsers choose to ignore the session.
+ public final static String SESSIONID = "sId";
+
+ // WSDL Browser
+ public static final String PROJECT = "project";
+ public static final String WSDL_TYPE = "wsdlType";
+ public static final int WSDL_TYPE_SERVICE_INTERFACE = 0;
+ public static final int WSDL_TYPE_SERVICE = 1;
+ public static final String QUERY_INPUT_WEBPROJECT_WSDL_URL = "webProjectWSDLURL";
+ public static final String QUERY_INPUT_FAVORITE_WSDL_URL = "favoriteWSDLURL";
+ public static final String QUERY_INPUT_WSDL_URL = "wsdlURL";
+
+ // Calendar Browser
+ public static final String CALENDAR_TYPE = "calendarType";
+ public static final int CALENDAR_TYPE_DATE = 0;
+ public static final int CALENDAR_TYPE_DATETIME = 1;
+ public static final int CALENDAR_TYPE_GYEARMONTH = 2;
+ public static final int CALENDAR_TYPE_GDAY = 3;
+ public static final int CALENDAR_TYPE_GMONTHDAY = 4;
+
+ // ResizeFrameAction
+ public static final String FRAME_NAME = "frameName";
+
+ // Other Actions
+ public static final String CURRENT_TOOL_MANAGER = "currentToolManager";
+
+ // Action Engine
+ public static final String ACTION_ENGINE_SCENARIO = "actionEngineScenario";
+ public static final String ACTION_ENGINE_MODE = "actionEngineMode";
+
+ // MultipartFormDataParser
+ public static final String MULTIPART_FORM_DATA_PARSER = "multipartFormDataParser";
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/FrameNames.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/FrameNames.java
new file mode 100644
index 000000000..eb71f5fd1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/FrameNames.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * 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.constants;
+
+public class FrameNames
+{
+ // wsexplorer.jsp
+ public final static String WINDOW_NAME_WSEXPLORER_JSP = "wsexplorer.jsp";
+ public final static String PERSPECTIVE_WORKAREA = "perspective_workarea";
+ public final static String PERSPECTIVE_TOOLBAR = "perspective_toolbar";
+ public final static String PERSPECTIVE_CONTENT = "perspective_content";
+
+ // WSDL Browser
+ public final static String WSDL_TOOLBAR = "wsdl_toolbar";
+ public final static String WSDL_CONTENT = "wsdl_content";
+
+ // Calendar Browser
+ public final static String CALENDAR_TOOLBAR = "calendar_toolbar";
+ public final static String CALENDAR_CONTENT = "calendar_content";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ModelConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ModelConstants.java
new file mode 100644
index 000000000..dd55527ba
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ModelConstants.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * 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.constants;
+
+public class ModelConstants
+{
+ public static final String REL_ID = "relationshipId";
+ public static final String REL_LOCALNAME_SEPARATOR = "#";
+ public static final String REL_OWNER = "owner";
+ public static final String REL_CHILDREN = "children";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ToolTypes.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ToolTypes.java
new file mode 100644
index 000000000..b27134cd1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/constants/ToolTypes.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.constants;
+
+public class ToolTypes
+{
+ public static final byte FORM = 0;
+ public static final byte ACTION = 1;
+ public static final byte VIEW = 2;
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListElement.java
new file mode 100644
index 000000000..8829f7df9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListElement.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+public class ListElement
+{
+ private int viewId_;
+ private Object object_;
+ // For search parameters: info on the Node and ViewTool holding this element.
+ private int targetNodeId_;
+ private int targetToolId_;
+ private int targetViewId_;
+
+ public ListElement(Object object)
+ {
+ object_ = object;
+ viewId_ = ActionInputs.VIEWID_DEFAULT;
+ targetNodeId_ = -1;
+ targetToolId_ = -1;
+ targetViewId_ = ActionInputs.VIEWID_DEFAULT;
+ }
+
+ public final Object getObject()
+ {
+ return object_;
+ }
+
+ public final void setViewId(int viewId)
+ {
+ viewId_ = viewId;
+ }
+
+ public final int getViewId()
+ {
+ return viewId_;
+ }
+
+ public final void setTargetViewToolInfo(int nodeId,int toolId,int viewId)
+ {
+ targetNodeId_ = nodeId;
+ targetToolId_ = toolId;
+ targetViewId_ = viewId;
+ }
+
+ public final int getTargetNodeId()
+ {
+ return targetNodeId_;
+ }
+
+ public final int getTargetToolId()
+ {
+ return targetToolId_;
+ }
+
+ public final int getTargetViewId()
+ {
+ return targetViewId_;
+ }
+
+ public final String toString() {
+ return getObject().toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListManager.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListManager.java
new file mode 100644
index 000000000..79c44b18e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/ListManager.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel;
+
+import java.util.*;
+
+public class ListManager
+{
+ private int nextViewId_;
+ private Vector itemsList_;
+ private Hashtable itemsTable_;
+
+ public ListManager()
+ {
+ nextViewId_ = 0;
+ itemsList_ = new Vector();
+ itemsTable_ = new Hashtable();
+ }
+
+ private final void updateManager(ListElement element)
+ {
+ itemsTable_.put(String.valueOf(nextViewId_),element);
+ element.setViewId(nextViewId_);
+ nextViewId_++;
+ }
+
+ public final void add(ListElement element)
+ {
+ itemsList_.addElement(element);
+ updateManager(element);
+ }
+
+ public final void addWithCurrentViewId(ListElement element)
+ {
+ itemsList_.addElement(element);
+ itemsTable_.put(String.valueOf(element.getViewId()),element);
+ }
+
+ public final ListElement elementAt(int index)
+ {
+ return (ListElement)itemsList_.elementAt(index);
+ }
+
+ public final ListElement getElementWithViewId(int viewId)
+ {
+ return (ListElement)itemsTable_.get(String.valueOf(viewId));
+ }
+
+ public final void removeElementWithViewId(int viewId)
+ {
+ itemsTable_.remove(String.valueOf(viewId));
+ for (int i=0;i<itemsList_.size();i++)
+ {
+ ListElement listElement = elementAt(i);
+ if (listElement.getViewId() == viewId)
+ {
+ itemsList_.removeElementAt(i);
+ break;
+ }
+ }
+ }
+
+ public final void removeElementAt(int index)
+ {
+ ListElement listElement = (ListElement)elementAt(index);
+ itemsList_.removeElementAt(index);
+ itemsTable_.remove(String.valueOf(listElement.getViewId()));
+ }
+
+ public final void insertElementAt(ListElement element,int index)
+ {
+ itemsList_.insertElementAt(element,index);
+ updateManager(element);
+ }
+
+ public final Enumeration getListElements()
+ {
+ return itemsList_.elements();
+ }
+
+ public final void clear()
+ {
+ itemsList_.removeAllElements();
+ itemsTable_.clear();
+ }
+
+ public final ListManager copy(ListManager newListManager)
+ {
+ newListManager.clear();
+ for (int i=0;i<itemsList_.size();i++)
+ {
+ ListElement listElement = (ListElement)elementAt(i);
+ ListElement newListElement = new ListElement(listElement.getObject());
+ newListElement.setViewId(listElement.getViewId());
+ newListElement.setTargetViewToolInfo(listElement.getTargetNodeId(),listElement.getTargetToolId(),listElement.getTargetViewId());
+ newListManager.addWithCurrentViewId(newListElement);
+ }
+ newListManager.setNextViewId(nextViewId_);
+ return newListManager;
+ }
+
+ public final void setNextViewId(int nextViewId)
+ {
+ nextViewId_ = nextViewId;
+ }
+
+ public final int getNextViewId()
+ {
+ return nextViewId_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/TreeElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/TreeElement.java
new file mode 100644
index 000000000..2d2da7445
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/datamodel/TreeElement.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+
+public class TreeElement extends BasicElement
+{
+ private String key_;
+
+ public TreeElement(String name,Model model)
+ {
+ super(name,model);
+ key_ = name;
+ }
+
+ public void setKey(String key)
+ {
+ key_ = key;
+ }
+
+ public String getKey()
+ {
+ return key_;
+ }
+
+ public boolean equals(TreeElement element)
+ {
+ if (key_ == null)
+ return false;
+ return key_.equals(element.getKey());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionDataParser.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionDataParser.java
new file mode 100644
index 000000000..13fce578b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionDataParser.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * 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.engine;
+
+import org.eclipse.wst.ws.internal.explorer.platform.engine.constants.ActionDataConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ActionDescriptor;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ScenarioDescriptor;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.TransactionDescriptor;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+
+public class ActionDataParser
+{
+ private Document doc;
+
+ public ScenarioDescriptor parseScenario(Element e)
+ {
+ ScenarioDescriptor scenarioDescriptor = new ScenarioDescriptor();
+ NodeList transactions = e.getElementsByTagName(ActionDataConstants.ELEMENT_TRANSACTION);
+ TransactionDescriptor[] transactionDescriptors = new TransactionDescriptor[transactions.getLength()];
+ for (int i = 0; i < transactionDescriptors.length; i++)
+ transactionDescriptors[i] = parseTransaction((Element) transactions.item(i));
+ scenarioDescriptor.setTransactionDescriptors(transactionDescriptors);
+ return scenarioDescriptor;
+ }
+
+ public TransactionDescriptor parseTransaction(Element e)
+ {
+ TransactionDescriptor transactionDescriptor = new TransactionDescriptor();
+ NodeList actions = e.getElementsByTagName(ActionDataConstants.ELEMENT_ACTION);
+ ActionDescriptor[] actionDescriptors = new ActionDescriptor[actions.getLength()];
+ for (int i = 0; i < actionDescriptors.length; i++)
+ actionDescriptors[i] = parseAction((Element) actions.item(i));
+ transactionDescriptor.setActionDescriptors(actionDescriptors);
+ return transactionDescriptor;
+ }
+
+ public ActionDescriptor parseAction(Element e)
+ {
+ ActionDescriptor actionDescriptor = new ActionDescriptor();
+ actionDescriptor.setId(e.getAttribute(ActionDataConstants.ATTR_ID));
+ try
+ {
+ actionDescriptor.setAttempts(Integer.parseInt(e.getAttribute(ActionDataConstants.ATTR_ATTEMPTS)));
+ }
+ catch (Throwable t)
+ {
+ actionDescriptor.setAttempts(1);
+ }
+ actionDescriptor.setStatusId(e.getAttribute(ActionDataConstants.ATTR_STATUS_ID));
+ Hashtable propertiesTable = new Hashtable();
+ NodeList properties = e.getElementsByTagName(ActionDataConstants.ELEMENT_PROPERTY);
+ for (int i = 0; i < properties.getLength(); i++)
+ {
+ Element property = (Element) properties.item(i);
+ String name = property.getAttribute(ActionDataConstants.ATTR_NAME);
+ NodeList valueList = property.getElementsByTagName(ActionDataConstants.ELEMENT_VALUE);
+ if (valueList.getLength() > 1)
+ {
+ String[] values = new String[valueList.getLength()];
+ for (int j = 0; j < values.length; j++)
+ {
+ Element value = (Element) valueList.item(j);
+ Node textNode = value.getFirstChild();
+ values[j] = (textNode != null) ? textNode.getNodeValue().trim() : "";
+ }
+ propertiesTable.put(name, values);
+ }
+ else
+ {
+ Node textNode = ((Element) valueList.item(0)).getFirstChild();
+ propertiesTable.put(name, (textNode != null) ? textNode.getNodeValue().trim() : "");
+ }
+ }
+ actionDescriptor.setProperties(propertiesTable);
+ NodeList statusList = e.getElementsByTagName(ActionDataConstants.ELEMENT_STATUS);
+ for (int i = 0; i < statusList.getLength(); i++)
+ {
+ Element status = (Element)statusList.item(i);
+ CDATASection cData = (CDATASection)status.getFirstChild();
+ actionDescriptor.addStatus(cData.getData());
+ }
+ return actionDescriptor;
+ }
+
+ public Element toElement(ScenarioDescriptor scenarioDescriptor)
+ {
+ try
+ {
+ Document document = getDocument();
+ Element scenarioElement = document.createElement(ActionDataConstants.ELEMENT_SCENARIO);
+ TransactionDescriptor[] transactionDescriptors = scenarioDescriptor.getTransactionDescriptors();
+ for (int i = 0; i < transactionDescriptors.length; i++)
+ {
+ Element transactionElement = toElement(transactionDescriptors[i]);
+ if (transactionElement != null)
+ scenarioElement.appendChild(transactionElement);
+ }
+ return scenarioElement;
+ }
+ catch (DOMException dome)
+ {
+ return null;
+ }
+ }
+
+ public Element toElement(TransactionDescriptor transactionDescriptor)
+ {
+ try
+ {
+ Document document = getDocument();
+ Element transactionElement = document.createElement(ActionDataConstants.ELEMENT_TRANSACTION);
+ ActionDescriptor[] actionDescriptors = transactionDescriptor.getActionDescriptors();
+ for (int i = 0; i < actionDescriptors.length; i++)
+ {
+ Element actionElement = toElement(actionDescriptors[i]);
+ if (actionElement != null)
+ transactionElement.appendChild(actionElement);
+ }
+ return transactionElement;
+ }
+ catch (DOMException dome)
+ {
+ return null;
+ }
+ }
+
+ public Element toElement(ActionDescriptor actionDescriptor)
+ {
+ try
+ {
+ Document document = getDocument();
+ Element actionElement = document.createElement(ActionDataConstants.ELEMENT_ACTION);
+ actionElement.setAttribute(ActionDataConstants.ATTR_ID, actionDescriptor.getId());
+ actionElement.setAttribute(ActionDataConstants.ATTR_ATTEMPTS, String.valueOf(actionDescriptor.getAttempts()));
+ String statusId = actionDescriptor.getStatusId();
+ if (statusId != null)
+ actionElement.setAttribute(ActionDataConstants.ATTR_STATUS_ID, statusId);
+ Hashtable properties = actionDescriptor.getProperties();
+ if (properties != null)
+ {
+ for (Iterator it = properties.keySet().iterator(); it.hasNext();)
+ {
+ Object key = it.next();
+ Object value = properties.get(key);
+ Object[] values;
+ if (value.getClass().isArray())
+ values = (Object[])value;
+ else if (value instanceof List)
+ values = ((List)value).toArray();
+ else
+ values = new Object[] {value};
+ boolean isAdded = false;
+ Element propertyElement = document.createElement(ActionDataConstants.ELEMENT_PROPERTY);
+ propertyElement.setAttribute(ActionDataConstants.ATTR_NAME, key.toString());
+ for (int i = 0; i < values.length; i++)
+ {
+ if (values[i] instanceof String)
+ {
+ Element valueElement = document.createElement(ActionDataConstants.ELEMENT_VALUE);
+ valueElement.appendChild(document.createTextNode(values[i].toString()));
+ propertyElement.appendChild(valueElement);
+ isAdded = true;
+ }
+ }
+ if (isAdded)
+ actionElement.appendChild(propertyElement);
+ }
+ }
+ List status = actionDescriptor.getStatus();
+ if (status != null)
+ {
+ for (Iterator it = status.iterator(); it.hasNext();)
+ {
+ Element statusElement = document.createElement(ActionDataConstants.ELEMENT_STATUS);
+ CDATASection cData = document.createCDATASection(it.next().toString());
+ statusElement.appendChild(cData);
+ actionElement.appendChild(statusElement);
+ }
+ }
+ return actionElement;
+ }
+ catch (DOMException dome)
+ {
+ return null;
+ }
+ }
+
+ private Document getDocument()
+ {
+ try
+ {
+ if (doc == null)
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ doc = builder.newDocument();
+ }
+ return doc;
+ }
+ catch (FactoryConfigurationError fce)
+ {
+ return null;
+ }
+ catch (ParserConfigurationException pce)
+ {
+ return null;
+ }
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java
new file mode 100644
index 000000000..e33e3284b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * 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.engine;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Hashtable;
+import java.util.Vector;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.Action;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ShowPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.constants.ActionDataConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ActionDescriptor;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ScenarioDescriptor;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.data.TransactionDescriptor;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+
+public class ActionEngine
+{
+ public static final byte MODE_DISABLED = 0x0;
+ public static final byte MODE_STOP = 0x1;
+ public static final byte MODE_RECORD = 0x2;
+ public static final byte MODE_PLAY = 0x3;
+
+ private Controller controller;
+ private byte mode;
+ private Vector actionDescriptors;
+
+ public ActionEngine(Controller controller)
+ {
+ this.controller = controller;
+ mode = MODE_DISABLED;
+ actionDescriptors = new Vector();
+ }
+
+ public void executeScenario(ScenarioDescriptor scenarioDescriptor)
+ {
+ TransactionDescriptor[] transactionDescriptors = scenarioDescriptor.getTransactionDescriptors();
+ for (int i = 0; i < transactionDescriptors.length; i++)
+ executeTransaction(transactionDescriptors[i]);
+ }
+
+ public boolean executeTransaction(TransactionDescriptor transactionDescriptor)
+ {
+ boolean result = true;
+ ActionDescriptor[] actionDescriptors = transactionDescriptor.getActionDescriptors();
+ for (int i = 0; i < actionDescriptors.length; i++)
+ {
+ if (result)
+ {
+ if (!executeAction(actionDescriptors[i]))
+ result = false;
+ }
+ else
+ actionDescriptors[i].setStatusId(ActionDataConstants.VALUE_STATUS_ID_UNATTEMPTED);
+ }
+ return result;
+ }
+
+ public boolean executeAction(ActionDescriptor actionDescriptor)
+ {
+ int attempts = actionDescriptor.getAttempts();
+ for (int i = 0; i < attempts; i++)
+ {
+ try
+ {
+ Class classAction = Class.forName(actionDescriptor.getId());
+ if (Action.class.isAssignableFrom(classAction))
+ {
+ Action action = (Action) newInstance(classAction);
+ if (action != null)
+ {
+ Hashtable properties = actionDescriptor.getProperties();
+ ITransformer[] transformers = action.getTransformers();
+ for (int j = 0; j < transformers.length; j++)
+ properties = transformers[j].deNormalize(properties);
+ action.setPropertyTable(properties);
+ boolean actionResult = action.run();
+ // TODO actionDescriptor.addStatus(action.getStatus());
+ if (actionResult)
+ {
+ actionDescriptor.setStatusId(ActionDataConstants.VALUE_STATUS_ID_PASSED);
+ return true;
+ }
+ }
+ else
+ throw new ClassNotFoundException(actionDescriptor.getId());
+ }
+ }
+ catch (ClassNotFoundException cnfe)
+ {
+ cnfe.printStackTrace();
+ StringWriter sw = new StringWriter();
+ cnfe.printStackTrace(new PrintWriter(sw));
+ actionDescriptor.addStatus(sw.getBuffer().toString());
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ StringWriter sw = new StringWriter();
+ t.printStackTrace(new PrintWriter(sw));
+ actionDescriptor.addStatus(sw.getBuffer().toString());
+ }
+ }
+ actionDescriptor.setStatusId(ActionDataConstants.VALUE_STATUS_ID_FAILED);
+ return false;
+ }
+
+ private ScenarioDescriptor newScenarioDescriptor()
+ {
+ return new ScenarioDescriptor();
+ }
+
+ private TransactionDescriptor newTransactionDescriptor()
+ {
+ return new TransactionDescriptor();
+ }
+
+ private ActionDescriptor newActionDescriptor(Action action)
+ {
+ ActionDescriptor actionDescriptor = new ActionDescriptor();
+ actionDescriptor.setId(action.getClass().getName());
+ Hashtable properties = new Hashtable(action.getPropertyTable());
+ ITransformer[] transformers = action.getTransformers();
+ for (int i = 0; i < transformers.length; i++)
+ properties = transformers[i].normalize(properties);
+ actionDescriptor.setProperties(properties);
+ return actionDescriptor;
+ }
+
+ private Object newInstance(Class c)
+ {
+ try
+ {
+ // instantiates the action using the constructor that takes in a
+ // controller object
+ Constructor constructor = c.getConstructor(new Class[]{Controller.class});
+ return constructor.newInstance(new Object[]{controller});
+ }
+ catch (NoSuchMethodException nsme)
+ {
+ }
+ catch (InstantiationException ie)
+ {
+ }
+ catch (IllegalAccessException iae)
+ {
+ }
+ catch (InvocationTargetException ite)
+ {
+ }
+ catch (Throwable t)
+ {
+ }
+ Object instance = null;
+ try
+ {
+ // instantiates the action using the default constructor
+ Constructor constructor = c.getConstructor(new Class[0]);
+ instance = constructor.newInstance(new Object[0]);
+ Method method = c.getMethod("setController", new Class[]{Controller.class});
+ method.invoke(instance, new Object[]{controller});
+ }
+ catch (NoSuchMethodException nsme)
+ {
+ }
+ catch (InstantiationException ie)
+ {
+ }
+ catch (IllegalAccessException iae)
+ {
+ }
+ catch (IllegalArgumentException iae)
+ {
+ }
+ catch (InvocationTargetException ite)
+ {
+ }
+ catch (Throwable t)
+ {
+ }
+ return instance;
+ }
+
+ public byte getMode()
+ {
+ return mode;
+ }
+
+ public void setMode(byte mode)
+ {
+ this.mode = mode;
+ if (mode == MODE_RECORD)
+ {
+ actionDescriptors = new Vector();
+ ShowPerspectiveAction showPerspectiveAction = new ShowPerspectiveAction(controller);
+ showPerspectiveAction.addProperty(ActionInputs.PERSPECTIVE, String.valueOf(controller.getCurrentPerspective().getPerspectiveId()));
+ actionDescriptors.add(newActionDescriptor(showPerspectiveAction));
+ }
+ }
+
+ public boolean executeAction(Action action)
+ {
+ if (mode == MODE_RECORD)
+ {
+ ActionDescriptor actionDescriptor = newActionDescriptor(action);
+ actionDescriptors.add(actionDescriptor);
+ }
+ return action.run();
+ }
+
+ public ScenarioDescriptor getScenario()
+ {
+ ScenarioDescriptor scenarioDescriptor = newScenarioDescriptor();
+ TransactionDescriptor transactionDescriptor = newTransactionDescriptor();
+ ActionDescriptor[] actionDescriptorArray = (ActionDescriptor[])actionDescriptors.toArray(new ActionDescriptor[0]);
+ transactionDescriptor.setActionDescriptors(actionDescriptorArray);
+ scenarioDescriptor.setTransactionDescriptors(new TransactionDescriptor[] {transactionDescriptor});
+ return scenarioDescriptor;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/constants/ActionDataConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/constants/ActionDataConstants.java
new file mode 100644
index 000000000..7d53ee26b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/constants/ActionDataConstants.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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.engine.constants;
+
+public class ActionDataConstants
+{
+ public static final String ATTR_ID = "id";
+ public static final String ATTR_NAME = "name";
+ public static final String ATTR_ATTEMPTS = "attempts";
+ public static final String ATTR_STATUS_ID = "statusId";
+
+ public static final String ELEMENT_SCENARIO = "scenario";
+ public static final String ELEMENT_TRANSACTION = "transaction";
+ public static final String ELEMENT_ACTION = "action";
+ public static final String ELEMENT_PROPERTY = "property";
+ public static final String ELEMENT_VALUE = "value";
+ public static final String ELEMENT_STATUS = "status";
+
+ public static final String VALUE_STATUS_ID_UNATTEMPTED = "unattempted";
+ public static final String VALUE_STATUS_ID_PASSED = "passed";
+ public static final String VALUE_STATUS_ID_FAILED = "failed";
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ActionDescriptor.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ActionDescriptor.java
new file mode 100644
index 000000000..85bb5b7da
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ActionDescriptor.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * 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.engine.data;
+
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Vector;
+
+public class ActionDescriptor
+{
+ private String id;
+ private Hashtable properties;
+ private int attempts;
+ private String statusId;
+ private List statusList;
+
+ public ActionDescriptor()
+ {
+ attempts = 1;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public Hashtable getProperties()
+ {
+ return properties;
+ }
+
+ public void setProperties(Hashtable properties)
+ {
+ this.properties = properties;
+ }
+
+ public int getAttempts()
+ {
+ return attempts;
+ }
+
+ public void setAttempts(int attempts)
+ {
+ this.attempts = attempts;
+ }
+
+ public String getStatusId()
+ {
+ return statusId;
+ }
+
+ public void setStatusId(String statusId)
+ {
+ this.statusId = statusId;
+ }
+
+ public void addStatus(Object status)
+ {
+ if (status != null)
+ {
+ if (statusList == null)
+ statusList = new Vector();
+ statusList.add(status);
+ }
+ }
+
+ public boolean removeStatus(Object status)
+ {
+ if (status != null && statusList != null)
+ return statusList.remove(status);
+ else
+ return false;
+ }
+
+ public List getStatus()
+ {
+ return statusList;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ScenarioDescriptor.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ScenarioDescriptor.java
new file mode 100644
index 000000000..41a3f90fe
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/ScenarioDescriptor.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.engine.data;
+
+public class ScenarioDescriptor
+{
+ private TransactionDescriptor[] transactionDescriptors;
+
+ public TransactionDescriptor[] getTransactionDescriptors()
+ {
+ return transactionDescriptors;
+ }
+
+ public void setTransactionDescriptors(TransactionDescriptor[] transactionDescriptors)
+ {
+ this.transactionDescriptors = transactionDescriptors;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/TransactionDescriptor.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/TransactionDescriptor.java
new file mode 100644
index 000000000..3ef67b972
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/data/TransactionDescriptor.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.engine.data;
+
+public class TransactionDescriptor
+{
+ private ActionDescriptor[] actionDescriptors;
+
+ public ActionDescriptor[] getActionDescriptors()
+ {
+ return actionDescriptors;
+ }
+
+ public void setActionDescriptors(ActionDescriptor[] actionDescriptors)
+ {
+ this.actionDescriptors = actionDescriptors;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/CurrentNodeSelectionTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/CurrentNodeSelectionTransformer.java
new file mode 100644
index 000000000..5bf3299f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/CurrentNodeSelectionTransformer.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Hashtable;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+
+public class CurrentNodeSelectionTransformer implements ITransformer
+{
+ protected Controller controller;
+ protected String key;
+
+ public CurrentNodeSelectionTransformer(Controller controller)
+ {
+ this(controller, ActionInputs.NODEID);
+ }
+
+ public CurrentNodeSelectionTransformer(Controller controller, String key)
+ {
+ this.controller = controller;
+ this.key = key;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ return properties;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ Node currNode = controller.getCurrentPerspective().getNodeManager().getSelectedNode();
+ if (currNode != null)
+ properties.put(key, String.valueOf(currNode.getNodeId()));
+ return properties;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ITransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ITransformer.java
new file mode 100644
index 000000000..4755ffe85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ITransformer.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Hashtable;
+
+public interface ITransformer
+{
+ public Hashtable normalize(Hashtable properties);
+ public Hashtable deNormalize(Hashtable properties);
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MassNodeIdTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MassNodeIdTransformer.java
new file mode 100644
index 000000000..81ac34fb9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MassNodeIdTransformer.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Hashtable;
+import java.util.Vector;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+
+public class MassNodeIdTransformer extends NodeIdTransformer
+{
+ protected String massNodeIdKey;
+
+ public MassNodeIdTransformer(Controller controller, String massNodeIdKey)
+ {
+ super(controller);
+ this.massNodeIdKey = massNodeIdKey;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ if (!properties.containsKey(massNodeIdKey))
+ return super.normalize(properties);
+ Object origNodeId = properties.get(ActionInputs.NODEID);
+ String[] massNodeIds = getValueAsStringArray(properties, massNodeIdKey);
+ for (int i = 0; i < massNodeIds.length; i++)
+ {
+ properties.put(ActionInputs.NODEID, massNodeIds[i]);
+ properties = super.normalize(properties);
+ String[] rels = getValueAsStringArray(properties, ModelConstants.REL_ID);
+ if (rels.length > 0)
+ {
+ StringBuffer sb = new StringBuffer(ModelConstants.REL_ID);
+ sb.append(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ sb.append(massNodeIds[i]);
+ properties.put(sb.toString(), rels);
+ }
+ properties.remove(ActionInputs.NODEID);
+ properties.remove(ModelConstants.REL_ID);
+ }
+ if (origNodeId != null)
+ properties.put(ActionInputs.NODEID, origNodeId);
+ return properties;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ if (!properties.containsKey(massNodeIdKey))
+ return super.deNormalize(properties);
+ Vector massNodeIdVector = new Vector();
+ Object origNodeId = properties.get(ActionInputs.NODEID);
+ properties.remove(ActionInputs.NODEID);
+ String[] massNodeIds = getValueAsStringArray(properties, massNodeIdKey);
+ for (int i = 0; i < massNodeIds.length; i++)
+ {
+ StringBuffer sb = new StringBuffer(ModelConstants.REL_ID);
+ sb.append(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ sb.append(massNodeIds[i]);
+ Object rels = properties.get(sb.toString());
+ if (rels != null)
+ {
+ properties.put(ModelConstants.REL_ID, rels);
+ properties = super.deNormalize(properties);
+ Object nodeId = properties.get(ActionInputs.NODEID);
+ if (nodeId != null)
+ {
+ massNodeIdVector.add(nodeId);
+ properties.remove(ActionInputs.NODEID);
+ }
+ properties.remove(ModelConstants.REL_ID);
+ }
+ }
+ if (origNodeId != null)
+ properties.put(ActionInputs.NODEID, origNodeId);
+ int size = massNodeIdVector.size();
+ if (size == 1)
+ properties.put(massNodeIdKey, massNodeIdVector.get(0));
+ else if (size > 1)
+ properties.put(massNodeIdKey, massNodeIdVector.toArray(new String[0]));
+ else
+ properties.remove(massNodeIdKey);
+ return properties;
+ }
+
+ private String[] getValueAsStringArray(Hashtable properties, String key)
+ {
+ Object values = properties.get(key);
+ if (values == null)
+ return new String[0];
+ else if (values instanceof String[])
+ return (String[])values;
+ else
+ return new String[] {values.toString()};
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MultipartFormDataParserTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MultipartFormDataParserTransformer.java
new file mode 100644
index 000000000..b4f0a2c68
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/MultipartFormDataParserTransformer.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+
+public class MultipartFormDataParserTransformer implements ITransformer
+{
+ protected Controller controller;
+
+ public MultipartFormDataParserTransformer(Controller controller)
+ {
+ this.controller = controller;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ MultipartFormDataParser parser = (MultipartFormDataParser)properties.get(ActionInputs.MULTIPART_FORM_DATA_PARSER);
+ String[] keys;
+ try
+ {
+ keys = parser.getParameterNames();
+ }
+ catch (Throwable t)
+ {
+ keys = new String[0];
+ }
+ for (int i = 0; i < keys.length; i++)
+ {
+ StringBuffer newKey = new StringBuffer(ActionInputs.MULTIPART_FORM_DATA_PARSER);
+ newKey.append(keys[i]);
+ try
+ {
+ properties.put(newKey.toString(), parser.getParameterValues(keys[i]));
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return properties;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ Enumeration e = properties.keys();
+ while (e.hasMoreElements())
+ {
+ Object key = e.nextElement();
+ if (key instanceof String)
+ {
+ if (((String)key).startsWith(ActionInputs.MULTIPART_FORM_DATA_PARSER))
+ {
+ String realKey = ((String)key).substring(ActionInputs.MULTIPART_FORM_DATA_PARSER.length());
+ if (!properties.containsKey(realKey))
+ {
+ Object value = properties.remove(key);
+ properties.put(realKey, value);
+ }
+ }
+ }
+ }
+ return properties;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeIdTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeIdTransformer.java
new file mode 100644
index 000000000..d2af98b5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeIdTransformer.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Hashtable;
+import java.util.Vector;
+import java.util.Enumeration;
+import org.eclipse.wst.ws.internal.datamodel.Element;
+import org.eclipse.wst.ws.internal.datamodel.Rel;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class NodeIdTransformer implements ITransformer
+{
+ protected Controller controller;
+
+ public NodeIdTransformer(Controller controller)
+ {
+ this.controller = controller;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ Vector rels = new Vector();
+ try
+ {
+ int nodeId = Integer.parseInt((String)properties.get(ActionInputs.NODEID));
+ NodeManager nodeManager = controller.getCurrentPerspective().getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ Node node = nodeManager.getNode(nodeId);
+ int depth = 0;
+ if (node != null)
+ depth = node.getNodeDepth();
+ while (rels.size() < depth && node != null && node != rootNode)
+ {
+ Node parentNode = node.getParent();
+ Element element = node.getTreeElement();
+ Rel rel = getRel(parentNode.getTreeElement(), element);
+ StringBuffer relValue = new StringBuffer(rel.getName());
+ relValue.append(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ relValue.append(element.getName());
+ rels.insertElementAt(relValue.toString(), 0);
+ node = parentNode;
+ }
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ int numRelationships = rels.size();
+ if (numRelationships == 1)
+ properties.put(ModelConstants.REL_ID, rels.get(0).toString());
+ else if (numRelationships > 1)
+ properties.put(ModelConstants.REL_ID, (String[])rels.toArray(new String[0]));
+ return properties;
+ }
+
+ private Rel getRel(Element sourceElement, Element targetElement)
+ {
+ Enumeration rels = sourceElement.getRels();
+ while (rels.hasMoreElements())
+ {
+ Rel rel = (Rel)rels.nextElement();
+ Enumeration targetElements = rel.getTargetElements();
+ while (targetElements.hasMoreElements())
+ {
+ if (targetElements.nextElement() == targetElement)
+ return rel;
+ }
+ }
+ return null;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ NodeManager nodeManager = controller.getCurrentPerspective().getNodeManager();
+ Node node = nodeManager.getRootNode();
+ Object value = properties.get(ModelConstants.REL_ID);
+ String[] relationships = null;
+ if (value instanceof String[])
+ relationships = (String[])value;
+ else if (value != null)
+ relationships = new String[] {value.toString()};
+ if (relationships != null)
+ {
+ for (int i = 0; i < relationships.length; i++)
+ {
+ int index = relationships[i].indexOf(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ if (index == -1)
+ return deNormalizeAsSelectedNode(properties);
+ String rel = (index != -1) ? relationships[i].substring(0, index) : relationships[i];
+ String localname = (index != -1) ? relationships[i].substring(index + 1, relationships[i].length()) : null;
+ if (localname == null)
+ return deNormalizeAsSelectedNode(properties);
+ node = getNode(node, rel, localname);
+ if (node == null)
+ return deNormalizeAsSelectedNode(properties);
+ }
+ properties.put(ActionInputs.NODEID, String.valueOf(node.getNodeId()));
+ return properties;
+ }
+ else
+ return deNormalizeAsSelectedNode(properties);
+ }
+
+ private Hashtable deNormalizeAsSelectedNode(Hashtable properties)
+ {
+ return (new CurrentNodeSelectionTransformer(controller)).deNormalize(properties);
+ }
+
+ private Node getNode(Node parent, String rel, String localname)
+ {
+ Element parentElement = parent.getTreeElement();
+ Enumeration e = parentElement.getElements(rel);
+ while (e.hasMoreElements())
+ {
+ Element element = (Element)e.nextElement();
+ if (localname.equals(element.getName()))
+ return parent.getChildNode((TreeElement)element);
+ }
+ return null;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeSelectionTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeSelectionTransformer.java
new file mode 100644
index 000000000..175dc03d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/NodeSelectionTransformer.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+import org.eclipse.wst.ws.internal.datamodel.Element;
+import org.eclipse.wst.ws.internal.datamodel.Rel;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class NodeSelectionTransformer implements ITransformer
+{
+ protected Controller controller;
+
+ public NodeSelectionTransformer(Controller controller)
+ {
+ this.controller = controller;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ try
+ {
+ NodeManager nodeManager = controller.getCurrentPerspective().getNodeManager();
+ Node nextNode = nodeManager.getNode(Integer.parseInt((String) properties.get(ActionInputs.NODEID)));
+ Node currNode = nodeManager.getSelectedNode();
+ if (currNode == null)
+ currNode = nodeManager.getRootNode();
+ Vector nextRels = new Vector();
+ Vector currRels = new Vector();
+ while (nextNode != null && currNode != null && (!isRootElement(nextNode.getTreeElement()) || !isRootElement(currNode.getTreeElement())) && nextNode != currNode)
+ {
+ if (nextNode.getNodeDepth() >= currNode.getNodeDepth())
+ {
+ Node parentNode = nextNode.getParent();
+ Element nextElement = nextNode.getTreeElement();
+ Rel rel = getRel(parentNode.getTreeElement(), nextElement);
+ StringBuffer relValue = new StringBuffer(rel.getName());
+ relValue.append(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ relValue.append(nextElement.getName());
+ nextRels.insertElementAt(relValue.toString(), 0);
+ nextNode = parentNode;
+ }
+ else
+ {
+ Node parentNode = currNode.getParent();
+ Element parentElement = parentNode.getTreeElement();
+ Rel rel = getRel(currNode.getTreeElement(), parentElement);
+ StringBuffer relValue = new StringBuffer(rel.getName());
+ relValue.append(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ relValue.append(parentElement.getName());
+ currRels.add(relValue.toString());
+ currNode = parentNode;
+ }
+ }
+ currRels.addAll(nextRels);
+ int numRelationships = currRels.size();
+ if (numRelationships == 1)
+ properties.put(ModelConstants.REL_ID, currRels.get(0).toString());
+ else if (numRelationships > 1)
+ properties.put(ModelConstants.REL_ID, (String[]) currRels.toArray(new String[0]));
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ return properties;
+ }
+
+ private boolean isRootElement(Element e)
+ {
+ return e.getModel().getRootElement() == e;
+ }
+
+ private Rel getRel(Element sourceElement, Element targetElement)
+ {
+ Enumeration rels = sourceElement.getRels();
+ while (rels.hasMoreElements())
+ {
+ Rel rel = (Rel) rels.nextElement();
+ Enumeration targetElements = rel.getTargetElements();
+ while (targetElements.hasMoreElements())
+ {
+ if (targetElements.nextElement() == targetElement)
+ return rel;
+ }
+ }
+ return null;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ NodeManager nodeManager = controller.getCurrentPerspective().getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ Node currNode = nodeManager.getSelectedNode();
+ if (currNode == null)
+ currNode = rootNode;
+ Object value = properties.get(ModelConstants.REL_ID);
+ String[] relationships = null;
+ if (value instanceof String[])
+ relationships = (String[]) value;
+ else if (value != null)
+ relationships = new String[]{value.toString()};
+ if (relationships != null)
+ {
+ Element currElement = currNode.getTreeElement();
+ for (int i = 0; i < relationships.length; i++)
+ {
+ int index = relationships[i].indexOf(ModelConstants.REL_LOCALNAME_SEPARATOR);
+ String rel = (index != -1) ? relationships[i].substring(0, index) : relationships[i];
+ String localname = (index != -1) ? relationships[i].substring(index + 1, relationships[i].length()) : null;
+ Enumeration e = currElement.getElements(rel);
+ Element targetElement = null;
+ if (localname != null)
+ {
+ Element firstElement = null;
+ while (e.hasMoreElements())
+ {
+ Element nextElement = (Element) e.nextElement();
+ if (firstElement == null)
+ firstElement = nextElement;
+ if (localname.equals(nextElement.getName()))
+ {
+ targetElement = nextElement;
+ break;
+ }
+ }
+ if (targetElement == null)
+ targetElement = firstElement;
+ }
+ else
+ {
+ if (e.hasMoreElements())
+ targetElement = (Element) e.nextElement();
+ }
+ if (targetElement != null)
+ {
+ currElement = (Element) targetElement;
+ Node parentNode = currNode.getParent();
+ if (parentNode != null && parentNode.getTreeElement() == currElement)
+ currNode = parentNode;
+ else
+ currNode = currNode.getChildNode((TreeElement) currElement);
+ }
+ }
+ }
+ properties.put(ActionInputs.NODEID, String.valueOf(currNode.getNodeId()));
+ return properties;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ViewSelectionTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ViewSelectionTransformer.java
new file mode 100644
index 000000000..d6bd1359a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/engine/transformer/ViewSelectionTransformer.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * 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.engine.transformer;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+import org.eclipse.wst.ws.internal.datamodel.Element;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.ListElement;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.ListManager;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class ViewSelectionTransformer implements ITransformer
+{
+ protected Controller controller;
+ protected String listManagerKey;
+ protected String viewKey;
+
+ public ViewSelectionTransformer(Controller controller, String listManagerKey, String viewKey)
+ {
+ this.controller = controller;
+ this.listManagerKey = listManagerKey;
+ this.viewKey = viewKey;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ Vector normalizedViewIds = new Vector();
+ NodeManager nodeManager = controller.getCurrentPerspective().getNodeManager();
+ Node currNode = nodeManager.getSelectedNode();
+ TreeElement currElement = currNode.getTreeElement();
+ Object listManagerObj = currElement.getPropertyAsObject(listManagerKey);
+ if (listManagerObj instanceof ListManager)
+ {
+ ListManager listManager = (ListManager) listManagerObj;
+ String[] viewIds = getViewValues(properties);
+ for (int i = 0; i < viewIds.length; i++)
+ {
+ ListElement listElement = null;
+ try
+ {
+ listElement = listManager.getElementWithViewId(Integer.parseInt(viewIds[i]));
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ if (listElement != null)
+ {
+ Object object = listElement.getObject();
+ if (object != null && object instanceof Element)
+ {
+ Element element = (Element) object;
+ normalizedViewIds.add(element.getName());
+ }
+ }
+ }
+ }
+ properties.put(viewKey, normalizedViewIds.toArray(new String[0]));
+ return properties;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ Vector viewIds = new Vector();
+ Node currNode = controller.getCurrentPerspective().getNodeManager().getSelectedNode();
+ if (currNode != null)
+ {
+ TreeElement currElement = currNode.getTreeElement();
+ Object listManagerObj = currElement.getPropertyAsObject(listManagerKey);
+ if (listManagerObj instanceof ListManager)
+ {
+ ListManager listManager = (ListManager) listManagerObj;
+ String[] normalizedViewIds = getViewValues(properties);
+ for (int i = 0; i < normalizedViewIds.length; i++)
+ {
+ Enumeration e = listManager.getListElements();
+ while (e.hasMoreElements())
+ {
+ ListElement listElement = (ListElement) e.nextElement();
+ Element element = (Element) listElement.getObject();
+ if (element != null && normalizedViewIds[i].equals(element.getName()))
+ {
+ viewIds.add(String.valueOf(listElement.getViewId()));
+ break;
+ }
+ }
+ }
+ }
+ }
+ int size = viewIds.size();
+ if (size == 1)
+ properties.put(viewKey, viewIds.get(0));
+ else if (size > 1)
+ properties.put(viewKey, viewIds.toArray(new String[0]));
+ return properties;
+ }
+
+ private String[] getViewValues(Hashtable properties)
+ {
+ Object viewValueObj = properties.get(viewKey);
+ String[] viewValues;
+ if (viewValueObj == null)
+ viewValues = new String[0];
+ else if (viewValueObj.getClass().isArray())
+ viewValues = (String[]) viewValueObj;
+ else
+ viewValues = new String[]{(String) viewValueObj};
+ return viewValues;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddBusinessToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddBusinessToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..32312a53c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddBusinessToUDDIPerspectiveAction.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindBusinessUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIPerspective;
+
+import java.util.Hashtable;
+
+public class AddBusinessToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddBusinessToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesUDDIBusinessElement busElement = (FavoritesUDDIBusinessElement) selectedElement;
+ String businessName = busElement.getName();
+ String inquiryAPI = busElement.getInquiryURL();
+ String businessKey = busElement.getBusinessKey();
+ // create the registry in the UDDI perspective
+ if (!createRegistryInUDDIPerspective(inquiryAPI, null, inquiryAPI, null, true))
+ return false;
+ RegFindBusinessUUIDAction action = new RegFindBusinessUUIDAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY, businessKey);
+ propertyTable.put(UDDIActionInputs.QUERY_NAME, businessName);
+ if (!action.run())
+ {
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE", businessName));
+ return false;
+ }
+ uddiPerspective.getNavigatorManager().getSelectedNode().setVisibilityOfChildren(true);
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", businessName));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddRegistryToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddRegistryToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..174df859d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddRegistryToUDDIPerspectiveAction.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class AddRegistryToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddRegistryToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesUDDIRegistryElement regElement = (FavoritesUDDIRegistryElement) selectedElement;
+ String registryName = regElement.getName();
+ String inquiryAPI = regElement.getInquiryURL();
+ String publishAPI = regElement.getPublishURL();
+ String registrationURL = regElement.getRegistrationURL();
+ if (!createRegistryInUDDIPerspective(inquiryAPI, publishAPI, registryName, registrationURL, false))
+ return false;
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", registryName));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceInterfaceToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceInterfaceToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..b3921bda3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceInterfaceToUDDIPerspectiveAction.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindServiceInterfaceUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIPerspective;
+
+import java.util.Hashtable;
+
+public class AddServiceInterfaceToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddServiceInterfaceToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesUDDIServiceInterfaceElement serIntElement = (FavoritesUDDIServiceInterfaceElement) selectedElement;
+ String serIntName = serIntElement.getName();
+ String inquiryAPI = serIntElement.getInquiryURL();
+ String serIntKey = serIntElement.getServiceInterfaceKey();
+ // create the registry in the UDDI perspective
+ if (!createRegistryInUDDIPerspective(inquiryAPI, null, inquiryAPI, null, true))
+ return false;
+ RegFindServiceInterfaceUUIDAction action = new RegFindServiceInterfaceUUIDAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY, serIntKey);
+ propertyTable.put(UDDIActionInputs.QUERY_NAME, serIntName);
+ if (!action.run())
+ {
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE", serIntName));
+ return false;
+ }
+ uddiPerspective.getNavigatorManager().getSelectedNode().setVisibilityOfChildren(true);
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", serIntName));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..26969d2a7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddServiceToUDDIPerspectiveAction.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindServiceUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIPerspective;
+
+import java.util.Hashtable;
+
+public class AddServiceToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddServiceToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesUDDIServiceElement serElement = (FavoritesUDDIServiceElement) selectedElement;
+ String serviceName = serElement.getName();
+ String inquiryAPI = serElement.getInquiryURL();
+ String serviceKey = serElement.getServiceKey();
+ // create the registry in the UDDI perspective
+ if (!createRegistryInUDDIPerspective(inquiryAPI, null, inquiryAPI, null, true))
+ return false;
+ RegFindServiceUUIDAction action = new RegFindServiceUUIDAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY, serviceKey);
+ propertyTable.put(UDDIActionInputs.QUERY_NAME, serviceName);
+ if (!action.run())
+ {
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE", serviceName));
+ return false;
+ }
+ uddiPerspective.getNavigatorManager().getSelectedNode().setVisibilityOfChildren(true);
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", serviceName));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..856d89979
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddToUDDIPerspectiveAction.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIBusinessFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIRegistryFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIServiceFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIServiceInterfaceFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.OpenRegistryAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.CategoryModel;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.RegistryNode;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIMainNode;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.util.Validator;
+
+public abstract class AddToUDDIPerspectiveAction extends MultipleLinkAction {
+ public AddToUDDIPerspectiveAction(Controller controller) {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID) {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink() {
+ return "favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp";
+ }
+
+ protected boolean createRegistryInUDDIPerspective(String inquiryAPI, String publishAPI, String registryName, String registrationURL,boolean useExisting) {
+ Vector registryNodes = getRegistryNodesByInquiryURL(inquiryAPI);
+ if (registryNodes != null)
+ {
+ if (useExisting)
+ {
+ Node registryNode = (Node)registryNodes.elementAt(0);
+ NodeManager nodeManager = registryNode.getNodeManager();
+ nodeManager.setSelectedNodeId(registryNode.getNodeId());
+ return true;
+ }
+ }
+
+ // open the registry if it is not already opened in the UDDI perspective
+ OpenRegistryAction openRegAction = new OpenRegistryAction(controller_);
+
+ // populate the property table
+ Hashtable propertyTable = openRegAction.getPropertyTable();
+ if (Validator.validateString(registryName))
+ propertyTable.put(UDDIActionInputs.REGISTRY_NAME,registryName);
+ else
+ return false;
+
+ if (Validator.validateURL(inquiryAPI))
+ propertyTable.put(UDDIActionInputs.INQUIRY_URL,inquiryAPI);
+ else
+ return false;
+
+ if (Validator.validateURL(publishAPI))
+ propertyTable.put(UDDIActionInputs.PUBLISH_URL,publishAPI);
+
+ if (Validator.validateURL(registrationURL))
+ propertyTable.put(UDDIActionInputs.REGISTRATION_URL,registrationURL);
+
+ // If user-defined category metadata exists, search and make the associations.
+ StringBuffer directoryBuffer = new StringBuffer();
+ FavoritesUDDIRegistryFolderElement.formCategoriesDirectory(directoryBuffer,controller_.getServletEngineStateLocation(),registryName);
+ File categoriesDirectory = new File(directoryBuffer.toString());
+ File[] categoryFiles = null;
+ if (categoriesDirectory.exists())
+ {
+ categoryFiles = categoriesDirectory.listFiles();
+ if (categoryFiles.length > 0)
+ propertyTable.put(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES,Boolean.TRUE);
+ }
+
+ // run the action
+ if (!openRegAction.run())
+ return false;
+
+ if (categoryFiles != null && categoryFiles.length > 0)
+ {
+ RegistryElement regElement = (RegistryElement)(controller_.getUDDIPerspective().getNavigatorManager().getSelectedNode().getTreeElement());
+ regElement.setCheckForUserDefinedCategories(true);
+ Enumeration userDefinedCategories = regElement.getUserDefinedCategories();
+ linkCategoryModelsWithSavedData(registryName,regElement.getUserDefinedCategories());
+ }
+ return true;
+ }
+
+ public final void linkCategoryModelsWithSavedData(String registryName,Enumeration userDefinedCategories)
+ {
+ StringBuffer directoryBuffer = new StringBuffer();
+ FavoritesUDDIRegistryFolderElement.formCategoriesDirectory(directoryBuffer,controller_.getServletEngineStateLocation(),registryName);
+ linkCategoryModelsWithSavedData(userDefinedCategories,directoryBuffer.toString());
+ }
+
+ public final void linkCategoryModelsWithSavedData(Enumeration userDefinedCategories,String categoriesDirectory)
+ {
+ File categoriesDirectoryFile = new File(categoriesDirectory);
+ File[] categoryFiles = null;
+ if (categoriesDirectoryFile.exists())
+ {
+ categoryFiles = categoriesDirectoryFile.listFiles();
+ if (userDefinedCategories != null)
+ {
+ while (userDefinedCategories.hasMoreElements())
+ {
+ CategoryModel categoryModel = (CategoryModel)userDefinedCategories.nextElement();
+ String categoryKey = categoryModel.getCategoryKey();
+ for (int i=0;i<categoryFiles.length;i++)
+ {
+ String categoryPropertiesFileName = categoryFiles[i].getName();
+ int lastDotPos = categoryPropertiesFileName.lastIndexOf(".");
+ String decodedCategoryPropertiesFileNameBase = URLUtils.decode(categoryPropertiesFileName.substring(0,lastDotPos));
+ if (lastDotPos > 0 && categoryPropertiesFileName.endsWith(".properties") && categoryKey.equals(decodedCategoryPropertiesFileNameBase))
+ {
+ categoryModel.setDefaultDataFile(categoryFiles[i].getAbsolutePath());
+ categoryModel.loadFromDelimiterFile();
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected Vector getRegistryNodesByInquiryURL(String inquiryURL)
+ {
+ Vector registryNodes = null;
+ NodeManager navigatorManager = controller_.getUDDIPerspective().getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)(navigatorManager.getRootNode());
+ Vector childNodes = uddiMainNode.getChildNodes();
+ for (int i=0;i<childNodes.size();i++)
+ {
+ Node childNode = (Node)childNodes.elementAt(i);
+ if (childNode instanceof RegistryNode)
+ {
+ RegistryElement regElement = (RegistryElement)childNode.getTreeElement();
+ String currInquiryURL = regElement.getInquiryURL();
+ if (currInquiryURL != null && currInquiryURL.equals(inquiryURL))
+ {
+ if (registryNodes == null)
+ registryNodes = new Vector();
+ registryNodes.addElement(childNode);
+ }
+ }
+ }
+ return registryNodes;
+ }
+
+ public static AddToUDDIPerspectiveAction newAction(Controller controller) {
+ TreeElement selectedElement = controller.getFavoritesPerspective().getNodeManager().getSelectedNode().getTreeElement();
+ FavoritesFolderElement favoritesFolderElement = null;
+
+ if (selectedElement instanceof FavoritesFolderElement) {
+ favoritesFolderElement = (FavoritesFolderElement)selectedElement;
+ }
+ else if (selectedElement instanceof FavoritesElement) {
+ favoritesFolderElement = ((FavoritesElement)selectedElement).getParentFolderElement();
+ }
+ else {
+ return null;
+ }
+
+ // return an instance of AddToUDDIPerspectiveAction depending on the type of
+ // favorites folder element being selected.
+ if (favoritesFolderElement instanceof FavoritesUDDIRegistryFolderElement)
+ return new AddRegistryToUDDIPerspectiveAction(controller);
+ else if (favoritesFolderElement instanceof FavoritesUDDIBusinessFolderElement)
+ return new AddBusinessToUDDIPerspectiveAction(controller);
+ else if (favoritesFolderElement instanceof FavoritesUDDIServiceFolderElement)
+ return new AddServiceToUDDIPerspectiveAction(controller);
+ else if (favoritesFolderElement instanceof FavoritesUDDIServiceInterfaceFolderElement)
+ return new AddServiceInterfaceToUDDIPerspectiveAction(controller);
+ else
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddWSILToWSILPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddWSILToWSILPerspectiveAction.java
new file mode 100644
index 000000000..80a10308b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/AddWSILToWSILPerspectiveAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.OpenWSILAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilActionInputs;
+
+import java.util.Hashtable;
+
+public class AddWSILToWSILPerspectiveAction extends MultipleLinkAction
+{
+ public AddWSILToWSILPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp";
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesWSILElement wsilElement = (FavoritesWSILElement) selectedElement;
+ String wsilURL = wsilElement.getWsilUrl();
+ OpenWSILAction openWSILAction = new OpenWSILAction(controller_);
+ Hashtable propertyTable = openWSILAction.getPropertyTable();
+ propertyTable.put(WsilActionInputs.WSIL_URL, wsilURL);
+ propertyTable.put(WsilActionInputs.WSIL_INSPECTION_TYPE, String.valueOf(WsilActionInputs.WSIL_DETAILS));
+ boolean actionResult = openWSILAction.run();
+ if (actionResult)
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL", wsilURL));
+ else
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE", wsilURL));
+ return actionResult;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesAddToWSDLPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesAddToWSDLPerspectiveAction.java
new file mode 100644
index 000000000..233e22e39
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesAddToWSDLPerspectiveAction.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesWSDLServiceElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.OpenWSDLAction;
+
+import java.util.Hashtable;
+
+public class FavoritesAddToWSDLPerspectiveAction extends MultipleLinkAction
+{
+ public FavoritesAddToWSDLPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp";
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ FavoritesWSDLServiceElement wsdlElement = (FavoritesWSDLServiceElement) selectedNode.getTreeElement();
+ String wsdlUrl = wsdlElement.getWsdlUrl();
+ OpenWSDLAction openWSDLAction = new OpenWSDLAction(controller_);
+ Hashtable propertyTable = openWSDLAction.getPropertyTable();
+ propertyTable.put(ActionInputs.QUERY_INPUT_WSDL_URL, wsdlUrl);
+ boolean actionResult = openWSDLAction.run();
+ if (actionResult)
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL", wsdlUrl));
+ else
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE", wsdlUrl));
+ return actionResult;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToFileSystemAction.java
new file mode 100644
index 000000000..bad13a92a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToFileSystemAction.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.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.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper;
+
+import java.io.OutputStream;
+import javax.wsdl.Definition;
+
+public class FavoritesImportToFileSystemAction extends ImportToFileSystemAction {
+
+ private Definition def_;
+ private String wsdlFileName_;
+
+ public FavoritesImportToFileSystemAction(Controller controller) {
+ super(controller);
+ }
+
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId)
+ {
+ return ImportToFileSystemAction.getActionLink(nodeId,toolId,viewId,viewToolId,"favorites/actions/FavortiesImportToFileSystemActionJSP.jsp");
+ }
+
+ public boolean write(OutputStream os) {
+ if (def_ != null) {
+ return writeWSDLDefinition(os, def_);
+ }
+ else {
+ return false;
+ }
+ }
+
+ public String getDefaultFileName() {
+ return wsdlFileName_;
+ }
+
+ public boolean run() {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+
+ // return false if nodeID == 0, that is the main node
+ if (nodeID == 0)
+ return false;
+
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ String wsdlURL = ((FavoritesWSDLServiceElement)selectedElement).getWsdlUrl();
+ wsdlFileName_ = WSDLFileNameHelper.getWSDLFileName(wsdlURL);
+ try {
+ def_ = (new Uddi4jHelper()).getWSDLDefinition(wsdlURL);
+ }
+ catch (Throwable t) {
+ favPerspective.getMessageQueue().addMessage(t.getMessage());
+ return false;
+ }
+ return true;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToWorkbenchAction.java
new file mode 100644
index 000000000..b26d560dc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesImportToWorkbenchAction.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToWorkbenchAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Hashtable;
+
+public class FavoritesImportToWorkbenchAction extends ImportToWorkbenchAction {
+ public FavoritesImportToWorkbenchAction(Controller controller) {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ FavoritesPerspective favoritesPerspective = controller_.getFavoritesPerspective();
+ return (FormTool)favoritesPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public ImportToFileSystemAction newImportToFileSystemAction() {
+ FavoritesImportToFileSystemAction action = new FavoritesImportToFileSystemAction(controller_);
+ Hashtable table = action.getPropertyTable();
+
+ FavoritesPerspective favoritesPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+
+ table.put(ActionInputs.NODEID, String.valueOf(selectedNode.getNodeId()));
+ table.put(ActionInputs.VIEWID, String.valueOf(selectedNode.getViewId()));
+
+ return action;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesLaunchWebServiceWizardAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesLaunchWebServiceWizardAction.java
new file mode 100644
index 000000000..58aae22b1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesLaunchWebServiceWizardAction.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LaunchWebServiceWizardAction;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesLaunchWebServiceWizardAction extends LaunchWebServiceWizardAction {
+
+ public FavoritesLaunchWebServiceWizardAction(Controller controller) {
+ super(controller);
+ }
+
+ public static LaunchWebServiceWizardAction newAction(Controller controller) {
+ return new FavoritesLaunchWebServiceWizardAction(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ FavoritesPerspective favoritesPerspective = controller_.getFavoritesPerspective();
+ return (FormTool)favoritesPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public boolean run() {
+ FavoritesPerspective favoritesPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ if (selectedElement instanceof FavoritesWSDLServiceElement)
+ return launchWizard(((FavoritesWSDLServiceElement)selectedElement).getWsdlUrl());
+ else
+ return false;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getFavoritesPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesRestoreDefaultFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesRestoreDefaultFavoritesAction.java
new file mode 100644
index 000000000..9cd0e35b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesRestoreDefaultFavoritesAction.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Vector;
+import javax.servlet.http.*;
+
+public class FavoritesRestoreDefaultFavoritesAction extends LinkAction
+{
+ public FavoritesRestoreDefaultFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp");
+ return actionLink.toString();
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node mainNode = nodeManager.getRootNode();
+ FavoritesMainElement mainElement = (FavoritesMainElement)mainNode.getTreeElement();
+ boolean actionResult = mainElement.restoreFavoritesDefault();
+ if (actionResult)
+ {
+ Vector folderNodes = mainNode.getChildNodes();
+ for (int i = 0; i < folderNodes.size(); i++)
+ {
+ Node folderNode = (Node)folderNodes.elementAt(i);
+ TreeElement treeElement = folderNode.getTreeElement();
+ if (treeElement instanceof FavoritesFolderElement)
+ {
+ FavoritesFolderElement folderElement = (FavoritesFolderElement)treeElement;
+ folderElement.removeAllFavorites(controller_.getServletEngineStateLocation());
+ folderElement.init(mainElement);
+ }
+ }
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT"));
+ return true;
+ }
+ else
+ {
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_OPEN_FAVORITES_BACKUP"));
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesToggleNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesToggleNodeAction.java
new file mode 100644
index 000000000..d5d337a90
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/FavoritesToggleNodeAction.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesToggleNodeAction extends ToggleNodeAction {
+ public FavoritesToggleNodeAction(Controller controller) {
+ super(controller, controller.getFavoritesPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeId, boolean open) {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/FavoritesToggleNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeId);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.OPEN);
+ actionLink.append('=');
+ if (open)
+ actionLink.append(ActionInputs.OPEN_NODE);
+ else
+ actionLink.append(ActionInputs.CLOSE_NODE);
+ return actionLink.toString();
+ }
+
+ public final String getActionLinkForHistory() {
+ ToolManager toolManager = toggledNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = toggledNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = toggledNode_.getViewId();
+ int viewToolId = toggledNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectFavoritesToolAction.getActionLink(nodeId, toolId, viewId, viewToolId, true);
+ else
+ return SelectFavoritesNodeAction.getActionLink(nodeId, true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return controller_.getFavoritesPerspective().getTreeContentVar();
+ }
+
+ public final String getTreeContentPage()
+ {
+ return controller_.getFavoritesPerspective().getTreeContentPage();
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return controller_.getFavoritesPerspective().getPropertiesContainerVar();
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return controller_.getFavoritesPerspective().getPropertiesContainerPage();
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_FAVORITES;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/MultipleLinkAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/MultipleLinkAction.java
new file mode 100644
index 000000000..7edb7f883
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/MultipleLinkAction.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.MassNodeIdTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.http.*;
+
+public abstract class MultipleLinkAction extends LinkAction
+{
+ public MultipleLinkAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ String isMultipleLinkAction = request.getParameter(FavoritesActionInputs.MULTIPLE_LINK_ACTION);
+ if (isMultipleLinkAction != null)
+ {
+ propertyTable_.put(FavoritesActionInputs.MULTIPLE_LINK_ACTION, isMultipleLinkAction);
+ return processMultipleLinkActionParameters(request);
+ }
+ else
+ {
+ propertyTable_.remove(FavoritesActionInputs.MULTIPLE_LINK_ACTION);
+ String nodeIDString = request.getParameter(ActionInputs.NODEID);
+ String toolIDString = request.getParameter(ActionInputs.TOOLID);
+ String viewIDString = request.getParameter(ActionInputs.VIEWID);
+ String viewToolIDString = request.getParameter(ActionInputs.VIEWTOOLID);
+ if (nodeIDString != null)
+ propertyTable_.put(ActionInputs.NODEID, nodeIDString);
+ if (toolIDString != null)
+ propertyTable_.put(ActionInputs.TOOLID, toolIDString);
+ if (viewIDString != null)
+ propertyTable_.put(ActionInputs.VIEWID, viewIDString);
+ if (viewToolIDString != null)
+ propertyTable_.put(ActionInputs.VIEWTOOLID, viewToolIDString);
+ return true;
+ }
+ }
+
+ protected boolean processMultipleLinkActionParameters(HttpServletRequest request)
+ {
+ String[] massActionNodeIDs = request.getParameterValues(FavoritesActionInputs.MASS_ACTION_NODE_ID);
+ propertyTable_.put(FavoritesActionInputs.MASS_ACTION_NODE_ID, massActionNodeIDs);
+ if (massActionNodeIDs.length == 0)
+ return false;
+ else
+ return true;
+ }
+
+ public ITransformer[] getTransformers()
+ {
+ return new ITransformer[] {new MassNodeIdTransformer(controller_, FavoritesActionInputs.MASS_ACTION_NODE_ID)};
+ }
+
+ protected boolean isMultipleLinkAction()
+ {
+ return propertyTable_.containsKey(FavoritesActionInputs.MULTIPLE_LINK_ACTION);
+ }
+
+ protected String[] getMassActionNodeIds()
+ {
+ Object object = propertyTable_.get(FavoritesActionInputs.MASS_ACTION_NODE_ID);
+ if (object == null)
+ return new String[0];
+ else if (object.getClass().isArray())
+ return (String[])object;
+ else
+ return new String[] {(String)object};
+ }
+
+ public boolean run()
+ {
+ return (isMultipleLinkAction()) ? executeMultipleLinkAction() : executeSingleLinkAction();
+ }
+
+ protected boolean executeMultipleLinkAction()
+ {
+ boolean result = false;
+ String[] massActionNodeIDs = getMassActionNodeIds();
+ if (massActionNodeIDs != null)
+ {
+ for (int i = 0; i < massActionNodeIDs.length; i++)
+ {
+ propertyTable_.put(ActionInputs.NODEID, massActionNodeIDs[i]);
+ if (executeSingleLinkAction())
+ result = true;
+ }
+ propertyTable_.remove(ActionInputs.NODEID);
+ }
+ return result;
+ }
+
+ protected abstract boolean executeSingleLinkAction();
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/RemoveFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/RemoveFavoritesAction.java
new file mode 100644
index 000000000..7c07c5bcb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/RemoveFavoritesAction.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * 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.favorites.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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Enumeration;
+
+public class RemoveFavoritesAction extends MultipleLinkAction
+{
+ public RemoveFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/RemoveFavoritesActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "favorites/actions/RemoveFavoritesActionJSP.jsp";
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ String nodeIDString = (String) propertyTable_.get(ActionInputs.NODEID);
+ int nodeID;
+ try
+ {
+ nodeID = Integer.parseInt(nodeIDString);
+ }
+ catch (NumberFormatException nfe)
+ {
+ nodeID = nodeManager.getSelectedNodeId();
+ }
+ Node selectedNode = nodeManager.getNode(nodeID);
+ if (selectedNode == null)
+ return false;
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ String pluginMetadataDirectory = controller_.getServletEngineStateLocation();
+ boolean actionResult;
+ if (selectedElement instanceof FavoritesElement)
+ actionResult = ((FavoritesElement) selectedElement).getParentFolderElement().removeFavoriteByNodeID(nodeID, pluginMetadataDirectory);
+ else if (selectedElement instanceof FavoritesFolderElement)
+ actionResult = ((FavoritesFolderElement) selectedElement).removeAllFavorites(pluginMetadataDirectory);
+ else if (selectedElement instanceof FavoritesMainElement)
+ {
+ Enumeration e;
+ FavoritesMainElement mainElement = (FavoritesMainElement) selectedElement;
+ e = mainElement.getElements(FavoritesModelConstants.REL_WSIL_FOLDER_NODE);
+ actionResult = ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ e = mainElement.getElements(FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE);
+ actionResult = actionResult && ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ e = mainElement.getElements(FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE);
+ actionResult = actionResult && ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ e = mainElement.getElements(FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE);
+ actionResult = actionResult && ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ e = mainElement.getElements(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_FOLDER_NODE);
+ actionResult = actionResult && ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ e = mainElement.getElements(FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE);
+ actionResult = actionResult && ((FavoritesFolderElement) e.nextElement()).removeAllFavorites(pluginMetadataDirectory);
+ }
+ else
+ actionResult = false;
+ if (actionResult)
+ favPerspective.getMessageQueue().addMessage(controller_.getMessage("MSG_INFO_NODE_CLEARED", selectedNode.getNodeName()));
+ return actionResult;
+ }
+
+ public String getTreeContentVar()
+ {
+ return "favNavigatorContent";
+ }
+
+ public String getTreeContentPage()
+ {
+ return "favorites/fav_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar()
+ {
+ return "favPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage()
+ {
+ return "favorites/fav_properties_container.jsp";
+ }
+
+ public String getStatusContentVar()
+ {
+ return "favStatusContent";
+ }
+
+ public String getStatusContentPage()
+ {
+ return "favorites/fav_status_content.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/ResizeFavoritesFramesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/ResizeFavoritesFramesAction.java
new file mode 100644
index 000000000..d33c20578
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/ResizeFavoritesFramesAction.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+public class ResizeFavoritesFramesAction extends ResizeFramesAction
+{
+ public ResizeFavoritesFramesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ // Save the current frameset sizes.
+ String frameName = (String)propertyTable_.get(ActionInputs.FRAME_NAME);
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+
+ // Set the new frameset sizes.
+ boolean saveFrameSettings = false;
+ if (frameName.equals(FavoritesFrameNames.NAVIGATOR_CONTAINER))
+ {
+ favPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+ favPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ if (perspectiveContentFramesetCols.startsWith("100%"))
+ {
+ // Restore.
+ favPerspective.setPerspectiveContentFramesetCols(favPerspective.getSavedPerspectiveContentFramesetCols());
+ }
+ else
+ {
+ // Maximize.
+ favPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ favPerspective.setPerspectiveContentFramesetCols("100%,0%");
+ }
+ }
+ else if (frameName.equals(FavoritesFrameNames.PROPERTIES_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.startsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ favPerspective.setPerspectiveContentFramesetCols(favPerspective.getSavedPerspectiveContentFramesetCols());
+ favPerspective.setActionsContainerFramesetRows(favPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ favPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ favPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ favPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ favPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ favPerspective.setActionsContainerFramesetRows("100%,0%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ favPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ favPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ else if (frameName.equals(FavoritesFrameNames.STATUS_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.endsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ favPerspective.setPerspectiveContentFramesetCols(favPerspective.getSavedPerspectiveContentFramesetCols());
+ favPerspective.setActionsContainerFramesetRows(favPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ favPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ favPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ favPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ favPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ favPerspective.setActionsContainerFramesetRows("0%,100%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ favPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ favPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesNodeAction.java
new file mode 100644
index 000000000..32f0e372e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesNodeAction.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectFavoritesNodeAction extends SelectNodeAction
+{
+ public SelectFavoritesNodeAction(Controller controller)
+ {
+ super(controller, controller.getFavoritesPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID, boolean keepHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/SelectFavoritesNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ if (keepHistory) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.ISHISTORY);
+ actionLink.append("=1");
+ }
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ Node selectedNode = getSelectedNode();
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+ if (selectedTool == null)
+ return null;
+ else if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), selectedTool.getToolId(), selectedNode.getViewId(), selectedNode.getViewToolId(), true);
+ else
+ return getActionLink(selectedNode.getNodeId(), true);
+ }
+
+ public final String getTreeContentVar() {
+ return controller_.getFavoritesPerspective().getTreeContentVar();
+ }
+
+ public final String getTreeContentPage() {
+ return controller_.getFavoritesPerspective().getTreeContentPage();
+ }
+
+ public final String getPropertiesContainerVar() {
+ return controller_.getFavoritesPerspective().getPropertiesContainerVar();
+ }
+
+ public final String getPropertiesContainerPage() {
+ return controller_.getFavoritesPerspective().getPropertiesContainerPage();
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_FAVORITES;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesToolAction.java
new file mode 100644
index 000000000..9706b1924
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SelectFavoritesToolAction.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectFavoritesToolAction extends SelectNodeToolAction
+{
+ public SelectFavoritesToolAction(Controller controller)
+ {
+ super(controller, controller.getFavoritesPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID, boolean keepHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("favorites/actions/SelectFavoritesToolActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ if (viewID != ActionInputs.VIEWID_DEFAULT) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ }
+ if (keepHistory) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.ISHISTORY);
+ actionLink.append("=1");
+ }
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ if (getSelectedTool().getToolType() != ToolTypes.ACTION) {
+ Node selectedNode = getSelectedNode();
+ return getActionLink(selectedNode.getNodeId(), getSelectedTool().getToolId(), selectedNode.getViewId(), selectedNode.getViewToolId(), true);
+ }
+ else
+ return null;
+ }
+
+ public final String getTreeContentVar() {
+ return controller_.getFavoritesPerspective().getTreeContentVar();
+ }
+
+ public final String getTreeContentPage() {
+ return controller_.getFavoritesPerspective().getTreeContentPage();
+ }
+
+ public final String getPropertiesContainerVar() {
+ return controller_.getFavoritesPerspective().getPropertiesContainerVar();
+ }
+
+ public final String getPropertiesContainerPage() {
+ return controller_.getFavoritesPerspective().getPropertiesContainerPage();
+ }
+
+ public final String getPropertiesContentVar() {
+ return controller_.getFavoritesPerspective().getPropertiesContentVar();
+ }
+
+ public final String getPropertiesContentPage() {
+ return controller_.getFavoritesPerspective().getPropertiesContentPage();
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_FAVORITES;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SwitchPerspectiveFromFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SwitchPerspectiveFromFavoritesAction.java
new file mode 100644
index 000000000..4470c6ba4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/actions/SwitchPerspectiveFromFavoritesAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+public final class SwitchPerspectiveFromFavoritesAction extends ShowPerspectiveAction
+{
+ public SwitchPerspectiveFromFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+
+ // Save the frameset sizes iff no frame is maximized.
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ if (!perspectiveContentFramesetCols.startsWith("100%") && !perspectiveContentFramesetCols.endsWith("100%"))
+ favPerspective.setPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+
+ if (!actionsContainerFramesetRows.startsWith("100%") && !actionsContainerFramesetRows.endsWith("100%"))
+ favPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+
+ return super.run();
+ }
+
+ public static final String getFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ StringBuffer formLink = new StringBuffer("wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp?");
+ formLink.append(ActionInputs.PERSPECTIVE).append('=').append(targetPerspectiveId);
+ if (forHistory)
+ formLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return formLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesActionInputs.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesActionInputs.java
new file mode 100644
index 000000000..c4ca64187
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesActionInputs.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.constants;
+
+public class FavoritesActionInputs
+{
+ // mass actions
+ public final static String MULTIPLE_LINK_ACTION = "multipleLinkAction";
+ public final static String MASS_ACTION_NODE_ID = "massActionNodeID";
+
+ // resize favorites frames action
+ public final static String FRAMESET_COLS_PERSPECTIVE_CONTENT = "framesetColsPerspectiveContent";
+ public final static String FRAMESET_ROWS_ACTIONS_CONTAINER = "framesetRowsActionsContainer";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesFrameNames.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesFrameNames.java
new file mode 100644
index 000000000..5a2622049
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesFrameNames.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.constants;
+
+public class FavoritesFrameNames
+{
+ public final static String NAVIGATOR_CONTAINER = "fav_navigator_container";
+ public final static String NAVIGATOR_TOOLBAR = "fav_navigator_toolbar";
+ public final static String NAVIGATOR_CONTENT = "fav_navigator_content";
+ public final static String ACTIONS_CONTAINER = "fav_actions_container";
+ public final static String PROPERTIES_CONTAINER = "fav_properties_container";
+ public final static String PROPERTIES_TOOLBAR = "fav_properties_toolbar";
+ public final static String PROPERTIES_CONTENT = "fav_properties_content";
+ public final static String STATUS_CONTAINER = "fav_status_container";
+ public final static String STATUS_TOOLBAR = "fav_status_toolbar";
+ public final static String STATUS_CONTENT = "fav_status_content";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesModelConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesModelConstants.java
new file mode 100644
index 000000000..9b935e8f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/constants/FavoritesModelConstants.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.constants;
+
+public class FavoritesModelConstants {
+ // Relations
+ public final static String REL_WSIL_FOLDER_NODE = "relWSILFolderNode";
+ public final static String REL_WSDL_SERVICE_FOLDER_NODE = "relWSDLServiceFolderNode";
+ public final static String REL_UDDI_SERVICE_FOLDER_NODE = "relUDDIServiceFolderNode";
+ public final static String REL_UDDI_BUSINESS_FOLDER_NODE = "relUDDIBusinessFolderNode";
+ public final static String REL_UDDI_SERVICE_INTERFACE_FOLDER_NODE = "relUDDIServiceInterfaceFolderNode";
+ public final static String REL_UDDI_REGISTRY_FOLDER_NODE = "relUDDIRegistryFolerNode";
+ public final static String REL_WSIL_NODE = "relWSILNode";
+ public final static String REL_WSDL_SERVICE_NODE = "relWSDLServiceNode";
+ public final static String REL_UDDI_SERVICE_NODE = "relUDDIServiceNode";
+ public final static String REL_UDDI_BUSINESS_NODE = "relUDDIBusinessNode";
+ public final static String REL_UDDI_SERVICE_INTERFACE_NODE = "relUDDIServiceInterfaceNode";
+ public final static String REL_UDDI_REGISTRY_NODE = "relUDDIRegistryNode";
+
+ // Properties
+ public final static String PROP_PLUGIN_METADATA_DIRECTORY = "pluginMetadataDirectory";
+ public final static String PROP_WSIL_URL = "wsilURL";
+ public final static String PROP_WSDL_URL = "wsdlURL";
+ public final static String PROP_UDDI_SERVICE_NAME = "UDDIServiceName";
+ public final static String PROP_UDDI_SERVICE_INQUIRY_API = "UDDIServiceInquiryAPI";
+ public final static String PROP_UDDI_SERVICE_KEY = "UDDIServiceKey";
+ public final static String PROP_UDDI_BUSINESS_NAME = "UDDIBusinessName";
+ public final static String PROP_UDDI_BUSINESS_INQUIRY_API = "UDDIBusinessInquiryAPI";
+ public final static String PROP_UDDI_BUSINESS_KEY = "UDDIBusinessKey";
+ public final static String PROP_UDDI_SERVICE_INTERFACE_NAME = "UDDIServiceInterfaceName";
+ public final static String PROP_UDDI_SERVICE_INTERFACE_INQUIRY_API = "UDDIServiceInterfaceInquiryAPI";
+ public final static String PROP_UDDI_SERVICE_INTERFACE_KEY = "UDDIServiceInterfaceKey";
+ public final static String PROP_UDDI_REGISTRY_NAME = "UDDIRegistryName";
+ public final static String PROP_UDDI_REGISTRY_INQUIRY_API = "UDDIRegistryInquiryAPI";
+ public final static String PROP_UDDI_REGISTRY_PUBLISH_API = "UDDIRegistryPublishAPI";
+ public final static String PROP_UDDI_REGISTRY_REGISTRATION_URL = "UDDIRegistryRegistrationURL";
+ public final static String PROP_UDDI_REGISTRY_CATEGORIES_ENUM = "UDDIRegistryCategoriesEnum";
+
+ // List Managers for Favorites
+ public final static String LIST_MANAGER_WSDL_SERVICES = "wsdlServices";
+ public final static String LIST_MANAGER_UDDI_SERVICES = "uddiServices";
+ public final static String LIST_MANAGER_UDDI_BUSINESS = "uddiBusiness";
+ public final static String LIST_MANAGER_WSIL_LINKS = "wsilLinks";
+ public final static String LIST_MANAGER_UDDI_REGISTRY = "uddiRegistry";
+ public final static String LIST_MANAGER_UDDI_SERVICE_INTERFACE = "uddiServiceInterface";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesElement.java
new file mode 100644
index 000000000..b0833e785
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesElement.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+
+import java.util.Enumeration;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesElement extends TreeElement {
+
+ public FavoritesElement(String name, Model model) {
+ super(name, model);
+ }
+
+ public FavoritesFolderElement getParentFolderElement() {
+ Enumeration e = getElements(ModelConstants.REL_OWNER);
+ if (!e.hasMoreElements())
+ return null;
+ else
+ return (FavoritesFolderElement)e.nextElement();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesFolderElement.java
new file mode 100644
index 000000000..567dcc73d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesFolderElement.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public abstract class FavoritesFolderElement extends TreeElement
+{
+ protected NodeManager nodeManager_;
+
+ public FavoritesFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model);
+ nodeManager_ = nodeManager;
+ }
+
+ protected FavoritesMainElement getFavoritesMainElement() {
+ return (FavoritesMainElement)nodeManager_.getRootNode().getTreeElement();
+ }
+
+ public abstract void init(FavoritesMainElement favMainElement);
+
+ public abstract boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory);
+
+ public abstract boolean removeAllFavorites(String pluginMetadataDirectory);
+
+ public abstract boolean addFavorite(Hashtable table);
+
+ public abstract boolean favoriteExists(Hashtable table);
+
+ public abstract Enumeration getAllFavorites();
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesMainElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesMainElement.java
new file mode 100644
index 000000000..2ce48a25d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesMainElement.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.favorites.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesMainElement extends TreeElement
+{
+ private Controller controller_;
+ private FavoritesRegistryTypeWSE favRegistry_;
+
+ public FavoritesMainElement(String name, Model model, Controller controller)
+ {
+ super(name, model);
+ controller_ = controller;
+ favRegistry_ = new FavoritesRegistryTypeWSE(
+ controller.getDefaultFavoritesLocation(),
+ controller.getServletEngineStateLocation()
+ );
+ }
+
+ public boolean restoreFavoritesDefault()
+ {
+ favRegistry_.restoreFavoritesDefault();
+ return saveFavorites();
+ }
+
+ public boolean saveFavorites()
+ {
+ try
+ {
+ favRegistry_.save();
+ return true;
+ }
+ catch (Throwable t)
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ favPerspective.getMessageQueue().addMessage(favPerspective.getMessage("MSG_ERROR_SAVE_FAVORITES_WSIL", favRegistry_.getWriteLocation()));
+ return false;
+ }
+ }
+
+ public Link addUDDIRegistry(String registryName, String inquiryAPI, String publishAPI, String registrationURL)
+ {
+ return favRegistry_.addUDDIRegistry(registryName, inquiryAPI, publishAPI, registrationURL);
+ }
+
+ public Link addUDDIBusiness(String businessName, String inquiryAPI, String businessKey)
+ {
+ return favRegistry_.addUDDIBusiness(businessName, inquiryAPI, businessKey);
+ }
+
+ public Service addUDDIService(String serviceName, String inquiryAPI, String serviceKey)
+ {
+ return favRegistry_.addUDDIService(serviceName, inquiryAPI, serviceKey);
+ }
+
+ public Service addUDDIServiceInterface(String serIntName, String inquiryAPI, String serIntKey)
+ {
+ return favRegistry_.addUDDIServiceInterface(serIntName, inquiryAPI, serIntKey);
+ }
+
+ public Service addWSDLService(String url)
+ {
+ return favRegistry_.addWSDLService(url);
+ }
+
+ public Link addWSILLink(String url)
+ {
+ return favRegistry_.addWSILLink(url);
+ }
+
+ public boolean removeService(Service service) {
+ favRegistry_.removeService(service);
+ return true;
+ }
+
+ public boolean removeLink(Link link) {
+ favRegistry_.removeLink(link);
+ return true;
+ }
+
+ public Link[] loadUDDIRegistries()
+ {
+ return favRegistry_.loadUDDIRegistries();
+ }
+
+ public Link[] loadUDDIBusinesses()
+ {
+ return favRegistry_.loadUDDIBusinesses();
+ }
+
+ public Service[] loadUDDIServices()
+ {
+ return favRegistry_.loadUDDIServices();
+ }
+
+ public Service[] loadUDDIServiceInterfaces()
+ {
+ return favRegistry_.loadUDDIServiceInterfaces();
+ }
+
+ public Service[] loadWSDLServices()
+ {
+ return favRegistry_.loadWSDLServices();
+ }
+
+ public Link[] loadWSILs()
+ {
+ return favRegistry_.loadWSILs();
+ }
+
+ public final FavoritesUDDIRegistryFolderElement getFavoritesUDDIRegistryFolderElement()
+ {
+ return (FavoritesUDDIRegistryFolderElement)(getElements(FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE).nextElement());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessElement.java
new file mode 100644
index 000000000..fa91fb18d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessElement.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesUDDIBusiness;
+import org.apache.wsil.*;
+
+public class FavoritesUDDIBusinessElement extends FavoritesElement {
+
+ private FavoritesUDDIBusiness uddiBusiness_;
+
+ public FavoritesUDDIBusinessElement(String name, Model model, Link link) {
+ super(name, model);
+ uddiBusiness_ = new FavoritesUDDIBusiness();
+ uddiBusiness_.setLink(link);
+ }
+
+ public Link getLink() {
+ return uddiBusiness_.getLink();
+ }
+
+ public String getName() {
+ return uddiBusiness_.getName();
+ }
+
+ public String getInquiryURL() {
+ return uddiBusiness_.getInquiryURL();
+ }
+
+ public String getBusinessKey() {
+ return uddiBusiness_.getBusinessKey();
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessFolderElement.java
new file mode 100644
index 000000000..6fe50a018
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIBusinessFolderElement.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesUDDIBusinessFolderElement extends FavoritesFolderElement
+{
+ public FavoritesUDDIBusinessFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Link[] links = favMainElement.loadUDDIBusinesses();
+ for (int i = 0; i < links.length; i++) {
+ Link link = links[i];
+ FavoritesUDDIBusinessElement favUDDIBusinessElement = new FavoritesUDDIBusinessElement((link.getAbstracts())[0].getText(), getModel(), link);
+ connect(favUDDIBusinessElement, FavoritesModelConstants.REL_UDDI_BUSINESS_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String businessName = (String)table.get(FavoritesModelConstants.PROP_UDDI_BUSINESS_NAME);
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API);
+ String businessKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY);
+ if (businessName == null || inquiryAPI == null || businessKey == null)
+ return false;
+ FavoritesUDDIBusinessElement e = getFavorite(inquiryAPI, businessKey);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Link link = favMainElement.addUDDIBusiness(businessName, inquiryAPI, businessKey);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesUDDIBusinessElement favUDDIBusinessElement = new FavoritesUDDIBusinessElement(businessName, getModel(), link);
+ connect(favUDDIBusinessElement, FavoritesModelConstants.REL_UDDI_BUSINESS_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API);
+ String businessKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY);
+ if (inquiryAPI == null || businessKey == null)
+ return false;
+ return (getFavorite(inquiryAPI, businessKey) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesUDDIBusinessElement)
+ return (removeFavorite((FavoritesUDDIBusinessElement)selectedElement) && favMainElement.saveFavorites());
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesUDDIBusinessElement element) {
+ Link link = element.getLink();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeLink(link)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesUDDIBusinessElement favUDDIBusinessElement = (FavoritesUDDIBusinessElement)e.nextElement();
+ Link link = favUDDIBusinessElement.getLink();
+ favMainElement.removeLink(link);
+ }
+ disconnectRel(FavoritesModelConstants.REL_UDDI_BUSINESS_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_UDDI_BUSINESS_NODE);
+ }
+
+ private FavoritesUDDIBusinessElement getFavorite(String inquiryAPI, String businessKey) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIBusinessElement busElement = (FavoritesUDDIBusinessElement)e.nextElement();
+ if (inquiryAPI.equals(busElement.getInquiryURL()) &&
+ businessKey.equals(busElement.getBusinessKey()))
+ return busElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryElement.java
new file mode 100644
index 000000000..d9d49d511
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryElement.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesUDDIRegistry;
+import org.eclipse.wst.ws.internal.parser.favorites.IFavoritesUDDIRegistry;
+import org.apache.wsil.*;
+
+public class FavoritesUDDIRegistryElement extends FavoritesElement {
+
+ private FavoritesUDDIRegistry uddiReg_;
+
+ public FavoritesUDDIRegistryElement(String name, Model model, Link link) {
+ super(name, model);
+ uddiReg_ = new FavoritesUDDIRegistry();
+ uddiReg_.setLink(link);
+ }
+
+ public Link getLink() {
+ return uddiReg_.getLink();
+ }
+
+ public String getName() {
+ return uddiReg_.getName();
+ }
+
+ public String getInquiryURL() {
+ return uddiReg_.getInquiryURL();
+ }
+
+ public String getPublishURL() {
+ return uddiReg_.getPublishURL();
+ }
+
+ public String getRegistrationURL() {
+ return uddiReg_.getRegistrationURL();
+ }
+
+ public String toString() {
+ return getName();
+ }
+
+ public IFavoritesUDDIRegistry getIFavoritesUDDIRegistryInterface()
+ {
+ return uddiReg_;
+ }
+}
+
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryFolderElement.java
new file mode 100644
index 000000000..bae3db071
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIRegistryFolderElement.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.apache.wsil.Link;
+import org.eclipse.wst.ws.internal.datamodel.Model;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.CategoryModel;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesUDDIRegistryFolderElement extends FavoritesFolderElement
+{
+ public FavoritesUDDIRegistryFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Link[] links = favMainElement.loadUDDIRegistries();
+ for (int i = 0; i < links.length; i++) {
+ Link link = links[i];
+ FavoritesUDDIRegistryElement favUDDIRegsitryElement = new FavoritesUDDIRegistryElement((link.getAbstracts())[0].getText(), getModel(), link);
+ connect(favUDDIRegsitryElement, FavoritesModelConstants.REL_UDDI_REGISTRY_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String registryName = (String)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_NAME);
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_INQUIRY_API);
+ String publishAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_PUBLISH_API);
+ String registrationURL = (String)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_REGISTRATION_URL);
+ Enumeration userDefinedCategories = (Enumeration)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_CATEGORIES_ENUM);
+ // Save the category data first and undo if necessary.
+ if (userDefinedCategories != null)
+ {
+ String pluginMetadataDirectory = (String)table.get(FavoritesModelConstants.PROP_PLUGIN_METADATA_DIRECTORY);
+ StringBuffer directoryBuffer = new StringBuffer();
+ formCategoriesDirectory(directoryBuffer,pluginMetadataDirectory,registryName);
+ File categoriesDirectoryFile = new File(directoryBuffer.toString());
+ categoriesDirectoryFile.mkdirs();
+ StringBuffer categoryFileName = new StringBuffer();
+ while (userDefinedCategories.hasMoreElements())
+ {
+ CategoryModel categoryModel = (CategoryModel)userDefinedCategories.nextElement();
+ categoryFileName.setLength(0);
+ String encodedCategoryKey = URLUtils.encode(categoryModel.getCategoryKey());
+ categoryFileName.append(categoriesDirectoryFile.getAbsolutePath()).append(File.separatorChar).append(encodedCategoryKey).append(".txt");
+ byte rc = categoryModel.saveData(categoryFileName.toString());
+ if (rc != CategoryModel.OPERATION_SUCCESSFUL)
+ {
+ // Delete the category file if it exists.
+ File categoryFile = new File(categoryFileName.toString());
+ if (categoryFile.exists())
+ categoryFile.delete();
+ }
+ }
+ cleanupCategoryDirectories(categoriesDirectoryFile);
+ }
+ if (registryName == null || inquiryAPI == null || publishAPI == null)
+ return false;
+ FavoritesUDDIRegistryElement e = getFavorite(registryName);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Link link = favMainElement.addUDDIRegistry(registryName, inquiryAPI, publishAPI, registrationURL);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesUDDIRegistryElement favUDDIRegsitryElement = new FavoritesUDDIRegistryElement(registryName, getModel(), link);
+ connect(favUDDIRegsitryElement, FavoritesModelConstants.REL_UDDI_REGISTRY_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public static final void formCategoriesDirectory(StringBuffer categoriesDirectory,String pluginMetadataDirectory,String registryName)
+ {
+ // <metadata>/uddi/<registryId>/categories
+ String encodedRegistryName = URLUtils.encode(registryName);
+ categoriesDirectory.append(pluginMetadataDirectory).append("uddi").append(File.separatorChar).append(encodedRegistryName).append(File.separatorChar).append("categories");
+ }
+
+ private final void clearRegistryMetadata(String pluginMetadataDirectory,String registryName)
+ {
+ StringBuffer categoriesDirectory = new StringBuffer();
+ formCategoriesDirectory(categoriesDirectory,pluginMetadataDirectory,registryName);
+ File categoriesDirectoryFile = new File(categoriesDirectory.toString());
+ File[] categoryFiles = categoriesDirectoryFile.listFiles();
+ if (categoryFiles != null)
+ {
+ for (int i=0;i<categoryFiles.length;i++)
+ categoryFiles[i].delete();
+ }
+ cleanupCategoryDirectories(categoriesDirectoryFile);
+ }
+
+ private final void cleanupCategoryDirectories(File categoriesDirectoryFile)
+ {
+ // Delete the categories subdirectory if it is empty.
+ String[] fileList;
+ fileList = categoriesDirectoryFile.list();
+ if (fileList == null || fileList.length == 0)
+ categoriesDirectoryFile.delete();
+ // Delete the <registryId> subdirectory if it is empty.
+ File registryIdDirectoryFile = categoriesDirectoryFile.getParentFile();
+ fileList = registryIdDirectoryFile.list();
+ if (fileList == null || fileList.length == 0)
+ registryIdDirectoryFile.delete();
+ // Delete the uddi subdirectory if it is empty.
+ File uddiDirectoryFile = registryIdDirectoryFile.getParentFile();
+ fileList = uddiDirectoryFile.list();
+ if (fileList == null || fileList.length == 0)
+ uddiDirectoryFile.delete();
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String registryName = (String)table.get(FavoritesModelConstants.PROP_UDDI_REGISTRY_NAME);
+ if (registryName == null)
+ return false;
+ return (getFavorite(registryName) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesUDDIRegistryElement)
+ {
+ clearRegistryMetadata(pluginMetadataDirectory,selectedElement.getName());
+ boolean rc = removeFavorite((FavoritesUDDIRegistryElement)selectedElement);
+ rc = rc && favMainElement.saveFavorites();
+ return rc;
+ }
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesUDDIRegistryElement element) {
+ Link link = ((FavoritesUDDIRegistryElement)element).getLink();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeLink(link)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesUDDIRegistryElement favUDDIRegistryElement = (FavoritesUDDIRegistryElement)e.nextElement();
+ clearRegistryMetadata(pluginMetadataDirectory,favUDDIRegistryElement.getName());
+ Link link = favUDDIRegistryElement.getLink();
+ favMainElement.removeLink(link);
+ }
+ disconnectRel(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE);
+ }
+
+ private FavoritesUDDIRegistryElement getFavorite(String registryName) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIRegistryElement regElement = (FavoritesUDDIRegistryElement)e.nextElement();
+ if (registryName.equals(regElement.getName()))
+ return regElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceElement.java
new file mode 100644
index 000000000..ee4ce93d3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceElement.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesUDDIService;
+import org.apache.wsil.*;
+
+public class FavoritesUDDIServiceElement extends FavoritesElement {
+
+ private FavoritesUDDIService uddiService_;
+
+ public FavoritesUDDIServiceElement(String name, Model model, Service service) {
+ super(name, model);
+ uddiService_ = new FavoritesUDDIService();
+ uddiService_.setService(service);
+ }
+
+ public Service getService() {
+ return uddiService_.getService();
+ }
+
+ public String getName() {
+ return uddiService_.getName();
+ }
+
+ public String getInquiryURL() {
+ return uddiService_.getInquiryURL();
+ }
+
+ public String getServiceKey() {
+ return uddiService_.getServiceKey();
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceFolderElement.java
new file mode 100644
index 000000000..384851598
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceFolderElement.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesUDDIServiceFolderElement extends FavoritesFolderElement
+{
+
+ public FavoritesUDDIServiceFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Service[] services = favMainElement.loadUDDIServices();
+ for (int i = 0; i < services.length; i++) {
+ Service service = services[i];
+ FavoritesUDDIServiceElement favUDDIServiceElement = new FavoritesUDDIServiceElement((service.getServiceNames())[0].getText(), getModel(), service);
+ connect(favUDDIServiceElement, FavoritesModelConstants.REL_UDDI_SERVICE_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String serviceName = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_NAME);
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API);
+ String serviceKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY);
+ if (serviceName == null || inquiryAPI == null || serviceKey == null)
+ return false;
+ FavoritesUDDIServiceElement e = getFavorite(inquiryAPI, serviceKey);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Service service = favMainElement.addUDDIService(serviceName, inquiryAPI, serviceKey);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesUDDIServiceElement favUDDIServiceElement = new FavoritesUDDIServiceElement(serviceName, getModel(), service);
+ connect(favUDDIServiceElement, FavoritesModelConstants.REL_UDDI_SERVICE_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API);
+ String serviceKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY);
+ if (inquiryAPI == null || serviceKey == null)
+ return false;
+ return (getFavorite(inquiryAPI, serviceKey) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesUDDIServiceElement)
+ return (removeFavorite((FavoritesUDDIServiceElement)selectedElement) && favMainElement.saveFavorites());
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesUDDIServiceElement element) {
+ Service service = ((FavoritesUDDIServiceElement)element).getService();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeService(service)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesUDDIServiceElement favUDDIServiceElement = (FavoritesUDDIServiceElement)e.nextElement();
+ Service service = favUDDIServiceElement.getService();
+ favMainElement.removeService(service);
+ }
+ disconnectRel(FavoritesModelConstants.REL_UDDI_SERVICE_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_UDDI_SERVICE_NODE);
+ }
+
+ private FavoritesUDDIServiceElement getFavorite(String inquiryAPI, String serviceKey) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIServiceElement serElement = (FavoritesUDDIServiceElement)e.nextElement();
+ if (inquiryAPI.equals(serElement.getInquiryURL()) &&
+ serviceKey.equals(serElement.getServiceKey()))
+ return serElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceElement.java
new file mode 100644
index 000000000..d3f892242
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceElement.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesUDDIServiceInterface;
+import org.apache.wsil.*;
+
+public class FavoritesUDDIServiceInterfaceElement extends FavoritesElement {
+
+ private FavoritesUDDIServiceInterface uddiSerInt_;
+
+ public FavoritesUDDIServiceInterfaceElement(String name, Model model, Service service) {
+ super(name, model);
+ uddiSerInt_ = new FavoritesUDDIServiceInterface();
+ uddiSerInt_.setService(service);
+ }
+
+ public Service getService() {
+ return uddiSerInt_.getService();
+ }
+
+ public String getName() {
+ return uddiSerInt_.getName();
+ }
+
+ public String getInquiryURL() {
+ return uddiSerInt_.getInquiryURL();
+ }
+
+ public String getServiceInterfaceKey() {
+ return uddiSerInt_.getServiceInterfaceKey();
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceFolderElement.java
new file mode 100644
index 000000000..bbdc90d31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesUDDIServiceInterfaceFolderElement.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL document
+*/
+public class FavoritesUDDIServiceInterfaceFolderElement extends FavoritesFolderElement
+{
+
+ public FavoritesUDDIServiceInterfaceFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Service[] services = favMainElement.loadUDDIServiceInterfaces();
+ for (int i = 0; i < services.length; i++) {
+ Service service = services[i];
+ FavoritesUDDIServiceInterfaceElement favUDDISerIntElement = new FavoritesUDDIServiceInterfaceElement((service.getServiceNames())[0].getText(), getModel(), service);
+ connect(favUDDISerIntElement, FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String serIntName = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_NAME);
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_INQUIRY_API);
+ String serIntKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_KEY);
+ if (serIntName == null || inquiryAPI == null || serIntKey == null)
+ return false;
+ FavoritesUDDIServiceInterfaceElement e = getFavorite(inquiryAPI, serIntKey);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Service service = favMainElement.addUDDIServiceInterface(serIntName, inquiryAPI, serIntKey);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesUDDIServiceInterfaceElement favUDDISerIntElement = new FavoritesUDDIServiceInterfaceElement(serIntName, getModel(), service);
+ connect(favUDDISerIntElement, FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String inquiryAPI = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_INQUIRY_API);
+ String serIntKey = (String)table.get(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_KEY);
+ if (inquiryAPI == null || serIntKey == null)
+ return false;
+ return (getFavorite(inquiryAPI, serIntKey) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesUDDIServiceInterfaceElement)
+ return (removeFavorite((FavoritesUDDIServiceInterfaceElement)selectedElement) && favMainElement.saveFavorites());
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesUDDIServiceInterfaceElement element) {
+ Service service = ((FavoritesUDDIServiceInterfaceElement)element).getService();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeService(service)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesUDDIServiceInterfaceElement favUDDISerIntElement = (FavoritesUDDIServiceInterfaceElement)e.nextElement();
+ Service service = favUDDISerIntElement.getService();
+ favMainElement.removeService(service);
+ }
+ disconnectRel(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE);
+ }
+
+ private FavoritesUDDIServiceInterfaceElement getFavorite(String inquiryAPI, String serIntKey) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIServiceInterfaceElement serIntElement = (FavoritesUDDIServiceInterfaceElement)e.nextElement();
+ if (inquiryAPI.equals(serIntElement.getInquiryURL()) &&
+ serIntKey.equals(serIntElement.getServiceInterfaceKey()))
+ return serIntElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceElement.java
new file mode 100644
index 000000000..ec9993d12
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceElement.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesWSDL;
+import org.apache.wsil.*;
+
+public class FavoritesWSDLServiceElement extends FavoritesElement {
+
+ private FavoritesWSDL wsdl_;
+
+ public FavoritesWSDLServiceElement(String name, Model model, Service service) {
+ super(name, model);
+ wsdl_ = new FavoritesWSDL();
+ wsdl_.setService(service);
+ }
+
+ public Service getService() {
+ return wsdl_.getService();
+ }
+
+ public String getWsdlUrl() {
+ return wsdl_.getWsdlUrl();
+ }
+
+ public String toString() {
+ return getWsdlUrl();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceFolderElement.java
new file mode 100644
index 000000000..7b26004a4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSDLServiceFolderElement.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.Hashtable;
+import java.util.Enumeration;
+import org.apache.wsil.*;
+
+public class FavoritesWSDLServiceFolderElement extends FavoritesFolderElement
+{
+
+ public FavoritesWSDLServiceFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Service[] services = favMainElement.loadWSDLServices();
+ for (int i = 0; i < services.length; i++) {
+ Service service = services[i];
+ FavoritesWSDLServiceElement favWSDLServiceElement = new FavoritesWSDLServiceElement((service.getDescriptions())[0].getLocation(), getModel(), service);
+ connect(favWSDLServiceElement, FavoritesModelConstants.REL_WSDL_SERVICE_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String wsdlURL = (String)table.get(FavoritesModelConstants.PROP_WSDL_URL);
+ if (wsdlURL == null)
+ return false;
+ FavoritesWSDLServiceElement e = getFavorite(wsdlURL);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Service service = favMainElement.addWSDLService(wsdlURL);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesWSDLServiceElement favWSDLServiceElement = new FavoritesWSDLServiceElement(wsdlURL, getModel(), service);
+ connect(favWSDLServiceElement, FavoritesModelConstants.REL_WSDL_SERVICE_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String wsdlURL = (String)table.get(FavoritesModelConstants.PROP_WSDL_URL);
+ if (wsdlURL == null)
+ return false;
+ return (getFavorite(wsdlURL) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesWSDLServiceElement)
+ return (removeFavorite((FavoritesWSDLServiceElement)selectedElement) && favMainElement.saveFavorites());
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesWSDLServiceElement element) {
+ Service service = ((FavoritesWSDLServiceElement)element).getService();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeService(service)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesWSDLServiceElement favWSDLServiceElement = (FavoritesWSDLServiceElement)e.nextElement();
+ Service service = favWSDLServiceElement.getService();
+ favMainElement.removeService(service);
+ }
+ disconnectRel(FavoritesModelConstants.REL_WSDL_SERVICE_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_WSDL_SERVICE_NODE);
+ }
+
+ private FavoritesWSDLServiceElement getFavorite(String wsdlUrl) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesWSDLServiceElement wsdlElement = (FavoritesWSDLServiceElement)e.nextElement();
+ if (wsdlUrl.equals(wsdlElement.getWsdlUrl()))
+ return wsdlElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILElement.java
new file mode 100644
index 000000000..764b6d61b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILElement.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.parser.favorites.FavoritesWSIL;
+import org.apache.wsil.*;
+
+public class FavoritesWSILElement extends FavoritesElement {
+
+ private FavoritesWSIL wsil_;
+
+ public FavoritesWSILElement(String name, Model model, Link link) {
+ super(name, model);
+ wsil_ = new FavoritesWSIL();
+ wsil_.setLink(link);
+ }
+
+ public Link getLink() {
+ return wsil_.getLink();
+ }
+
+ public String getWsilUrl() {
+ return wsil_.getWsilUrl();
+ }
+
+ public String toString() {
+ return getWsilUrl();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILFolderElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILFolderElement.java
new file mode 100644
index 000000000..d7d10c3f3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/datamodel/FavoritesWSILFolderElement.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.apache.wsil.*;
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+public class FavoritesWSILFolderElement extends FavoritesFolderElement {
+
+ public FavoritesWSILFolderElement(String name, Model model, NodeManager nodeManager) {
+ super(name, model, nodeManager);
+ }
+
+ public void init(FavoritesMainElement favMainElement) {
+ Link[] links = favMainElement.loadWSILs();
+ for (int i = 0; i < links.length; i++) {
+ Link link = links[i];
+ FavoritesWSILElement favWSILElement = new FavoritesWSILElement(link.getLocation(), getModel(), link);
+ connect(favWSILElement, FavoritesModelConstants.REL_WSIL_NODE, ModelConstants.REL_OWNER);
+ }
+ }
+
+ public boolean addFavorite(Hashtable table) {
+ String wsilURL = (String)table.get(FavoritesModelConstants.PROP_WSIL_URL);
+ if (wsilURL == null)
+ return false;
+ FavoritesWSILElement e = getFavorite(wsilURL);
+ if (e != null)
+ removeFavorite(e);
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Link link = favMainElement.addWSILLink(wsilURL);
+ boolean saved = favMainElement.saveFavorites();
+ if (saved) {
+ FavoritesWSILElement favWSILElement = new FavoritesWSILElement(wsilURL, getModel(), link);
+ connect(favWSILElement, FavoritesModelConstants.REL_WSIL_NODE, ModelConstants.REL_OWNER);
+ }
+ return saved;
+ }
+
+ public boolean favoriteExists(Hashtable table) {
+ String wsilURL = (String)table.get(FavoritesModelConstants.PROP_WSIL_URL);
+ if (wsilURL == null)
+ return false;
+ return (getFavorite(wsilURL) != null);
+ }
+
+ public boolean removeFavoriteByNodeID(int nodeID,String pluginMetadataDirectory) {
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (selectedElement instanceof FavoritesWSILElement)
+ return (removeFavorite((FavoritesWSILElement)selectedElement) && favMainElement.saveFavorites());
+ else
+ return false;
+ }
+
+ private boolean removeFavorite(FavoritesWSILElement element) {
+ Link link = element.getLink();
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ if (favMainElement.removeLink(link)) {
+ element.disconnectAll();
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean removeAllFavorites(String pluginMetadataDirectory) {
+ FavoritesMainElement favMainElement = getFavoritesMainElement();
+ Enumeration e = getAllFavorites();
+ while(e.hasMoreElements()) {
+ FavoritesWSILElement favWSILElement = (FavoritesWSILElement)e.nextElement();
+ Link link = favWSILElement.getLink();
+ favMainElement.removeLink(link);
+ }
+ disconnectRel(FavoritesModelConstants.REL_WSIL_NODE);
+ return favMainElement.saveFavorites();
+ }
+
+ public Enumeration getAllFavorites() {
+ return getElements(FavoritesModelConstants.REL_WSIL_NODE);
+ }
+
+ private FavoritesWSILElement getFavorite(String wsilUrl) {
+ Enumeration e = getAllFavorites();
+ while (e.hasMoreElements()) {
+ FavoritesWSILElement wsilElement = (FavoritesWSILElement)e.nextElement();
+ if (wsilUrl.equals(wsilElement.getWsilUrl()))
+ return wsilElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddToUDDIPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddToUDDIPerspectiveTool.java
new file mode 100644
index 000000000..a12366d7f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddToUDDIPerspectiveTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.AddToUDDIPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class AddToUDDIPerspectiveTool extends ActionTool {
+
+ public AddToUDDIPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/add_to_uddi_perspective_enabled.gif", "favorites/images/add_to_uddi_perspective_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToUDDIPerspectiveAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddWSILToWSILPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddWSILToWSILPerspectiveTool.java
new file mode 100644
index 000000000..dbb35d5ff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/AddWSILToWSILPerspectiveTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.AddWSILToWSILPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class AddWSILToWSILPerspectiveTool extends ActionTool {
+
+ public AddWSILToWSILPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/add_to_wsil_perspective_enabled.gif", "favorites/images/add_to_wsil_perspective_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddWSILToWSILPerspectiveAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesAddToWSDLPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesAddToWSDLPerspectiveTool.java
new file mode 100644
index 000000000..c67c2b277
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesAddToWSDLPerspectiveTool.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesAddToWSDLPerspectiveTool extends AddToWSDLPerspectiveTool {
+
+ public FavoritesAddToWSDLPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return FavoritesAddToWSDLPerspectiveAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToFileSystemTool.java
new file mode 100644
index 000000000..311099907
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToFileSystemTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToFileSystemTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesImportToFileSystemTool extends ImportToFileSystemTool {
+
+ public FavoritesImportToFileSystemTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return ImportToFileSystemAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(),"favorites/actions/FavoritesImportToFileSystemActionJSP.jsp");
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToWorkbenchTool.java
new file mode 100644
index 000000000..035334da6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesImportToWorkbenchTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToWorkbenchTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesImportToWorkbenchTool extends ImportToWorkbenchTool {
+
+ public FavoritesImportToWorkbenchTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesImportToWorkbenchForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesLaunchWebServiceWizardTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesLaunchWebServiceWizardTool.java
new file mode 100644
index 000000000..915467d88
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesLaunchWebServiceWizardTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.LaunchWebServiceWizardTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesLaunchWebServiceWizardTool extends LaunchWebServiceWizardTool {
+
+ public FavoritesLaunchWebServiceWizardTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesLaunchWebServiceWizardForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesMainNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesMainNode.java
new file mode 100644
index 000000000..debb25816
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesMainNode.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesMainNode extends FavoritesNavigatorNode {
+ public FavoritesMainNode(TreeElement treeElement, NodeManager nodeManager) {
+ super(treeElement, nodeManager, 1, "images/root_main.gif");
+
+ // Create UDDI Registry Folder Node
+ FavoritesUDDIRegistryFolderElement favUDDIRegistryFolderElement = new FavoritesUDDIRegistryFolderElement(getMessage("FAVORITES_UDDI_REGISTRIES_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favUDDIRegistryFolderElement, FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesUDDIRegistryFolderNode favUDDIRegistryFolderNode = new FavoritesUDDIRegistryFolderNode(favUDDIRegistryFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favUDDIRegistryFolderNode);
+ favUDDIRegistryFolderNode.setVisibilityOfChildren(false);
+ favUDDIRegistryFolderElement.init((FavoritesMainElement)treeElement);
+
+ // Create UDDI Business Folder Node
+ FavoritesUDDIBusinessFolderElement favUDDIBusinessFolderElement = new FavoritesUDDIBusinessFolderElement(getMessage("FAVORITES_UDDI_BUSINESSES_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favUDDIBusinessFolderElement, FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesUDDIBusinessFolderNode favUDDIBusinessFolderNode = new FavoritesUDDIBusinessFolderNode(favUDDIBusinessFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favUDDIBusinessFolderNode);
+ favUDDIBusinessFolderNode.setVisibilityOfChildren(false);
+ favUDDIBusinessFolderElement.init((FavoritesMainElement)treeElement);
+
+ // Create UDDI Service Folder Node
+ FavoritesUDDIServiceFolderElement favUDDIServiceFolderElement = new FavoritesUDDIServiceFolderElement(getMessage("FAVORITES_UDDI_SERVICE_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favUDDIServiceFolderElement, FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesUDDIServiceFolderNode favUDDIServiceFolderNode = new FavoritesUDDIServiceFolderNode(favUDDIServiceFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favUDDIServiceFolderNode);
+ favUDDIServiceFolderNode.setVisibilityOfChildren(false);
+ favUDDIServiceFolderElement.init((FavoritesMainElement)treeElement);
+
+ // Create UDDI Service Interface Folder Node
+ FavoritesUDDIServiceInterfaceFolderElement favUDDIServiceInterfaceFolderElement = new FavoritesUDDIServiceInterfaceFolderElement(getMessage("FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favUDDIServiceInterfaceFolderElement, FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesUDDIServiceInterfaceFolderNode favUDDIServiceInterfaceFolderNode = new FavoritesUDDIServiceInterfaceFolderNode(favUDDIServiceInterfaceFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favUDDIServiceInterfaceFolderNode);
+ favUDDIServiceInterfaceFolderNode.setVisibilityOfChildren(false);
+ favUDDIServiceInterfaceFolderElement.init((FavoritesMainElement)treeElement);
+
+ // Create WSIL Folder Node
+ FavoritesWSILFolderElement favWSILFolderElement = new FavoritesWSILFolderElement(getMessage("FAVORITES_WSIL_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favWSILFolderElement, FavoritesModelConstants.REL_WSIL_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesWSILFolderNode favWSILFolderNode = new FavoritesWSILFolderNode(favWSILFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favWSILFolderNode);
+ favWSILFolderNode.setVisibilityOfChildren(false);
+ favWSILFolderElement.init((FavoritesMainElement)treeElement);
+
+ // Create WSDL Service Folder Node
+ FavoritesWSDLServiceFolderElement favWSDLServiceFolderElement = new FavoritesWSDLServiceFolderElement(getMessage("FAVORITES_WSDL_SERVICE_FOLDER_NODE"), treeElement.getModel(), nodeManager);
+ treeElement.connect(favWSDLServiceFolderElement, FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE, ModelConstants.REL_OWNER);
+ FavoritesWSDLServiceFolderNode favWSDLServiceFolderNode = new FavoritesWSDLServiceFolderNode(favWSDLServiceFolderElement, nodeManager, nodeDepth_ + 1);
+ addChild(favWSDLServiceFolderNode);
+ favWSDLServiceFolderNode.setVisibilityOfChildren(false);
+ favWSDLServiceFolderElement.init((FavoritesMainElement)treeElement);
+
+ }
+
+ protected void initTools() {
+ }
+
+ private String getMessage(String msg) {
+ Controller controller = nodeManager_.getController();
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ return favPerspective.getMessage(msg);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorFolderNode.java
new file mode 100644
index 000000000..6af9d73aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorFolderNode.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.FavoritesToggleNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FolderNode;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public abstract class FavoritesNavigatorFolderNode extends FolderNode {
+
+ public FavoritesNavigatorFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ }
+
+ protected String getToggleNodeActionHref() {
+ return FavoritesToggleNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ protected String getLinkActionHref() {
+ return SelectFavoritesNodeAction.getActionLink(nodeId_, false);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorNode.java
new file mode 100644
index 000000000..1a3368405
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesNavigatorNode.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.FavoritesToggleNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public abstract class FavoritesNavigatorNode extends Node {
+
+ public FavoritesNavigatorNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth, String imagePath) {
+ super(treeElement, nodeManager, nodeDepth, imagePath);
+ }
+
+ protected String getToggleNodeActionHref() {
+ return FavoritesToggleNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ protected String getLinkActionHref() {
+ return SelectFavoritesNodeAction.getActionLink(nodeId_, false);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesPerspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesPerspective.java
new file mode 100644
index 000000000..bff8db015
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesPerspective.java
@@ -0,0 +1,156 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.BasicModel;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesMainElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import javax.servlet.*;
+
+public class FavoritesPerspective extends Perspective
+{
+ private BasicModel model_;
+ private NodeManager nodeManager_;
+ private String perspectiveContentFramesetCols_;
+ private String savedPerspectiveContentFramesetCols_;
+ private String actionsContainerFramesetRows_;
+ private String savedActionsContainerFramesetRows_;
+
+ public FavoritesPerspective(Controller controller)
+ {
+ super("favorites",controller);
+ }
+
+ public final void initPerspective(ServletContext application)
+ {
+ model_ = new BasicModel("FavoritesModel");
+ FavoritesMainElement favoritesMainElement = new FavoritesMainElement(getMessage("FAVORITES_MAIN_NODE"), model_, controller_);
+ model_.setRootElement(favoritesMainElement);
+ nodeManager_ = new NodeManager(controller_);
+ FavoritesMainNode favMainNode = new FavoritesMainNode(favoritesMainElement, nodeManager_);
+ nodeManager_.setRootNode(favMainNode);
+
+ // Starting frameset sizes.
+ perspectiveContentFramesetCols_ = "30%,*";
+ savedPerspectiveContentFramesetCols_ = perspectiveContentFramesetCols_;
+ actionsContainerFramesetRows_ = "75%,*";
+ savedActionsContainerFramesetRows_ = actionsContainerFramesetRows_;
+ }
+
+ public NodeManager getNodeManager() {
+ return nodeManager_;
+ }
+
+ public String getPerspectiveContentPage()
+ {
+ return "favorites/fav_perspective_content.jsp";
+ }
+
+ public int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_FAVORITES;
+ }
+
+ public String getPanesFile() {
+ return "favorites/scripts/favoritesPanes.jsp";
+ }
+
+ public String getProcessFramesetsForm()
+ {
+ return "favorites/forms/ProcessFavoritesFramesetsForm.jsp";
+ }
+
+ public String getFramesetsFile()
+ {
+ return "favorites/scripts/favoritesframesets.jsp";
+ }
+
+ public String getTreeContentVar() {
+ return "favNavigatorContent";
+ }
+
+ public String getTreeContentPage() {
+ return "favorites/fav_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar() {
+ return "favPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage() {
+ return "favorites/fav_properties_container.jsp";
+ }
+
+ public String getStatusContentVar() {
+ return "favStatusContent";
+ }
+
+ public String getStatusContentPage() {
+ return "favorites/fav_status_content.jsp";
+ }
+
+ public String getPropertiesContentVar() {
+ return "favPropertiesContent";
+ }
+
+ public String getPropertiesContentPage() {
+ return "favorites/fav_properties_content.jsp";
+ }
+
+ public final String getPerspectiveContentFramesetCols()
+ {
+ return perspectiveContentFramesetCols_;
+ }
+
+ public final void setPerspectiveContentFramesetCols(String cols)
+ {
+ perspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getSavedPerspectiveContentFramesetCols()
+ {
+ return savedPerspectiveContentFramesetCols_;
+ }
+
+ public final void setSavedPerspectiveContentFramesetCols(String cols)
+ {
+ savedPerspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getActionsContainerFramesetRows()
+ {
+ return actionsContainerFramesetRows_;
+ }
+
+ public final void setActionsContainerFramesetRows(String rows)
+ {
+ actionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSavedActionsContainerFramesetRows()
+ {
+ return savedActionsContainerFramesetRows_;
+ }
+
+ public final void setSavedActionsContainerFramesetRows(String rows)
+ {
+ savedActionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSwitchPerspectiveFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ return SwitchPerspectiveFromFavoritesAction.getFormActionLink(targetPerspectiveId,forHistory);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesRestoreDefaultFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesRestoreDefaultFavoritesTool.java
new file mode 100644
index 000000000..d5040863b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesRestoreDefaultFavoritesTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.FavoritesRestoreDefaultFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesRestoreDefaultFavoritesTool extends ActionTool {
+ public FavoritesRestoreDefaultFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/refresh_enabled.gif", "images/refresh_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return FavoritesRestoreDefaultFavoritesAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesSetDefaultViewTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesSetDefaultViewTool.java
new file mode 100644
index 000000000..c5fd41b59
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesSetDefaultViewTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.SetDefaultViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesSetDefaultViewTool extends SetDefaultViewTool {
+ public FavoritesSetDefaultViewTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, false);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessDetailsTool.java
new file mode 100644
index 000000000..ad9a2f043
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesUDDIBusinessDetailsTool extends FormTool {
+
+ public FavoritesUDDIBusinessDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesUDDIBusinessDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessFolderNode.java
new file mode 100644
index 000000000..d354eb4d9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessFolderNode.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class FavoritesUDDIBusinessFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesUDDIBusinessFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_UDDI_BUSINESS_NODE)) {
+ FavoritesUDDIBusinessNode favoritesUDDIBusinessNode = new FavoritesUDDIBusinessNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(favoritesUDDIBusinessNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_UDDI_BUSINESS_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_UDDI_BUSINESS_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteUDDIBusinessTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_BUSINESS"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessNode.java
new file mode 100644
index 000000000..cc6f6b263
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIBusinessNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesUDDIBusinessNode extends FavoritesNavigatorNode {
+ public FavoritesUDDIBusinessNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "favorites/images/uddi_business_node.gif");
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new FavoritesUDDIBusinessDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_UDDI_BUSINESS_DETAILS"));
+ new AddToUDDIPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_TO_UDDI_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryDetailsTool.java
new file mode 100644
index 000000000..b979945fc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesUDDIRegistryDetailsTool extends FormTool {
+
+ public FavoritesUDDIRegistryDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesUDDIRegistryDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryFolderNode.java
new file mode 100644
index 000000000..88fc7bd59
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryFolderNode.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+import java.io.*;
+
+public class FavoritesUDDIRegistryFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesUDDIRegistryFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE)) {
+ TreeElement regElement = (TreeElement)event.getParentElement();
+ String imagePath;
+ StringBuffer categoriesDirectory = new StringBuffer();
+ FavoritesUDDIRegistryFolderElement.formCategoriesDirectory(categoriesDirectory,nodeManager_.getController().getServletEngineStateLocation(),regElement.getName());
+ File categoryDirectoryFile = new File(categoriesDirectory.toString());
+ String[] categoryFiles = categoryDirectoryFile.list();
+ if (categoryFiles != null && categoryFiles.length > 0)
+ imagePath = "favorites/images/uddi_registry_cat_node.gif";
+ else
+ imagePath = "favorites/images/uddi_registry_node.gif";
+ FavoritesUDDIRegistryNode favoritesUDDIRegistryNode = new FavoritesUDDIRegistryNode(regElement, nodeManager_, nodeDepth_ + 1, imagePath);
+ addChild(favoritesUDDIRegistryNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteUDDIRegistryTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_REGISTRY"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryNode.java
new file mode 100644
index 000000000..85fdd7acc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIRegistryNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesUDDIRegistryNode extends FavoritesNavigatorNode {
+ public FavoritesUDDIRegistryNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth,String imagePath) {
+ super(treeElement, nodeManager, nodeDepth, imagePath);
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new FavoritesUDDIRegistryDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_UDDI_REGISTRY_DETAILS"));
+ new AddToUDDIPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_TO_UDDI_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceDetailsTool.java
new file mode 100644
index 000000000..8e8bf4367
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesUDDIServiceDetailsTool extends FormTool {
+
+ public FavoritesUDDIServiceDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesUDDIServiceDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceFolderNode.java
new file mode 100644
index 000000000..37b722fff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceFolderNode.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class FavoritesUDDIServiceFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesUDDIServiceFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_UDDI_SERVICE_NODE)) {
+ FavoritesUDDIServiceNode favoritesUDDIServiceNode = new FavoritesUDDIServiceNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(favoritesUDDIServiceNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_UDDI_SERVICE_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_UDDI_SERVICE_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteUDDIServiceTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_SERVICE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceDetailsTool.java
new file mode 100644
index 000000000..8e18df13a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesUDDIServiceInterfaceDetailsTool extends FormTool {
+
+ public FavoritesUDDIServiceInterfaceDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesUDDIServiceIntDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceFolderNode.java
new file mode 100644
index 000000000..953000a94
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceFolderNode.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class FavoritesUDDIServiceInterfaceFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesUDDIServiceInterfaceFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE)) {
+ FavoritesUDDIServiceInterfaceNode favoritesUDDIServiceInterfaceNode = new FavoritesUDDIServiceInterfaceNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(favoritesUDDIServiceInterfaceNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteUDDIServiceInterfaceTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceNode.java
new file mode 100644
index 000000000..787993936
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceInterfaceNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesUDDIServiceInterfaceNode extends FavoritesNavigatorNode {
+ public FavoritesUDDIServiceInterfaceNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "favorites/images/uddi_service_interface_node.gif");
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new FavoritesUDDIServiceInterfaceDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS"));
+ new AddToUDDIPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_TO_UDDI_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceNode.java
new file mode 100644
index 000000000..1c4024708
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesUDDIServiceNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesUDDIServiceNode extends FavoritesNavigatorNode {
+ public FavoritesUDDIServiceNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "favorites/images/uddi_service_node.gif");
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new FavoritesUDDIServiceDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_UDDI_SERVICE_DETAILS"));
+ new AddToUDDIPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_TO_UDDI_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLDetailsTool.java
new file mode 100644
index 000000000..d809f42de
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesWSDLDetailsTool extends FormTool {
+
+ public FavoritesWSDLDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesWSDLDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceFolderNode.java
new file mode 100644
index 000000000..b82b64487
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceFolderNode.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class FavoritesWSDLServiceFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesWSDLServiceFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_WSDL_SERVICE_NODE)) {
+ FavoritesWSDLServiceNode favoritesWSDLServiceNode = new FavoritesWSDLServiceNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(favoritesWSDLServiceNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_WSDL_SERVICE_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_WSDL_SERVICE_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteWSDLServiceTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_WSDL_SERVICE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceNode.java
new file mode 100644
index 000000000..81c3c1bd0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSDLServiceNode.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesWSDLServiceNode extends FavoritesNavigatorNode {
+ public FavoritesWSDLServiceNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "favorites/images/wsdl_service_node.gif");
+ }
+
+ protected void initTools() {
+ Controller controller = nodeManager_.getController();
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ new FavoritesWSDLDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_WSDL_DETAILS"));
+ new FavoritesImportToWorkbenchTool(toolManager_, controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new FavoritesImportToFileSystemTool(toolManager_, controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new FavoritesLaunchWebServiceWizardTool(toolManager_, controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new FavoritesAddToWSDLPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILDetailsTool.java
new file mode 100644
index 000000000..e995aa5c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILDetailsTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class FavoritesWSILDetailsTool extends FormTool {
+
+ public FavoritesWSILDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "favorites/forms/FavoritesWSILDetailsPage.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILFolderNode.java
new file mode 100644
index 000000000..d938c4927
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILFolderNode.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class FavoritesWSILFolderNode extends FavoritesNavigatorFolderNode {
+ public FavoritesWSILFolderNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth);
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(FavoritesModelConstants.REL_WSIL_NODE)) {
+ FavoritesWSILNode favoritesWSILNode = new FavoritesWSILNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(favoritesWSILNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(FavoritesModelConstants.REL_WSIL_NODE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(FavoritesModelConstants.REL_WSIL_NODE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new ListFavoriteWSILTool(toolManager_, favPerspective.getMessage("ALT_LIST_FAVORITE_WSIL"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILNode.java
new file mode 100644
index 000000000..1ae32dd86
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/FavoritesWSILNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class FavoritesWSILNode extends FavoritesNavigatorNode {
+ public FavoritesWSILNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "favorites/images/wsil_node.gif");
+ }
+
+ protected void initTools() {
+ FavoritesPerspective favPerspective = nodeManager_.getController().getFavoritesPerspective();
+ new FavoritesWSILDetailsTool(toolManager_, favPerspective.getMessage("ALT_FAVORITES_WSIL_DETAILS"));
+ new AddWSILToWSILPerspectiveTool(toolManager_, favPerspective.getMessage("ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIBusinessTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIBusinessTool.java
new file mode 100644
index 000000000..281fce8c6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIBusinessTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteUDDIBusinessTool extends FormTool {
+ public ListFavoriteUDDIBusinessTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_business_enabled.gif", "favorites/images/list_business_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteUDDIBusinessView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIRegistryTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIRegistryTool.java
new file mode 100644
index 000000000..1b016dd08
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIRegistryTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteUDDIRegistryTool extends FormTool {
+ public ListFavoriteUDDIRegistryTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_registry_enabled.gif", "favorites/images/list_registry_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteUDDIRegistryView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceInterfaceTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceInterfaceTool.java
new file mode 100644
index 000000000..d4233f560
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceInterfaceTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteUDDIServiceInterfaceTool extends FormTool {
+ public ListFavoriteUDDIServiceInterfaceTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_service_interface_enabled.gif", "favorites/images/list_service_interface_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteUDDIServiceInterfaceView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceTool.java
new file mode 100644
index 000000000..f432bf8f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteUDDIServiceTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteUDDIServiceTool extends FormTool {
+ public ListFavoriteUDDIServiceTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_service_enabled.gif", "favorites/images/list_service_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteUDDIServiceView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSDLServiceTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSDLServiceTool.java
new file mode 100644
index 000000000..4e5e2c171
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSDLServiceTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteWSDLServiceTool extends FormTool {
+ public ListFavoriteWSDLServiceTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_wsdl_enabled.gif", "favorites/images/list_wsdl_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteWSDLServiceView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSILTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSILTool.java
new file mode 100644
index 000000000..ede83f1d6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/ListFavoriteWSILTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class ListFavoriteWSILTool extends FormTool {
+ public ListFavoriteWSILTool(ToolManager toolManager, String alt) {
+ super(toolManager, "favorites/images/list_WSIL_enabled.gif", "favorites/images/list_WSIL_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "favorites/views/ListFavoriteWSILView.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/RemoveFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/RemoveFavoritesTool.java
new file mode 100644
index 000000000..424a6e0a6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/favorites/perspective/RemoveFavoritesTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.RemoveFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class RemoveFavoritesTool extends ActionTool {
+
+ public RemoveFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/clear_enabled.gif", "images/clear_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectFavoritesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return RemoveFavoritesAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ActionTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ActionTool.java
new file mode 100644
index 000000000..53123381b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ActionTool.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+public abstract class ActionTool extends Tool
+{
+ public ActionTool(ToolManager toolManager,String enabledImageLink,String highlightedImageLink,String alt)
+ {
+ super(toolManager,enabledImageLink,highlightedImageLink,alt,ToolTypes.ACTION);
+ }
+
+ public String getFormLink()
+ {
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/AddToWSDLPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/AddToWSDLPerspectiveTool.java
new file mode 100644
index 000000000..1282a97e1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/AddToWSDLPerspectiveTool.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public abstract class AddToWSDLPerspectiveTool extends ActionTool
+{
+ public AddToWSDLPerspectiveTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"images/add_to_wsdl_perspective_enabled.gif","images/add_to_wsdl_perspective_highlighted.gif",alt);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/BreadCrumb.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/BreadCrumb.java
new file mode 100644
index 000000000..2d211dc0b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/BreadCrumb.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+// A class used to represent a brower breadcrumb. Each breadcrumb encapsulates
+// a navigated URL.
+public class BreadCrumb
+{
+ private int perspectiveId_;
+ private String url_;
+
+ public BreadCrumb(int perspectiveId,String url)
+ {
+ perspectiveId_ = perspectiveId;
+ url_ = url;
+ }
+
+ /**
+ * Get the URL associated with this breadcrumb.
+ * @return String The URL.
+ */
+ public String getURL()
+ {
+ return url_;
+ }
+
+ /**
+ * Get the ID of the perspective where this breadcrumb belongs.
+ * @return int The perspectiveID as defined in ActionInputs.
+ */
+ public int getPerspectiveId()
+ {
+ return perspectiveId_;
+ }
+
+ /**
+ * Test equality between this breadcrumb and another. Both the URLs and perspective
+ * IDs must be equal for two breadcrumbs to be equal.
+ * @param BreadCrumb A breadcrumb.
+ * @return boolean The result of the equality test.
+ */
+ public boolean equals(BreadCrumb b)
+ {
+ return ((url_.equals(b.getURL())) && (perspectiveId_ == b.getPerspectiveId()));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Controller.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Controller.java
new file mode 100644
index 000000000..355bce7ad
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Controller.java
@@ -0,0 +1,225 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.ActionEngine;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+import javax.servlet.*;
+
+public class Controller extends MessageProvider
+{
+ private String sessionId_;
+ private String stateLocation_;
+ private String defaultFavoritesLocation_;
+ private String contextPath_;
+ private int historyDirection_;
+ private History history_;
+ private UDDIPerspective uddiPerspective_;
+ private WSILPerspective wsilPerspective_;
+ private WSDLPerspective wsdlPerspective_;
+ private FavoritesPerspective favoritesPerspective_;
+ private Perspective currentPerspective_;
+ private boolean isPerspectiveContentBlank_;
+ private ActionEngine actionEngine;
+
+ // WSDL Browser
+ private int wsdlType_;
+
+ public Controller()
+ {
+ super("explorer");
+ contextPath_ = null;
+ stateLocation_ = null;
+ history_ = new History();
+ uddiPerspective_ = new UDDIPerspective(this);
+ wsilPerspective_ = new WSILPerspective(this);
+ wsdlPerspective_ = new WSDLPerspective(this);
+ favoritesPerspective_ = new FavoritesPerspective(this);
+ // Set the default perspective to UDDI.
+ currentPerspective_ = uddiPerspective_;
+ historyDirection_ = ActionInputs.JUMP_BACK;
+ wsdlType_ = ActionInputs.WSDL_TYPE_SERVICE_INTERFACE;
+ isPerspectiveContentBlank_ = true;
+ actionEngine = new ActionEngine(this);
+ }
+
+ public final void setStateLocation(String stateLocation)
+ {
+ stateLocation_ = stateLocation;
+ }
+
+ public final void setDefaultFavoritesLocation(String defaultFavoritesLocation)
+ {
+ defaultFavoritesLocation_ = defaultFavoritesLocation;
+ }
+
+ // This method should be called immediately after the Controller bean is instantiated.
+ private final void setContextPath(String contextPath)
+ {
+ if (contextPath_ == null)
+ contextPath_ = contextPath;
+ }
+
+ public final String getPathWithContext(String relativePath)
+ {
+ if (relativePath == null)
+ return relativePath;
+ StringBuffer path = new StringBuffer(relativePath);
+ if (contextPath_ != null)
+ path.insert(0,'/').insert(0,contextPath_);
+ return path.toString();
+ }
+
+ public final String getSessionId()
+ {
+ return sessionId_;
+ }
+
+ public final String getContextPath()
+ {
+ return contextPath_;
+ }
+
+ public final String getServletEngineStateLocation() {
+ return stateLocation_;
+ }
+
+ public final String getDefaultFavoritesLocation () {
+ return defaultFavoritesLocation_;
+ }
+
+ public final void init(String sessionId,ServletContext application,String contextPath)
+ {
+ sessionId_ = sessionId;
+ setContextPath(contextPath);
+ uddiPerspective_.initPerspective(application);
+ wsilPerspective_.initPerspective(application);
+ wsdlPerspective_.initPerspective(application);
+ favoritesPerspective_.initPerspective(application);
+ }
+
+ // Setter for the current perspective.
+ public final void setCurrentPerspective(int perspective)
+ {
+ switch (perspective)
+ {
+ case ActionInputs.PERSPECTIVE_UDDI:
+ currentPerspective_ = uddiPerspective_;
+ break;
+ case ActionInputs.PERSPECTIVE_WSIL:
+ currentPerspective_ = wsilPerspective_;
+ break;
+ case ActionInputs.PERSPECTIVE_WSDL:
+ currentPerspective_ = wsdlPerspective_;
+ break;
+ case ActionInputs.PERSPECTIVE_FAVORITES:
+ currentPerspective_ = favoritesPerspective_;
+ break;
+ }
+ }
+
+ // Getter for the current perspective.
+ public final Perspective getCurrentPerspective()
+ {
+ return currentPerspective_;
+ }
+
+ // Getter for the UDDI perspective.
+ public final UDDIPerspective getUDDIPerspective()
+ {
+ return uddiPerspective_;
+ }
+
+ // Getter for the WSIL perspective.
+ public final WSILPerspective getWSILPerspective()
+ {
+ return wsilPerspective_;
+ }
+
+ // Getter for the WSDL perspective.
+ public final WSDLPerspective getWSDLPerspective()
+ {
+ return wsdlPerspective_;
+ }
+
+ // Getter for the Favorites perspective.
+ public final FavoritesPerspective getFavoritesPerspective() {
+ return favoritesPerspective_;
+ }
+
+ // Getter for the action engine
+ public final ActionEngine getActionEngine() {
+ return actionEngine;
+ }
+
+ public final boolean addToHistory(int perspectiveId,String url)
+ {
+ if (url != null)
+ return history_.addBreadCrumb(new BreadCrumb(perspectiveId,url));
+ return false;
+ }
+
+ // Wrapper for moving forward in the history list and obtaining the breadcrumb.
+ public final BreadCrumb forward()
+ {
+ historyDirection_ = ActionInputs.JUMP_FORWARD;
+ return history_.forward();
+ }
+
+ // Wrapper for moving back in the history list and obtaining the breadcrumb.
+ public final BreadCrumb back()
+ {
+ historyDirection_ = ActionInputs.JUMP_BACK;
+ return history_.back();
+ }
+
+ public final int getHistoryDirection()
+ {
+ return historyDirection_;
+ }
+
+ public final void processStaleBreadCrumb()
+ {
+ history_.removeCurrentBreadCrumb();
+ }
+
+ // WSDL Browser
+ public final void setWSDLType(int wsdlType)
+ {
+ wsdlType_ = wsdlType;
+ }
+
+ public final int getWSDLType()
+ {
+ return wsdlType_;
+ }
+
+ public final boolean isPerspectiveContentBlank()
+ {
+ return isPerspectiveContentBlank_;
+ }
+
+ public final void enablePerspectiveContentBlank(boolean isPerspectiveContentBlank)
+ {
+ isPerspectiveContentBlank_ = isPerspectiveContentBlank;
+ }
+
+ public final void dumpHistory()
+ {
+ history_.dump();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FolderNode.java
new file mode 100644
index 000000000..f95d0af8f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FolderNode.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+
+public abstract class FolderNode extends Node
+{
+ public FolderNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"images/folder_closed.gif");
+ }
+
+ public String getOpenImagePath()
+ {
+ return "images/folder_open.gif";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormTool.java
new file mode 100644
index 000000000..8765319bb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormTool.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+import java.util.*;
+
+public abstract class FormTool extends Tool implements FormToolPropertiesInterface
+{
+ protected FormToolProperties formToolProperties_;
+
+ public FormTool(ToolManager toolManager,String enabledImageLink,String highlightedImageLink,String alt)
+ {
+ super(toolManager,enabledImageLink,highlightedImageLink,alt,ToolTypes.FORM);
+ formToolProperties_ = new FormToolProperties();
+ initDefaultProperties();
+ }
+
+ protected void initDefaultProperties()
+ {
+ }
+
+ public final Object getProperty(Object key)
+ {
+ return formToolProperties_.getProperty(key);
+ }
+
+ public final void setProperty(Object key,Object value)
+ {
+ formToolProperties_.setProperty(key,value);
+ }
+
+ public final void removeProperty(Object key)
+ {
+ formToolProperties_.removeProperty(key);
+ }
+
+ public final void clearPropertyTable()
+ {
+ formToolProperties_.clearPropertyTable();
+ }
+
+ public final void updatePropertyTable(Hashtable newPropertyTable)
+ {
+ formToolProperties_.updatePropertyTable(newPropertyTable);
+ }
+
+ public final void setPropertyTable(Hashtable newPropertyTable)
+ {
+ formToolProperties_.setPropertyTable(newPropertyTable);
+ }
+
+ public final void flagError(Object inputKey)
+ {
+ formToolProperties_.flagError(inputKey);
+ }
+
+ public final void flagRowError(Object inputKey,int rowNumber)
+ {
+ formToolProperties_.flagRowError(inputKey,rowNumber);
+ }
+
+ public final void flagRowError(Object inputKey,Object rowId)
+ {
+ formToolProperties_.flagRowError(inputKey,rowId);
+ }
+
+ public final void clearErrors()
+ {
+ formToolProperties_.clearErrors();
+ }
+
+ public final boolean isInputValid(Object inputKey)
+ {
+ return formToolProperties_.isInputValid(inputKey);
+ }
+
+ public final boolean isRowInputValid(Object inputKey,int rowNumber)
+ {
+ return formToolProperties_.isRowInputValid(inputKey,String.valueOf(rowNumber));
+ }
+
+ // The row number may also be represented by a unique object (e.g. UUID)
+ public final boolean isRowInputValid(Object inputKey,Object rowId)
+ {
+ return formToolProperties_.isRowInputValid(inputKey,rowId);
+ }
+
+ public final String getActionLink()
+ {
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolProperties.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolProperties.java
new file mode 100644
index 000000000..09a4436ca
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolProperties.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import java.util.*;
+
+public class FormToolProperties implements FormToolPropertiesInterface
+{
+ private Hashtable propertyTable_;
+ private Hashtable errantValues_;
+
+ public FormToolProperties()
+ {
+ propertyTable_ = new Hashtable();
+ errantValues_ = new Hashtable();
+ }
+
+ public final Object getProperty(Object key)
+ {
+ return propertyTable_.get(key);
+ }
+
+ public final void setProperty(Object key,Object value)
+ {
+ propertyTable_.put(key,value);
+ }
+
+ public final void removeProperty(Object key)
+ {
+ propertyTable_.remove(key);
+ }
+
+ public final void clearPropertyTable()
+ {
+ propertyTable_.clear();
+ }
+
+ public final void updatePropertyTable(Hashtable newPropertyTable)
+ {
+ Enumeration e = newPropertyTable.keys();
+ while (e.hasMoreElements())
+ {
+ String key = (String)e.nextElement();
+ propertyTable_.put(key,newPropertyTable.get(key));
+ }
+ }
+
+ public final void setPropertyTable(Hashtable newPropertyTable)
+ {
+ clearPropertyTable();
+ updatePropertyTable(newPropertyTable);
+ }
+
+ public final void flagError(Object inputKey)
+ {
+ if (isInputValid(inputKey))
+ errantValues_.put(inputKey,Boolean.TRUE);
+ }
+
+ public final void flagRowError(Object inputKey,int rowNumber)
+ {
+ flagRowError(inputKey,String.valueOf(rowNumber));
+ }
+
+ public final void flagRowError(Object inputKey,Object rowId)
+ {
+ Object errorObject = errantValues_.get(inputKey);
+ Hashtable rowHash;
+ if (errorObject instanceof Hashtable)
+ rowHash = (Hashtable)errorObject;
+ else
+ rowHash = new Hashtable();
+ rowHash.put(rowId,Boolean.TRUE);
+ errantValues_.put(inputKey,rowHash);
+ }
+
+ public final void clearErrors()
+ {
+ errantValues_.clear();
+ }
+
+ public final boolean isInputValid(Object inputKey)
+ {
+ return (errantValues_.get(inputKey) == null);
+ }
+
+ public final boolean isRowInputValid(Object inputKey,int rowNumber)
+ {
+ return isRowInputValid(inputKey,String.valueOf(rowNumber));
+ }
+
+ public final boolean isRowInputValid(Object inputKey,Object rowId)
+ {
+ Hashtable rowHash = (Hashtable)errantValues_.get(inputKey);
+ if (rowHash == null)
+ return true;
+ return (rowHash.get(rowId) == null);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolPropertiesInterface.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolPropertiesInterface.java
new file mode 100644
index 000000000..a5926cfb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/FormToolPropertiesInterface.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import java.util.*;
+
+public abstract interface FormToolPropertiesInterface
+{
+ // Getter and Setter for a property.
+ public abstract Object getProperty(Object key);
+ public abstract void setProperty(Object key,Object value);
+ public abstract void removeProperty(Object key);
+
+ // Property table operators.
+ public abstract void clearPropertyTable();
+ public abstract void updatePropertyTable(Hashtable propertyTable);
+ public abstract void setPropertyTable(Hashtable propertyTable);
+
+ // Error handling.
+ public abstract void flagError(Object inputKey);
+ public abstract void flagRowError(Object inputKey,int rowNumber);
+ public abstract void flagRowError(Object inputKey,Object rowId);
+ public abstract void clearErrors();
+ public abstract boolean isInputValid(Object inputKey);
+ public abstract boolean isRowInputValid(Object inputKey,int rowNumber);
+ public abstract boolean isRowInputValid(Object inputKey,Object rowId);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/History.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/History.java
new file mode 100644
index 000000000..5fe2251a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/History.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import java.util.*;
+
+// A class representing a Vector of breadcrumbs. A position index is used
+// to navigate through the data structure.
+public class History
+{
+ private Vector items_;
+ private int position_;
+
+ public History()
+ {
+ items_ = new Vector();
+ position_ = -1;
+ }
+
+ // Add a new breadcrumb to the history list. When adding a new breadcrumb
+ // within the current list, all breadcrumbs after the newly added one are
+ // removed.
+ public boolean addBreadCrumb(BreadCrumb b)
+ {
+ int numberOfItems = items_.size();
+ if (numberOfItems == 0)
+ {
+ position_++;
+ items_.addElement(b);
+ return true;
+ }
+ else
+ {
+ BreadCrumb currentBreadCrumb = (BreadCrumb)items_.elementAt(position_);
+ if (!currentBreadCrumb.equals(b))
+ {
+ position_++;
+ items_.insertElementAt(b,position_);
+ for (int i=items_.size()-1;i>position_;i--)
+ items_.removeElementAt(i);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // Move forward within the history list and obtain the breadcrumb.
+ public BreadCrumb forward()
+ {
+ if (position_ < items_.size()-1)
+ {
+ position_++;
+ BreadCrumb b = (BreadCrumb)items_.elementAt(position_);
+ return b;
+ }
+ return null;
+ }
+
+ // Move back within the history list and obtain the breadcrumb.
+ public BreadCrumb back()
+ {
+ if (position_ > 0)
+ {
+ position_--;
+ BreadCrumb b = (BreadCrumb)items_.elementAt(position_);
+ return b;
+ }
+ return null;
+ }
+
+ public void removeCurrentBreadCrumb()
+ {
+ items_.removeElementAt(position_);
+ if (position_ > items_.size()-1)
+ position_--;
+ }
+
+ public void dump()
+ {
+ for (int i=0;i<items_.size();i++)
+ {
+ BreadCrumb b = (BreadCrumb)items_.elementAt(i);
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToFileSystemTool.java
new file mode 100644
index 000000000..9b53c4eb9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToFileSystemTool.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public abstract class ImportToFileSystemTool extends ActionTool {
+ public ImportToFileSystemTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/import_fs_enabled.gif", "images/import_fs_highlighted.gif", alt);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToWorkbenchTool.java
new file mode 100644
index 000000000..af740540f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ImportToWorkbenchTool.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public abstract class ImportToWorkbenchTool extends FormTool {
+ public ImportToWorkbenchTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/import_to_workbench_enabled.gif", "images/import_to_workbench_highlighted.gif", alt);
+ }
+
+ public String getFormLink() {
+ return "forms/ImportToWorkbenchForm.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchOptionsManager.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchOptionsManager.java
new file mode 100644
index 000000000..432bf703d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchOptionsManager.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * 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.perspective;
+
+import java.util.Hashtable;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
+
+import org.eclipse.wst.ws.internal.explorer.LaunchOptions;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+public class LaunchOptionsManager
+{
+ private static LaunchOptionsManager instance_;
+
+ private Hashtable optionsTable_;
+
+ private LaunchOptionsManager()
+ {
+ optionsTable_ = new Hashtable();
+ }
+
+ public static LaunchOptionsManager getInstance()
+ {
+ if (instance_ == null)
+ instance_ = new LaunchOptionsManager();
+ return instance_;
+ }
+
+ public synchronized void manage(String key, Object value, ServletContext application)
+ {
+ if (value instanceof String)
+ manageSession(key, (String)value, application);
+ else if (value instanceof Hashtable)
+ manageOptions(key, (Hashtable)value, application);
+ }
+
+ private void manageSession(String key, String sessionId, ServletContext application)
+ {
+ Object obj = optionsTable_.remove(key);
+ if (obj != null && (obj instanceof Hashtable))
+ loadOptions(sessionId, (Hashtable)obj, application);
+ else
+ optionsTable_.put(key, sessionId);
+ }
+
+ private void manageOptions(String key, Hashtable options, ServletContext application)
+ {
+ Object obj = optionsTable_.remove(key);
+ if (obj != null && (obj instanceof String))
+ loadOptions((String)obj, options, application);
+ else
+ optionsTable_.put(key, options);
+ }
+
+ private void loadOptions(String sessionId, Hashtable options, ServletContext application)
+ {
+ HttpSession httpSession = (HttpSession)application.getAttribute(sessionId);
+ if (httpSession != null)
+ {
+ Controller controller = (Controller)httpSession.getAttribute("controller");
+ String[] stateLocations = (String[])options.get(LaunchOptions.STATE_LOCATION);
+ String[] defaultFavoritesLocations = (String[])options.get(LaunchOptions.DEFAULT_FAVORITES_LOCATION);
+ String[] inquiryURLs = (String[])options.get(LaunchOptions.INQUIRY_URL);
+ String[] publishURLs = (String[])options.get(LaunchOptions.PUBLISH_URL);
+ String[] serviceNames = (String[])options.get(LaunchOptions.SERVICE_NAME);
+ String[] serviceKeys = (String[])options.get(LaunchOptions.SERVICE_KEY);
+ String[] wsdlURLs = (String[])options.get(LaunchOptions.WSDL_URL);
+ String[] endpoints = (String[])options.get(LaunchOptions.WEB_SERVICE_ENDPOINT);
+ String[] serviceQNameStrings = (String[])options.get(LaunchOptions.SERVICE_QNAME_STRING);
+ String[] bindingNameStrings = (String[])options.get(LaunchOptions.BINDING_NAME_STRING);
+ String stateLocation = (stateLocations == null || stateLocations.length == 0) ? null : stateLocations[0];
+ controller.setStateLocation(stateLocation);
+ String defaultFavoritesLocation = (defaultFavoritesLocations == null || defaultFavoritesLocations.length == 0) ? null : defaultFavoritesLocations[0];
+ controller.setDefaultFavoritesLocation(defaultFavoritesLocation);
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ uddiPerspective.preloadUDDIRegistries(inquiryURLs, publishURLs);
+ uddiPerspective.preloadServices(inquiryURLs,serviceNames,serviceKeys);
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ wsdlPerspective.preloadWSDL(wsdlURLs);
+ wsdlPerspective.preloadEndpoints(wsdlURLs, endpoints);
+ wsdlPerspective.preselectServiceOrBinding(wsdlURLs,serviceQNameStrings,bindingNameStrings);
+ }
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchWebServiceWizardTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchWebServiceWizardTool.java
new file mode 100644
index 000000000..1b3ea8d02
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/LaunchWebServiceWizardTool.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public abstract class LaunchWebServiceWizardTool extends FormTool {
+ public LaunchWebServiceWizardTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/launch_wswizard_enabled.gif", "images/launch_wswizard_highlighted.gif", alt);
+ }
+
+ public String getFormLink() {
+ return "forms/LaunchWebServiceWizardForm.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageBundle.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageBundle.java
new file mode 100644
index 000000000..ce8c8ca48
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageBundle.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import java.util.ResourceBundle;
+import java.util.MissingResourceException;
+
+/**
+* An message bundle is a collection of messages drawn from some
+* set of properties.
+*/
+public class MessageBundle
+{
+ private ResourceBundle fResourceBundle;
+
+ /**
+ * Constructs a new MessageBundle from the given ResourceBundle.
+ */
+ public MessageBundle ( ResourceBundle resourceBundle )
+ {
+ fResourceBundle = resourceBundle;
+ }
+
+ /**
+ * Returns the message identified by messageId.
+ * @param messageId The message ID.
+ * @return String The message text.
+ */
+ public String getMessage ( String messageId )
+ {
+ try
+ {
+ return fResourceBundle.getString(messageId);
+ }
+ catch (MissingResourceException e)
+ {
+ return messageId;
+ }
+ }
+
+ /**
+ * Returns the message identified by messageId.
+ * @param messageId The message ID.
+ * @param sub A substitution value for "%1" in the message.
+ * @return String The message text.
+ */
+ public String getMessage ( String messageId, String sub )
+ {
+ String[] s = {sub};
+ return getMessage(messageId,s);
+ }
+
+ /**
+ * Returns the message identified by messageId.
+ * @param messageId The message ID.
+ * @param sub Substitution values for "%1..%n" (sub[0]..sub[n-1]) in
+ * the message.
+ * @return String The message text.
+ */
+ public String getMessage ( String messageId, String[] sub )
+ {
+ String m = getMessage(messageId);
+ int len = m.length();
+ int max = sub.length;
+ StringBuffer b = new StringBuffer();
+ int pos = 0;
+ while (pos >= 0)
+ {
+ int pct = m.indexOf('%',pos);
+ if (pct >= 0)
+ {
+ b.append(m.substring(pos,pct));
+ pos = pct + 1;
+ if (pos < len)
+ {
+ char d = m.charAt(pos);
+ if (Character.isDigit(d) && d != '0')
+ {
+ int v = Integer.parseInt(new Character(d).toString());
+ if (v <= max)
+ {
+ b.append(sub[v-1]);
+ }
+ else
+ {
+ b.append('?');
+ }
+ pos++;
+ }
+ else
+ {
+ b.append('%');
+ b.append(d);
+ pos++;
+ }
+ }
+ else
+ {
+ b.append('%');
+ pos = -1;
+ }
+ }
+ else
+ {
+ b.append(m.substring(pos));
+ pos = -1;
+ }
+ }
+ return b.toString();
+ }
+
+ public ResourceBundle getResourceBundle()
+ {
+ return fResourceBundle;
+ }
+}
+
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageProvider.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageProvider.java
new file mode 100644
index 000000000..1395a32a7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import java.util.*;
+
+// A Class which provides String messages.
+public class MessageProvider
+{
+ protected MessageBundle messageBundle_;
+ private String messageProviderName_;
+
+ public MessageProvider(String messageBundleFileName)
+ {
+ try
+ {
+ // Load the message bundle from the WEB-INF\classes subdirectory.
+ messageProviderName_ = messageBundleFileName;
+ messageBundle_ = new MessageBundle(ResourceBundle.getBundle(messageBundleFileName));
+ }
+ catch (MissingResourceException e)
+ {
+ System.err.println("Could not load "+messageBundleFileName);
+ e.printStackTrace();
+ }
+ }
+
+ public String getMessage(String messageId)
+ {
+ return messageBundle_.getMessage(messageId);
+ }
+
+ public String getMessage(String messageId,String sub)
+ {
+ return messageBundle_.getMessage(messageId,sub);
+ }
+
+ public String getMessage(String messageId,String[] sub)
+ {
+ return messageBundle_.getMessage(messageId,sub);
+ }
+
+ public String getMessageProviderName()
+ {
+ return messageProviderName_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageQueue.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageQueue.java
new file mode 100644
index 000000000..cccfc5d24
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/MessageQueue.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import java.util.*;
+
+public class MessageQueue
+{
+ protected Vector messageList_;
+
+ public MessageQueue()
+ {
+ messageList_ = new Vector();
+ }
+
+ public void addMessage(String message)
+ {
+ messageList_.addElement(message);
+ }
+
+ public String getMessagesFromList()
+ {
+ StringBuffer messages = new StringBuffer();
+
+ if (messageList_.size()==0)
+ return "";
+
+ Enumeration e = messageList_.elements();
+ while (e.hasMoreElements())
+ {
+ String thisMessage = (String)e.nextElement();
+ messages.append(thisMessage);
+ messages.append(HTMLUtils.LINE_SEPARATOR);
+ }
+ messageList_.removeAllElements();
+ return messages.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Node.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Node.java
new file mode 100644
index 000000000..e3a2cdf68
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Node.java
@@ -0,0 +1,448 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+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.util.*;
+
+import javax.servlet.http.*;
+import java.util.*;
+
+public abstract class Node
+{
+ protected TreeElement element_;
+ protected NodeManager nodeManager_;
+ protected int nodeId_;
+ protected int nodeDepth_;
+ protected String imagePath_;
+ protected boolean isOpen_;
+ protected Vector childNodes_;
+ protected ToolManager toolManager_;
+ protected Node parent_;
+ private String anchorName_;
+ private int viewId_;
+
+ public Node(TreeElement element,NodeManager nodeManager,int nodeDepth,String imagePath)
+ {
+ element_ = element;
+ nodeManager_ = nodeManager;
+ nodeId_ = nodeManager.addToNodeTable(this);
+ nodeDepth_ = nodeDepth;
+ Controller controller = nodeManager_.getController();
+ if (imagePath == null)
+ imagePath_ = controller.getPathWithContext(NodeManager.PATH_SPACE);
+ else
+ imagePath_ = imagePath;
+ isOpen_ = true;
+ childNodes_ = new Vector();
+ toolManager_ = new ToolManager(this);
+ initTools();
+ anchorName_ = (new StringBuffer("action")).append(nodeId_).toString();
+ parent_ = null;
+ viewId_ = ActionInputs.VIEWID_DEFAULT;
+ }
+
+ /**
+ * Returns the TreeElement associated with this node.
+ * @return TreeElement The element associated with this node.
+ */
+ public TreeElement getTreeElement()
+ {
+ return element_;
+ }
+
+ /**
+ * Returns the name of the node.
+ * @return String
+ */
+ public String getNodeName()
+ {
+ return element_.getName();
+ }
+
+ /**
+ * Returns the NodeManager managing this node.
+ * @return NodeManager
+ */
+ public NodeManager getNodeManager()
+ {
+ return nodeManager_;
+ }
+
+ /**
+ * Returns the id of this node.
+ * @return int
+ */
+ public int getNodeId()
+ {
+ return nodeId_;
+ }
+
+ /**
+ * Returns the depth in the tree of this node relative to the root node
+ * @return int
+ */
+ public int getNodeDepth()
+ {
+ return nodeDepth_;
+ }
+
+ /**
+ * Set the path of the image representing this class of Node.
+ * @param String The path.
+ */
+ public void setImagePath(String path)
+ {
+ imagePath_ = path;
+ }
+
+ /**
+ * Returns true if the children of this node are visible. Returns false
+ * if they are not.
+ * @return boolean
+ */
+ public boolean isOpen()
+ {
+ return isOpen_;
+ }
+
+ public boolean isVisible()
+ {
+ Node parentNode = parent_;
+ while (parentNode != null)
+ {
+ if (!parentNode.isOpen())
+ return false;
+ parentNode = parentNode.getParent();
+ }
+ return true;
+ }
+
+ /**
+ * Sets the visibility of this node's children to the specified value.
+ * Updates the NodeManager's record of the maximum depth visible in the tree.
+ * @param boolean
+ */
+ public final void setVisibilityOfChildren(boolean open)
+ {
+ isOpen_ = open;
+ nodeManager_.updateMaxDepthVisible();
+ }
+
+ /**
+ * Gets the maximum depth displayed in this node's branch of the tree
+ * Used by NodeManager for html display purposes.
+ * @return int
+ */
+ public int getMaxDepthVisible()
+ {
+ if (!isOpen_)
+ return nodeDepth_;
+ else
+ {
+ int currentDepth = nodeDepth_;
+ Enumeration e = childNodes_.elements();
+ while (e.hasMoreElements())
+ {
+ Node thisNode = (Node)e.nextElement();
+ int depth = thisNode.getMaxDepthVisible();
+ if (depth>currentDepth)
+ currentDepth=depth;
+ }
+ return currentDepth;
+ }
+ }
+
+ public final void setParent(Node node)
+ {
+ parent_ = node;
+ }
+
+ public final Node getParent()
+ {
+ return parent_;
+ }
+
+ public final void setViewId(int viewId)
+ {
+ viewId_ = viewId;
+ }
+
+ public final int getViewId()
+ {
+ return viewId_;
+ }
+
+ public final int getViewToolId()
+ {
+ ToolManager viewToolManager = getViewToolManager();
+ if (viewToolManager != null)
+ return viewToolManager.getSelectedToolId();
+ return ActionInputs.VIEWTOOLID_DEFAULT;
+ }
+
+ /**
+ * Adds the specified node as a child of this node.
+ * @param Node The child being added.
+ * @return boolean Always true.
+ */
+ public final boolean addChild(Node childNode)
+ {
+ childNode.setParent(this);
+ childNodes_.addElement(childNode);
+ nodeManager_.updateMaxDepthVisible();
+ return true;
+ }
+
+ /**
+ * Returns the child nodes of this node. If this node has no children, an
+ * empty vector is returned.
+ * @return Vector
+ */
+ public Vector getChildNodes()
+ {
+ return childNodes_;
+ }
+
+ public final Node getChildNode(TreeElement element)
+ {
+ Enumeration e = childNodes_.elements();
+ while (e.hasMoreElements())
+ {
+ Node presentNode = (Node)e.nextElement();
+ if (presentNode.getTreeElement() == element)
+ return presentNode;
+ }
+ return null;
+ }
+
+ public final void removeChildNodes(boolean isEntry)
+ {
+ int numberOfChildNodes = childNodes_.size();
+ for (int i=numberOfChildNodes-1;i>=0;i--)
+ {
+ Node childNode = (Node)childNodes_.elementAt(i);
+ childNode.removeChildNodes(false);
+ nodeManager_.removeFromNodeTable(childNode.getNodeId());
+ }
+ if (numberOfChildNodes > 0)
+ {
+ childNodes_.removeAllElements();
+ if (isEntry)
+ nodeManager_.updateMaxDepthVisible();
+ }
+ }
+
+ public final boolean removeChildNode(TreeElement element)
+ {
+ Node childNode = getChildNode(element);
+ if (childNode != null)
+ {
+ int childNodeId = childNode.getNodeId();
+ if (nodeManager_.getSelectedNodeId() == childNodeId)
+ nodeManager_.setSelectedNodeId(nodeId_);
+ childNodes_.removeElement(childNode);
+ nodeManager_.removeFromNodeTable(childNodeId);
+ nodeManager_.updateMaxDepthVisible();
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Get the name of the HTML anchor associated with this node.
+ * @return String The name of the anchor.
+ */
+ public String getAnchorName()
+ {
+ return anchorName_;
+ }
+
+ public ToolManager getToolManager()
+ {
+ return toolManager_;
+ }
+
+ public ToolManager getViewToolManager()
+ {
+ if (viewId_ != ActionInputs.VIEWID_DEFAULT)
+ {
+ ViewTool viewTool = (ViewTool)toolManager_.getSelectedTool();
+ return viewTool.getToolManager(viewId_);
+ }
+ return null;
+ }
+
+ public ToolManager getCurrentToolManager()
+ {
+ ToolManager toolManager = getViewToolManager();
+ if (toolManager == null)
+ toolManager = toolManager_;
+ return toolManager;
+ }
+
+ protected abstract void initTools();
+
+ protected abstract String getToggleNodeActionHref();
+
+ protected String getToggleNodeActionTarget()
+ {
+ return FrameNames.PERSPECTIVE_WORKAREA;
+ }
+
+ protected void addToggle(HttpServletResponse response,StringBuffer treeView,boolean isLastChild)
+ {
+ if (nodeDepth_ != 1)
+ {
+ treeView.append(" <td align=\"left\" width=16 height=16 nowrap>");
+ String toggleImageTag;
+ if (childNodes_.size() > 0)
+ {
+ // <a href="..." target="...">toggleImageTag</a>
+ String href = nodeManager_.getController().getPathWithContext(getToggleNodeActionHref());
+ if (isOpen_)
+ {
+ String toggleAlt = nodeManager_.getController().getMessage("ALT_CLOSE");
+ if (isLastChild)
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_MINUS_LAST),toggleAlt,"16","16",null);
+ else
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_MINUS_NOTLAST),toggleAlt,"16","16",null);
+ }
+ else
+ {
+ String toggleAlt = nodeManager_.getController().getMessage("ALT_OPEN");
+ if (isLastChild)
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_PLUS_LAST),toggleAlt,"16","16",null);
+ else
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_PLUS_NOTLAST),toggleAlt,"16","16",null);
+ }
+ String linkTag = HTMLUtils.getHTMLLinkTag(response,href,getToggleNodeActionTarget(),String.valueOf(nodeId_),toggleImageTag,null);
+ treeView.append(linkTag);
+ }
+ else
+ {
+ // <img...>
+ if (isLastChild)
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_LINE_LAST),"","16","16",null);
+ else
+ toggleImageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_LINE_NOTLAST),"","16","16",null);
+ treeView.append(toggleImageTag);
+ }
+ treeView.append("</td>").append(HTMLUtils.LINE_SEPARATOR);
+ }
+ }
+
+ protected abstract String getLinkActionHref();
+
+ protected String getLinkActionTarget()
+ {
+ return FrameNames.PERSPECTIVE_WORKAREA;
+ }
+
+ public String getOpenImagePath()
+ {
+ return imagePath_;
+ }
+
+ public String getClosedImagePath()
+ {
+ return imagePath_;
+ }
+
+ protected void addHTMLLabel(HttpServletResponse response,StringBuffer treeView,boolean isLastChild)
+ {
+ // <a href="..." target="..." onClick="selectNode('...')"><img...></a>
+ Hashtable additionalAttributes = new Hashtable();
+ additionalAttributes.put("name",anchorName_);
+ String imagePath = (nodeManager_.getSelectedNodeId() == nodeId_)?getOpenImagePath():getClosedImagePath();
+
+ String imageTag = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(imagePath),"","16","16",additionalAttributes);
+ String baseHref = getLinkActionHref();
+ String href = ((baseHref == null)?baseHref:nodeManager_.getController().getPathWithContext(baseHref));
+ String target = getLinkActionTarget();
+ additionalAttributes.clear();
+
+ treeView.append(" <td align=\"left\" width=16 height=16 nowrap>");
+ if (href != null)
+ treeView.append(HTMLUtils.getHTMLLinkTag(response,href,target,null,imageTag,additionalAttributes));
+ else
+ treeView.append(imageTag);
+ treeView.append("</td>").append(HTMLUtils.LINE_SEPARATOR);
+ treeView.append(" <td align=\"left\" width=3 height=10 nowrap>").append(HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_SPACE),"","3","10",null)).append("</td>").append(HTMLUtils.LINE_SEPARATOR);
+
+ // <a name="..." href="..." target="...">label</a>
+ treeView.append(" <td align=\"left\" nowrap>").append(HTMLUtils.LINE_SEPARATOR);
+ treeView.append(" ");
+ if (href != null)
+ {
+ String textAnchorClass;
+ if (nodeManager_.getSelectedNodeId() == nodeId_)
+ textAnchorClass="selectedTextAnchor";
+ else
+ textAnchorClass="unselectedTextAnchor";
+ additionalAttributes.put("class",textAnchorClass);
+ treeView.append(HTMLUtils.getHTMLLinkTag(response,href,target,anchorName_,getNodeName(),additionalAttributes));
+ }
+ else
+ treeView.append("<strong>").append(getNodeName()).append("</strong>");
+ treeView.append(HTMLUtils.LINE_SEPARATOR).append(" </td>").append(HTMLUtils.LINE_SEPARATOR);
+ }
+
+ public void renderNode(HttpServletResponse response,StringBuffer treeView,String prefixColumns,boolean isLastChild)
+ {
+ String space_16x16 = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_SPACE),"","16","16",null);
+ String line_16x16 = HTMLUtils.getHTMLImageTag(response,nodeManager_.getController().getPathWithContext(NodeManager.PATH_LINE),"","16","16",null);
+
+ // Use border=1 to help with debugging.
+ treeView.append("<table cellspacing=0 cellpadding=0 border=0>").append(HTMLUtils.LINE_SEPARATOR);
+ treeView.append(" <tr>").append(HTMLUtils.LINE_SEPARATOR);
+ treeView.append(" <td align=\"left\" width=16 height=16 nowrap>").append(space_16x16).append("</td>").append(HTMLUtils.LINE_SEPARATOR);
+ StringBuffer newPrefixColumns = new StringBuffer(prefixColumns);
+ if (nodeDepth_ >= 2)
+ {
+ if (prefixColumns.length() > 0)
+ treeView.append(prefixColumns).append(HTMLUtils.LINE_SEPARATOR);
+ // generate a new prefix columns.
+ newPrefixColumns.append(" <td align=\"left\" width=16 height=16 nowrap>");
+ if (isLastChild)
+ newPrefixColumns.append(space_16x16);
+ else
+ newPrefixColumns.append(line_16x16);
+ newPrefixColumns.append("</td>").append(HTMLUtils.LINE_SEPARATOR);
+ }
+ addToggle(response,treeView,isLastChild);
+ addHTMLLabel(response,treeView,isLastChild);
+ treeView.append(" </tr>").append(HTMLUtils.LINE_SEPARATOR);
+ treeView.append("</table>").append(HTMLUtils.LINE_SEPARATOR);
+ int numberOfChildNodes = childNodes_.size();
+ if (numberOfChildNodes > 0)
+ {
+ if (isOpen_)
+ {
+ for (int i=0;i<numberOfChildNodes-1;i++)
+ {
+ Node childNode = (Node)childNodes_.elementAt(i);
+ childNode.renderNode(response,treeView,newPrefixColumns.toString(),false);
+ }
+ Node lastChildNode = (Node)childNodes_.elementAt(numberOfChildNodes-1);
+ lastChildNode.renderNode(response,treeView,newPrefixColumns.toString(),true);
+ }
+ }
+ }
+
+ // For sorting purposes.
+ public final String toString()
+ {
+ return getNodeName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/NodeManager.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/NodeManager.java
new file mode 100644
index 000000000..edbe5ae85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/NodeManager.java
@@ -0,0 +1,251 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import javax.servlet.http.*;
+import java.util.*;
+
+public class NodeManager
+{
+ // paths to icon images
+ public static final String PATH_PLUS_NOTLAST = "images/plus_notlast.gif";
+ public static final String PATH_PLUS_LAST = "images/plus_last.gif";
+ public static final String PATH_MINUS_NOTLAST = "images/minus_notlast.gif";
+ public static final String PATH_MINUS_LAST = "images/minus_last.gif";
+ public static final String PATH_LINE = "images/line.gif";
+ public static final String PATH_LINE_NOTLAST = "images/line_notlast.gif";
+ public static final String PATH_LINE_LAST = "images/line_last.gif";
+ public static final String PATH_SPACE = "images/space.gif";
+
+ private Controller controller_;
+ private Node rootNode_;
+ private Hashtable nodeTable_;
+ private int focusedNodeId_;
+ private int selectedNodeId_;
+ private int previousSelectedNodeId_;
+ private int maxDepthVisible_;
+ private int nextId_;
+
+ public NodeManager(Controller controller)
+ {
+ controller_ = controller;
+ rootNode_ = null;
+ nodeTable_ = new Hashtable();
+ focusedNodeId_ = -1;
+ selectedNodeId_ = -1;
+ previousSelectedNodeId_ = -1;
+ maxDepthVisible_ = 1;
+ nextId_ = 0;
+ }
+
+ /**
+ * Hook for the controller.
+ * @return Controller The perspective controller.
+ */
+ public Controller getController()
+ {
+ return controller_;
+ }
+
+ /**
+ * Sets the root node of the tree.
+ * @param rootNode The node being designated as the root node.
+ */
+ public void setRootNode(Node rootNode)
+ {
+ rootNode_ = rootNode;
+ }
+
+ /**
+ * Returns the root node of the tree managed by this NodeManager.
+ * @return Node The root node.
+ */
+ public Node getRootNode()
+ {
+ return rootNode_;
+ }
+
+ /**
+ * @param Integer The id of the node being added.
+ * @param Node The node being added.
+ * @return The nodeId assigned to this node.
+ */
+ public int addToNodeTable(Node node)
+ {
+ int assignedNodeId = nextId_;
+ nodeTable_.put(String.valueOf(assignedNodeId),node);
+ nextId_++;
+ return assignedNodeId;
+ }
+
+ public void removeFromNodeTable(int nodeId)
+ {
+ Vector nodesToRemove = new Vector();
+ Node node = getNode(nodeId);
+ gatherNodesToRemove(nodesToRemove, node);
+ for (Iterator it = nodesToRemove.iterator(); it.hasNext();) {
+ nodeTable_.remove(String.valueOf(((Node)it.next()).getNodeId()));
+ }
+ }
+
+ private void gatherNodesToRemove(Vector nodesToRemove, Node node) {
+ if (node != null) {
+ nodesToRemove.add(node);
+ Vector childNodes = node.getChildNodes();
+ for (Iterator it = childNodes.iterator(); it.hasNext();) {
+ gatherNodesToRemove(nodesToRemove, (Node)it.next());
+ }
+ }
+ }
+
+ /**
+ * Returns the depth of the deepest visible node in the tree.
+ * @return int
+ */
+ public int getMaxDepthVisible()
+ {
+ return maxDepthVisible_;
+ }
+
+ /**
+ * Updates the depth of the deepest visible node in the tree. Nodes
+ * must call this when the visibility of their children changes.
+ * (e.g. expand/collapse of a parent node).
+ */
+ public void updateMaxDepthVisible()
+ {
+ if (rootNode_ != null)
+ maxDepthVisible_ = rootNode_.getMaxDepthVisible();
+ }
+
+ /**
+ * Returns the next available id for a newly created node.
+ * @return int
+ */
+ public int getNextNodeId()
+ {
+ return nextId_;
+ }
+
+ /**
+ * Returns the id of the currently focused node in the tree. A node
+ * becomes focused when any of the following events occur:
+ * 1) The node's icon or image are selected by a user.
+ * 2) The node's expand/collapse icon is clicked.
+ * 3) Programmatically set by the programmer.
+ * The treeview will always scroll to the current focused node when loaded.
+ * @return int The id.
+ */
+ public int getFocusedNodeId()
+ {
+ return focusedNodeId_;
+ }
+
+ /**
+ * Allows modification of the focused node.
+ * @param int The id of the node that is in focus.
+ */
+ public void setFocusedNodeId(int nodeId)
+ {
+ focusedNodeId_ = nodeId;
+ }
+
+ public Node getFocusedNode()
+ {
+ return getNode(focusedNodeId_);
+ }
+
+ /**
+ * Returns the id of the currently selected node in the tree.
+ * @return int The id.
+ */
+ public int getSelectedNodeId()
+ {
+ return selectedNodeId_;
+ }
+
+ public Node getSelectedNode()
+ {
+ return getNode(selectedNodeId_);
+ }
+
+ /**
+ * Retrieve a reference to a Node in this manager's node table.
+ * @return Node The node.
+ */
+ public Node getNode(int nodeId)
+ {
+ return (Node)nodeTable_.get(String.valueOf(nodeId));
+ }
+
+ /**
+ * Allows modification of the selected Node. Note that setting a node to become
+ * selected automatically makes it the focused node. However, this is only a one
+ * way relationship.
+ * @param int The id of the node that is being selected.
+ */
+ public void setSelectedNodeId(int nodeId)
+ {
+ previousSelectedNodeId_ = selectedNodeId_;
+ selectedNodeId_ = nodeId;
+ setFocusedNodeId(selectedNodeId_);
+ }
+
+ public int getPreviousSelectedNodeId()
+ {
+ return previousSelectedNodeId_;
+ }
+
+ public Node getPreviousSelectedNode()
+ {
+ return (Node)nodeTable_.get(String.valueOf(previousSelectedNodeId_));
+ }
+
+ /**
+ * Render the HTML tree view for this node.
+ * @param HttpServletResponse For encoding URLs.
+ * @return String The HTML representing the tree view.
+ */
+ public String renderTreeView(HttpServletResponse response)
+ {
+ StringBuffer treeView = new StringBuffer();
+ rootNode_.renderNode(response,treeView,"",false);
+ return treeView.toString();
+ }
+
+ /**
+ * Make the provided node is visible by ensuring that its ancestors are visible.
+ * @param Node The node to be made visible.
+ * @return boolean Indicator for whether or not the treeview needs refreshing (i.e. an ancestor was not visible).
+ */
+ public final boolean makeNodeVisible(Node node)
+ {
+ boolean requiresTreeViewRefresh = false;
+ while ((node = node.getParent()) != null)
+ {
+ if (!node.isOpen())
+ {
+ requiresTreeViewRefresh = true;
+ node.setVisibilityOfChildren(true);
+ }
+ }
+ return requiresTreeViewRefresh;
+ }
+
+ /**
+ * Make the currently selected node visible by ensuring that its ancestors are visible.
+ */
+ public final boolean makeSelectedNodeVisible()
+ {
+ return makeNodeVisible(getSelectedNode());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Perspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Perspective.java
new file mode 100644
index 000000000..bbe34a0f7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Perspective.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.perspective;
+
+import javax.servlet.*;
+
+public abstract class Perspective extends MessageProvider
+{
+ protected Controller controller_;
+ protected MessageQueue messageQueue_;
+
+ public Perspective(String messageBundleFileName,Controller controller)
+ {
+ super(messageBundleFileName);
+ controller_ = controller;
+ messageQueue_ = new MessageQueue();
+ }
+
+ public MessageQueue getMessageQueue()
+ {
+ return messageQueue_;
+ }
+
+ public Controller getController()
+ {
+ return controller_;
+ }
+
+ public abstract String getPanesFile();
+ public abstract String getFramesetsFile();
+ public abstract String getProcessFramesetsForm();
+
+ public abstract String getTreeContentVar();
+ public abstract String getTreeContentPage();
+ public abstract String getPropertiesContainerVar();
+ public abstract String getPropertiesContainerPage();
+ public abstract String getStatusContentVar();
+ public abstract String getStatusContentPage();
+
+ public abstract String getSwitchPerspectiveFormActionLink(int targetPerspectiveId,boolean forHistory);
+ public abstract String getPerspectiveContentPage();
+ public abstract int getPerspectiveId();
+
+ // This should only be called after the perspective has been successfully instantiated.
+ public abstract void initPerspective(ServletContext application);
+
+ // Node manager for the navigator/tree content page
+ public abstract NodeManager getNodeManager();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SectionHeaderInfo.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SectionHeaderInfo.java
new file mode 100644
index 000000000..105f395c3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SectionHeaderInfo.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public class SectionHeaderInfo
+{
+ private String containerId_;
+ private boolean dynamic_;
+ private Object otherProperties_;
+
+ public SectionHeaderInfo()
+ {
+ clear();
+ }
+
+ public final void clear()
+ {
+ containerId_ = "";
+ dynamic_ = true;
+ otherProperties_ = null;
+ }
+
+ public final void setContainerId(String containerId)
+ {
+ containerId_ = containerId;
+ }
+
+ public final String getContainerId()
+ {
+ return containerId_;
+ }
+
+ public final void enableDynamic(boolean isEnabled)
+ {
+ dynamic_ = isEnabled;
+ }
+
+ public final boolean isDynamic()
+ {
+ return dynamic_;
+ }
+
+ public final void setOtherProperties(Object object)
+ {
+ otherProperties_ = object;
+ }
+
+ public final Object getOtherProperties()
+ {
+ return otherProperties_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SetDefaultViewTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SetDefaultViewTool.java
new file mode 100644
index 000000000..b3ef1e7a0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/SetDefaultViewTool.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public abstract class SetDefaultViewTool extends ActionTool
+{
+ public SetDefaultViewTool(ToolManager viewToolManager,String alt)
+ {
+ super(viewToolManager,"images/top_enabled.gif","images/top_highlighted.gif",alt);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Tool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Tool.java
new file mode 100644
index 000000000..f7dd679bb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/Tool.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import javax.servlet.http.*;
+
+import java.util.*;
+
+// A class for representing toolbar tools.
+public abstract class Tool
+{
+ protected ToolManager toolManager_;
+ private String enabledImageLink_;
+ private String highlightedImageLink_;
+ private String alt_;
+ protected int toolId_;
+ protected byte toolType_;
+
+ public Tool(ToolManager toolManager,String enabledImageLink,String highlightedImageLink,String alt,byte toolType)
+ {
+ toolManager_ = toolManager;
+ enabledImageLink_ = enabledImageLink;
+ highlightedImageLink_ = highlightedImageLink;
+ alt_ = alt;
+ toolId_ = toolManager_.addTool(this);
+ toolType_ = toolType;
+ }
+
+ public abstract String getSelectToolActionHref(boolean forHistory);
+
+ public String getSelectToolActionTarget()
+ {
+ return FrameNames.PERSPECTIVE_WORKAREA;
+ }
+
+ private final void generateOnMouseValue(StringBuffer value,HttpServletResponse response,String fullImageLink)
+ {
+ value.append("src='").append(response.encodeURL(fullImageLink)).append('\'');
+ }
+
+ public String renderTool(HttpServletResponse response,Controller controller)
+ {
+ Hashtable jsImageProperties = new Hashtable();
+ StringBuffer propertyValue = new StringBuffer();
+ String fullEnabledImageLink = controller.getPathWithContext(enabledImageLink_);
+ generateOnMouseValue(propertyValue,response,fullEnabledImageLink);
+ int propertyValueLength = propertyValue.length();
+ jsImageProperties.put("class","normal");
+ jsImageProperties.put("onMouseOut",propertyValue.append(";mouseout(this)").toString());
+ propertyValue.delete(propertyValueLength,propertyValue.length());
+ jsImageProperties.put("onMouseUp",propertyValue.append(";mouseup(this)").toString());
+ propertyValue.setLength(0);
+ generateOnMouseValue(propertyValue,response,controller.getPathWithContext(highlightedImageLink_));
+ propertyValueLength = propertyValue.length();
+ jsImageProperties.put("onMouseOver",propertyValue.append(";mouseover(this)").toString());
+ propertyValue.delete(propertyValueLength,propertyValue.length());
+ jsImageProperties.put("onMouseDOwn",propertyValue.append(";mousedown(this)").toString());
+
+ String imageTag = HTMLUtils.getHTMLImageTag(response,fullEnabledImageLink,alt_,"16","16",jsImageProperties);
+ return HTMLUtils.getHTMLLinkTag(response,controller.getPathWithContext(getSelectToolActionHref(false)),getSelectToolActionTarget(),null,imageTag,null);
+ }
+
+ public final ToolManager getToolManager()
+ {
+ return toolManager_;
+ }
+
+ public final int getToolId()
+ {
+ return toolId_;
+ }
+
+ public final byte getToolType()
+ {
+ return toolType_;
+ }
+
+ public final String getEnabledImageLink()
+ {
+ return enabledImageLink_;
+ }
+
+ public final String getHighlightedImageLink()
+ {
+ return highlightedImageLink_;
+ }
+
+ public final String getAltText()
+ {
+ return alt_;
+ }
+
+ public abstract String getFormLink();
+ public abstract String getActionLink();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ToolManager.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ToolManager.java
new file mode 100644
index 000000000..260b109b3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ToolManager.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * 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.perspective;
+
+import java.util.*;
+
+public class ToolManager
+{
+ private Vector tools_;
+ private int selectedToolId_;
+ private Node node_;
+
+ public ToolManager(Node node)
+ {
+ tools_ = new Vector();
+ selectedToolId_ = 0;
+ node_ = node;
+ }
+
+ public final int getSelectedToolId()
+ {
+ return selectedToolId_;
+ }
+
+ public final int setSelectedToolId(int toolId)
+ {
+ if (toolId >= 0 && toolId < tools_.size())
+ selectedToolId_ = toolId;
+ return selectedToolId_;
+ }
+
+ public final int addTool(Tool tool)
+ {
+ tools_.addElement(tool);
+ return tools_.size()-1;
+ }
+
+ public final Tool getTool(int toolId)
+ {
+ if (toolId >=0 && toolId < getNumberOfTools())
+ return (Tool)tools_.elementAt(toolId);
+ return null;
+ }
+
+ public final List getTools()
+ {
+ return tools_;
+ }
+
+ public final Tool getSelectedTool()
+ {
+ if (selectedToolId_ >=0 && selectedToolId_ < getNumberOfTools())
+ return (Tool)tools_.elementAt(selectedToolId_);
+ return null;
+ }
+
+ public final int getNumberOfTools()
+ {
+ return tools_.size();
+ }
+
+ public final Node getNode()
+ {
+ return node_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ViewTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ViewTool.java
new file mode 100644
index 000000000..5dc398d6b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/perspective/ViewTool.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+
+import java.util.*;
+
+public abstract class ViewTool extends FormTool
+{
+ private Hashtable viewToolManagers_;
+
+ public ViewTool(ToolManager toolManager,String enabledImageLink,String highlightedImageLink,String alt)
+ {
+ super(toolManager,enabledImageLink,highlightedImageLink,alt);
+ toolType_ = ToolTypes.VIEW;
+ viewToolManagers_ = new Hashtable();
+ }
+
+ protected abstract void addSetDefaultViewTool(ToolManager viewToolManager,int index);
+ protected abstract void addTools(ToolManager viewToolManager,int index);
+
+ public final ToolManager createToolManager(int viewId)
+ {
+ ToolManager viewToolManager = new ToolManager(toolManager_.getNode());
+ addTools(viewToolManager,viewId);
+ addSetDefaultViewTool(viewToolManager,viewId);
+ viewToolManagers_.put(String.valueOf(viewId),viewToolManager);
+ return viewToolManager;
+ }
+
+ public final ToolManager getToolManager(int viewId)
+ {
+ return (ToolManager)(viewToolManagers_.get(String.valueOf(viewId)));
+ }
+
+ public final void clearViewToolManager(int viewId)
+ {
+ viewToolManagers_.remove(String.valueOf(viewId));
+ }
+
+ public final void clearViewToolManagers()
+ {
+ viewToolManagers_.clear();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddItemsToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddItemsToFavoritesAction.java
new file mode 100644
index 000000000..6043aebc1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddItemsToFavoritesAction.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import java.util.*;
+
+public class AddItemsToFavoritesAction extends UDDIPropertiesFormAction
+{
+ public AddItemsToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] selectedNodeIds = parser.getParameterValues(ActionInputs.NODEID);
+ // The client Javascript enforces the rule that at least one item was selected before the form can be submitted.
+ propertyTable_.put(UDDIActionInputs.SELECTED_NODEIDS,selectedNodeIds);
+ return true;
+ }
+
+ public final boolean run()
+ {
+ String[] selectedNodeIds = (String[])propertyTable_.get(UDDIActionInputs.SELECTED_NODEIDS);
+ AddToFavoritesAction action = new AddToFavoritesAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ for (int i=0;i<selectedNodeIds.length;i++)
+ {
+ propertyTable.put(ActionInputs.NODEID,selectedNodeIds[i]);
+ if (action.favoriteExists()) {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ Node node = uddiPerspective.getNavigatorManager().getNode(Integer.parseInt(selectedNodeIds[i]));
+ String nodeName = node.getNodeName();
+ uddiPerspective.getMessageQueue().addMessage(uddiPerspective.getMessage("MSG_ERROR_FAVORITE_ALREADY_EXISTS",nodeName));
+ }
+ else
+ action.run();
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddPublisherAssertionsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddPublisherAssertionsAction.java
new file mode 100644
index 000000000..91dcb6ff1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddPublisherAssertionsAction.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.*;
+import org.uddi4j.util.*;
+import org.uddi4j.response.*;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.assertion.*;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.transport.TransportException;
+
+import java.util.*;
+import java.net.*;
+
+public class AddPublisherAssertionsAction extends CommonPublisherAssertionsAction
+{
+ public AddPublisherAssertionsAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ if (registryNode_ == null)
+ return false;
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+
+ // ids from uddiObjects_table.jsp
+ String[] selectedBusIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (selectedBusIds == null || selectedBusIds.length == 0) {
+ // Synchronize client view and server model (uddiObject_table.jsp)
+ synchronizeUDDIObjectTable();
+ inputsValid = false;
+ }
+ else {
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, selectedBusIds);
+ // Synchronize client view and server model (uddiObject_table.jsp)
+ synchronizeUDDIObjectTable();
+ }
+
+ String[] assertionTypes = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE);
+ if (assertionTypes != null && assertionTypes.length > 0)
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE, assertionTypes);
+ else
+ inputsValid = false;
+
+ String[] directions = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_DIRECTION);
+ if (directions != null && directions.length > 0)
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_DIRECTION, directions);
+ else
+ inputsValid = false;
+
+ // if not yet logged in, validate the parameters needed to log in
+ if (!isLoggedIn_) {
+ 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);
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!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 (!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 boolean run()
+ {
+ if (registryNode_ == null)
+ return false;
+
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ // if not yet logged in, log in first
+ if (!isLoggedIn_) {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userID = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+
+ try {
+ registryElement.performLogin(publishURL, userID, password);
+ }
+ catch (TransportException te) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(te.getMessage());
+ return false;
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(uddie.toString());
+ return false;
+ }
+ catch (MalformedURLException me) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(me.getMessage());
+ return false;
+ }
+ }
+
+ UDDIProxy proxy = registryElement.getProxy();
+ String userID = registryElement.getUserId();
+ String cred = registryElement.getCred();
+ BusinessElement busElement = (BusinessElement)selectedElement;
+
+ // determine whether this is a owned business
+ // if not, the AddPublisherAssertionsAction cannot be performed
+ if (!isBusinessOwned(busElement)) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_NOT_OWNED_BUSINESS"));
+ return false;
+ }
+
+ try {
+ String[] assertionTypes = (String[])propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE);
+ String[] directions = (String[])propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_DIRECTION);
+ String thisBusinessKey = busElement.getBusinessEntity().getBusinessKey();
+
+ // get all selected businesses
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey);
+ Vector selectedBusinesses = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS);
+ Enumeration e = selectedBusinesses.elements();
+ if (!e.hasMoreElements())
+ return true;
+
+ // create a vector of publisher assertions based on all the selected businesses
+ Vector pubAssertionVector = new Vector();
+ int i = 0;
+ while (e.hasMoreElements()) {
+ ListElement le = (ListElement)e.nextElement();
+ BusinessEntity sp = (BusinessEntity)le.getObject();
+ KeyedReference keyedRef = new KeyedReference(assertionTypes[i], assertionTypes[i], TModel.RELATIONSHIPS_TMODEL_KEY);
+ if (Integer.parseInt(directions[i]) == UDDIActionInputs.DIRECTION_TO)
+ pubAssertionVector.add(new PublisherAssertion(sp.getBusinessKey(), thisBusinessKey, keyedRef));
+ else
+ pubAssertionVector.add(new PublisherAssertion(thisBusinessKey, sp.getBusinessKey(), keyedRef));
+ i++;
+ }
+
+ // proxy.add_publisherAssertions(...)
+ DispositionReport report = proxy.add_publisherAssertions(registryElement.getAuthInfoString(), pubAssertionVector);
+
+ // refresh publisher assertions iff proxy reports success
+ if (report.success()) {
+ selectedBusinesses.removeAllElements();
+ ShowPublisherAssertionsAction showPAAction = new ShowPublisherAssertionsAction(controller_);
+ Hashtable propertyTable = showPAAction.getPropertyTable();
+ Object ids = propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (ids != null)
+ propertyTable.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, ids);
+ showPAAction.run();
+ }
+
+ return report.success();
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ DispositionReport report = uddie.getDispositionReport();
+ Vector reportErrInfo = report.getResultVector();
+ for (int i = 0; i < reportErrInfo.size(); i++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(i)).getErrInfo().getText());
+ }
+ return false;
+ }
+ catch(Exception e) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("Exception");
+ messageQueue.addMessage(e.getMessage());
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddToFavoritesAction.java
new file mode 100644
index 000000000..1a337bc0a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/AddToFavoritesAction.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+import java.util.*;
+
+public class AddToFavoritesAction extends UDDINodeAction
+{
+ public AddToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/CheckFavoriteExistsActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean registryExists(String registryName,Node registryNode)
+ {
+ RegistryElement regElement = (RegistryElement)registryNode.getTreeElement();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_REGISTRY_NAME,registryName);
+ return favoriteExists(table,FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE);
+ }
+
+ public final boolean businessExists(String businessName,Node businessNode)
+ {
+ BusinessElement busElement = (BusinessElement)businessNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String businessKey = busElement.getBusinessEntity().getBusinessKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_NAME,businessName);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY, businessKey);
+ return favoriteExists(table,FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE);
+ }
+
+ public final boolean serviceExists(String serviceName,Node serviceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)serviceNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String serviceKey = serviceElement.getBusinessService().getServiceKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_NAME,serviceName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY,serviceKey);
+ return favoriteExists(table,FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE);
+ }
+
+ public final boolean serviceInterfaceExists(String siName,Node siNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)siNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String tModelKey = siElement.getTModel().getTModelKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_NAME,siName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_KEY,tModelKey);
+ return favoriteExists(table,FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_FOLDER_NODE);
+ }
+
+ public final boolean addRegistryToFavorites(String registryName,Node registryNode)
+ {
+ RegistryElement regElement = (RegistryElement)registryNode.getTreeElement();
+ String inquiryURL = regElement.getInquiryURL();
+ String publishURL = regElement.getPublishURL();
+ if (publishURL == null)
+ publishURL = "";
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_REGISTRY_PUBLISH_API,publishURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_REGISTRY_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_REGISTRY_NAME,registryName);
+ Enumeration userDefinedCategoriesEnum = regElement.getUserDefinedCategories();
+ if (userDefinedCategoriesEnum != null)
+ {
+ table.put(FavoritesModelConstants.PROP_UDDI_REGISTRY_CATEGORIES_ENUM,userDefinedCategoriesEnum);
+ table.put(FavoritesModelConstants.PROP_PLUGIN_METADATA_DIRECTORY,controller_.getServletEngineStateLocation());
+ }
+ return addToFavorites(table,FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE);
+ }
+
+ public final boolean addBusinessToFavorites(String businessName,Node businessNode)
+ {
+ BusinessElement busElement = (BusinessElement)businessNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String businessKey = busElement.getBusinessEntity().getBusinessKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_NAME,businessName);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY, businessKey);
+ return addToFavorites(table,FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE);
+ }
+
+ public final boolean addServiceToFavorites(String serviceName,Node serviceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)serviceNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String serviceKey = serviceElement.getBusinessService().getServiceKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_NAME,serviceName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY,serviceKey);
+ return addToFavorites(table,FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE);
+ }
+
+ public final boolean addServiceInterfaceToFavorites(String siName,Node siNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)siNode.getTreeElement();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ String tModelKey = siElement.getTModel().getTModelKey();
+ String inquiryURL = regElement.getInquiryURL();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_NAME,siName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_INQUIRY_API,inquiryURL);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INTERFACE_KEY,tModelKey);
+ return addToFavorites(table,FavoritesModelConstants.REL_UDDI_SERVICE_INTERFACE_FOLDER_NODE);
+ }
+
+ public boolean favoriteExists()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ Node node = nodeManager_.getNode(nodeId);
+ String nodeName = node.getNodeName();
+ if (node instanceof RegistryNode)
+ return registryExists(nodeName,node);
+ else if (node instanceof BusinessNode)
+ return businessExists(nodeName,node);
+ else if (node instanceof ServiceNode)
+ return serviceExists(nodeName,node);
+ else if (node instanceof ServiceInterfaceNode)
+ return serviceInterfaceExists(nodeName,node);
+ else
+ return false;
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ Node node = nodeManager_.getNode(nodeId);
+ String nodeName = node.getNodeName();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ boolean addToFavoritesResult = false;
+ if (node instanceof RegistryNode)
+ {
+ addToFavoritesResult = addRegistryToFavorites(nodeName,node);
+ RegistryElement regElement = (RegistryElement)node.getTreeElement();
+ Enumeration e = regElement.getUserDefinedCategories();
+ if (e != null)
+ {
+ while (e.hasMoreElements())
+ {
+ CategoryModel categoryModel = (CategoryModel)e.nextElement();
+ Throwable errorException = categoryModel.getErrorException();
+ if (errorException != null)
+ {
+ String[] args = {categoryModel.getDisplayName(),errorException.getMessage()};
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_SAVING_CATEGORY_DATA",args));
+ }
+ }
+ }
+ }
+ else if (node instanceof BusinessNode)
+ addToFavoritesResult = addBusinessToFavorites(nodeName,node);
+ else if (node instanceof ServiceNode)
+ addToFavoritesResult = addServiceToFavorites(nodeName,node);
+ else if (node instanceof ServiceInterfaceNode)
+ addToFavoritesResult = addServiceInterfaceToFavorites(nodeName,node);
+ if (addToFavoritesResult)
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_FAVORITE_ADDED",nodeName));
+ else
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_FAVORITE_NOT_ADDED",nodeName));
+ return addToFavoritesResult;
+ }
+
+ protected boolean addToFavorites(Hashtable table, String rel)
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favNodeManager = favPerspective.getNodeManager();
+ TreeElement favRootElement = favNodeManager.getRootNode().getTreeElement();
+ Enumeration e = favRootElement.getElements(rel);
+ if (!e.hasMoreElements())
+ return false;
+ FavoritesFolderElement favFolderElement = (FavoritesFolderElement)e.nextElement();
+ return favFolderElement.addFavorite(table);
+ }
+
+ protected boolean favoriteExists(Hashtable table, String rel)
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favNodeManager = favPerspective.getNodeManager();
+ TreeElement favRootElement = favNodeManager.getRootNode().getTreeElement();
+ Enumeration e = favRootElement.getElements(rel);
+ if (!e.hasMoreElements())
+ return false;
+ FavoritesFolderElement favFolderElement = (FavoritesFolderElement)e.nextElement();
+ return favFolderElement.favoriteExists(table);
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceAdvancedAction.java
new file mode 100644
index 000000000..6961248ec
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceAdvancedAction.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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.datamodel.*;
+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.util.*;
+
+import java.util.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+
+public class BusPublishServiceAdvancedAction extends PublishAction
+{
+ private RegPublishServiceAdvancedAction regPublishServiceAdvancedAction_;
+ public BusPublishServiceAdvancedAction(Controller controller)
+ {
+ super(controller);
+ regPublishServiceAdvancedAction_ = new RegPublishServiceAdvancedAction(controller);
+ propertyTable_ = regPublishServiceAdvancedAction_.getPropertyTable();
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ Node businessNode = getSelectedNavigatorNode();
+ BusinessElement businessElement = (BusinessElement)businessNode.getTreeElement();
+ BusinessEntity businessEntity = businessElement.getBusinessEntity();
+ ListElement busListElement = new ListElement(businessEntity);
+ Vector serviceBusinessCopy = new Vector();
+ serviceBusinessCopy.addElement(busListElement);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ boolean result = regPublishServiceAdvancedAction_.processOthers(parser,formToolPI);
+ if (!propertyTable_.containsKey(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER))
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER,businessEntity);
+ return result;
+ }
+
+ public final boolean run()
+ {
+ return regPublishServiceAdvancedAction_.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceSimpleAction.java
new file mode 100644
index 000000000..ea9da0af8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusPublishServiceSimpleAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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.datamodel.*;
+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.util.*;
+
+import java.util.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+
+public class BusPublishServiceSimpleAction extends PublishAction
+{
+ private RegPublishServiceSimpleAction regPublishServiceSimpleAction_;
+
+ public BusPublishServiceSimpleAction(Controller controller)
+ {
+ super(controller);
+ regPublishServiceSimpleAction_ = new RegPublishServiceSimpleAction(controller);
+ propertyTable_ = regPublishServiceSimpleAction_.getPropertyTable();
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ Node businessNode = getSelectedNavigatorNode();
+ BusinessElement businessElement = (BusinessElement)businessNode.getTreeElement();
+ BusinessEntity businessEntity = businessElement.getBusinessEntity();
+ ListElement busListElement = new ListElement(businessEntity);
+ Vector serviceBusinessCopy = new Vector();
+ serviceBusinessCopy.addElement(busListElement);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ boolean result = regPublishServiceSimpleAction_.processOthers(parser,formToolPI);
+ if (!propertyTable_.containsKey(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER))
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER,businessEntity);
+ return result;
+ }
+
+ public final boolean run()
+ {
+ return regPublishServiceSimpleAction_.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusinessGetServicesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusinessGetServicesAction.java
new file mode 100644
index 000000000..9f305f803
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/BusinessGetServicesAction.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi4j.datatype.business.BusinessEntity;
+
+import java.util.*;
+
+public class BusinessGetServicesAction extends UDDINodeAction
+{
+ private BusinessNode busNode_;
+ public BusinessGetServicesAction(Controller controller)
+ {
+ super(controller);
+ busNode_ = null;
+ }
+
+ // uddi/actions/BusinessGetServicesActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/BusinessGetServicesActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean validateBusiness()
+ {
+ int busNodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ busNode_ = (BusinessNode)nodeManager_.getNode(busNodeId);
+ BusinessElement busElement = (BusinessElement)busNode_.getTreeElement();
+ RegFindBusinessUUIDAction verifyAction = new RegFindBusinessUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,busElement.getBusinessEntity().getBusinessKey());
+ boolean result = verifyAction.run();
+ if (result)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,propertyTable.get(UDDIActionInputs.LATEST_OBJECT));
+ return result;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ BusinessEntity sp = (BusinessEntity)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+
+ RegFindServicesAdvancedAction action = new RegFindServicesAdvancedAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("NODE_NAME_BUSINESS_SERVICES",busNode_.getNodeName()));
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER,sp);
+
+ ListElement businessListElement = new ListElement(sp);
+ businessListElement.setTargetViewToolInfo(busNode_.getNodeId(),busNode_.getToolManager().getSelectedToolId(),busNode_.getViewId());
+ Vector businessListVector = new Vector();
+ businessListVector.addElement(businessListElement);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,businessListVector);
+
+
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorFolderNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorFolderNodeAction.java
new file mode 100644
index 000000000..3a5db863c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorFolderNodeAction.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective.*;
+
+public class ClearNavigatorFolderNodeAction extends ClearNavigatorNodeAction
+{
+ public ClearNavigatorFolderNodeAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ // uddi/actions/ClearNavigatorFolderNodeAction.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ClearNavigatorFolderNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ Node node = nodeManager_.getNode(nodeId);
+ TreeElement element = node.getTreeElement();
+ element.disconnectRel(element.getPropertyAsString(ModelConstants.REL_CHILDREN));
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodeAction.java
new file mode 100644
index 000000000..75e4b421b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodeAction.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class ClearNavigatorNodeAction extends ClearNodeAction
+{
+ public ClearNavigatorNodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getNavigatorManager());
+ propertyTable_.put(ActionInputs.NODEID,String.valueOf(controller.getUDDIPerspective().getNavigatorManager().getSelectedNodeId()));
+ }
+
+ // uddi/actions/ClearNavigatorNodeAction.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ClearNavigatorNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "navigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "uddi/navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "propertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "uddi/properties_container.jsp";
+ }
+
+ public final String getStatusContentVar()
+ {
+ return "statusContent";
+ }
+
+ public final String getStatusContentPage()
+ {
+ return "uddi/status_content.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodesAction.java
new file mode 100644
index 000000000..e0f5166d2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ClearNavigatorNodesAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import java.util.*;
+
+public class ClearNavigatorNodesAction extends UDDIPropertiesFormAction
+{
+ public ClearNavigatorNodesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] selectedNodeIds = parser.getParameterValues(ActionInputs.NODEID);
+ if (selectedNodeIds != null)
+ propertyTable_.put(UDDIActionInputs.SELECTED_NODEIDS,selectedNodeIds);
+ else
+ removeProperty(UDDIActionInputs.SELECTED_NODEIDS);
+ return true;
+ }
+
+ public final boolean run()
+ {
+ String[] selectedNodeIds = (String[])propertyTable_.get(UDDIActionInputs.SELECTED_NODEIDS);
+ if (selectedNodeIds != null)
+ {
+ ClearNavigatorNodeAction action = new ClearNavigatorNodeAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ for (int i=0;i<selectedNodeIds.length;i++)
+ {
+ propertyTable.put(ActionInputs.NODEID,selectedNodeIds[i]);
+ action.run();
+ }
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CommonPublisherAssertionsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CommonPublisherAssertionsAction.java
new file mode 100644
index 000000000..5e14725a3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CommonPublisherAssertionsAction.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.datamodel.*;
+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.uddi4j.client.UDDIProxy;
+import org.uddi4j.response.BusinessInfo;
+import org.uddi4j.response.RegisteredInfo;
+
+import java.util.Vector;
+import java.util.Iterator;
+import java.util.Enumeration;
+
+public abstract class CommonPublisherAssertionsAction extends UDDIPropertiesFormAction
+{
+
+ protected RegistryNode registryNode_;
+ protected boolean isLoggedIn_;
+
+ public CommonPublisherAssertionsAction(Controller controller)
+ {
+ super(controller);
+
+ registryNode_ = getRegistryNode();
+ if (registryNode_ != null)
+ isLoggedIn_ = ((RegistryElement)registryNode_.getTreeElement()).isLoggedIn();
+ }
+
+ protected void synchronizeUDDIObjectTable() {
+ String[] selectedBusIds = (String[])propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ Node selectedNode = controller_.getUDDIPerspective().getNavigatorManager().getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey);
+ Vector businessVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS);
+ ListManager businessCopy = (ListManager)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS_COPY);
+ if (selectedBusIds == null || selectedBusIds.length <= 0) {
+ businessVector.removeAllElements();
+ businessCopy.clear();
+ }
+ Enumeration e = businessCopy.getListElements();
+ while (e.hasMoreElements()) {
+ boolean isIdFound = false;
+ ListElement le = (ListElement)e.nextElement();
+ int listElementViewId = le.getViewId();
+ for (int i = 0; i < selectedBusIds.length; i++) {
+ if (listElementViewId == Integer.parseInt(selectedBusIds[i])) {
+ isIdFound = true;
+ break;
+ }
+ }
+ if (!isIdFound)
+ businessVector.remove(le);
+ }
+ }
+
+ protected boolean isBusinessOwned(BusinessElement busElement) {
+ boolean isBusinessOwned = false;
+ String isBusinessOwnedString = busElement.getPropertyAsString(UDDIModelConstants.IS_BUSINESS_OWNED);
+ if (isBusinessOwnedString != null) {
+ isBusinessOwned = Boolean.valueOf(isBusinessOwnedString).booleanValue();
+ }
+ else if (isLoggedIn_) {
+ try {
+ RegistryElement regElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ RegisteredInfo ri = proxy.get_registeredInfo(regElement.getAuthInfoString());
+ Vector beVector = ri.getBusinessInfos().getBusinessInfoVector();
+ for (Iterator it = beVector.iterator(); it.hasNext();)
+ {
+ BusinessInfo bi = (BusinessInfo)it.next();
+ if (bi.getBusinessKey().equals(busElement.getBusinessEntity().getBusinessKey()))
+ {
+ isBusinessOwned = true;
+ break;
+ }
+ }
+ busElement.setPropertyAsString(UDDIModelConstants.IS_BUSINESS_OWNED, String.valueOf(isBusinessOwned));
+ }
+ catch (Exception e) {}
+ }
+ return isBusinessOwned;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CompletePublisherAssertionsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CompletePublisherAssertionsAction.java
new file mode 100644
index 000000000..8f73b8efd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/CompletePublisherAssertionsAction.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.client.UDDIProxy;
+import org.uddi4j.UDDIException;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+
+import java.util.*;
+import java.net.*;
+
+public class CompletePublisherAssertionsAction extends CommonPublisherAssertionsAction
+{
+ public CompletePublisherAssertionsAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ if (registryNode_ == null)
+ return false;
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+
+ // ids from uddiObjects_table
+ String[] selectedBusIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (selectedBusIds != null && selectedBusIds.length > 0)
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, selectedBusIds);
+ // Synchronize client view and server model (uddiObject_table.jsp)
+ synchronizeUDDIObjectTable();
+
+ // if not yet logged in, validate the parameters needed to log in
+ if (!isLoggedIn_) {
+ 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);
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!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 (!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);
+ }
+ }
+
+ // ids from publisher assertion table
+ String[] pubAssertionsViewIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID);
+ if (pubAssertionsViewIds == null || pubAssertionsViewIds.length == 0)
+ inputsValid = false;
+ else
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID, pubAssertionsViewIds);
+
+ return inputsValid;
+ }
+
+ public boolean run()
+ {
+ if (registryNode_ == null)
+ return false;
+
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ // if not yet logged in, log in first
+ if (!isLoggedIn_) {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userID = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+
+ try {
+ registryElement.performLogin(publishURL, userID, password);
+ }
+ catch (TransportException te) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(te.getMessage());
+ return false;
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(uddie.toString());
+ return false;
+ }
+ catch (MalformedURLException me) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(me.getMessage());
+ return false;
+ }
+ }
+
+ UDDIProxy proxy = registryElement.getProxy();
+ String userID = registryElement.getUserId();
+ String cred = registryElement.getCred();
+ BusinessElement busElement = (BusinessElement)selectedElement;
+ ListManager pubAssertions = busElement.getPublisherAssertions();
+
+ // determine whether this is a owned business
+ // if not, the AddPublisherAssertionsAction cannot be performed
+ if (!isBusinessOwned(busElement)) {
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NOT_OWNED_BUSINESS"));
+ return false;
+ }
+
+ try {
+ String[] pubAssertionViewIds = (String[])propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID);
+ Vector pubAssertionVector = new Vector();
+
+ for (int i = 0; i < pubAssertionViewIds.length; i++) {
+ int viewID = Integer.parseInt(pubAssertionViewIds[i]);
+ ListElement listElement = pubAssertions.getElementWithViewId(viewID);
+ PublisherAssertionElement pubAssertionElement = (PublisherAssertionElement)listElement.getObject();
+ if (!(pubAssertionElement.getStatus().equals(CompletionStatus.COMPLETE)))
+ pubAssertionVector.add(pubAssertionElement.getPublisherAssertion());
+ }
+
+ if (pubAssertionVector.size() <= 0) {
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED"));
+ return false;
+ }
+
+ DispositionReport report = proxy.add_publisherAssertions(registryElement.getAuthInfoString(), pubAssertionVector);
+ //report status
+ Vector reportErrInfo = report.getResultVector();
+ for (int j = 0; j < reportErrInfo.size(); j++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(j)).getErrInfo().getText());
+ }
+
+ ShowPublisherAssertionsAction showPAAction = new ShowPublisherAssertionsAction(controller_);
+ Hashtable propertyTable = showPAAction.getPropertyTable();
+ Object ids = propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (ids != null)
+ propertyTable.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, ids);
+ showPAAction.run();
+
+ return report.success();
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ DispositionReport report = uddie.getDispositionReport();
+ Vector reportErrInfo = report.getResultVector();
+ for (int j = 0; j < reportErrInfo.size(); j++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(j)).getErrInfo().getText());
+ }
+ return false;
+ }
+ catch (Exception e) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("Exception");
+ messageQueue.addMessage(e.getMessage());
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/FindAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/FindAction.java
new file mode 100644
index 000000000..b33b22a34
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/FindAction.java
@@ -0,0 +1,249 @@
+/*******************************************************************************
+ * 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.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 java.util.*;
+
+public abstract class FindAction extends UDDIPropertiesFormAction
+{
+ protected QueryElement queryElement_;
+ protected String subQueryKey_;
+ protected boolean isSubQueryGet_;
+ protected String newSubQuery_;
+ protected String newSubQueryItem_;
+ protected boolean subQueryInitiated_;
+ protected RegistryNode regNode_;
+ private boolean isRefreshAction_;
+
+ public FindAction(Controller controller)
+ {
+ super(controller);
+ queryElement_ = null;
+ subQueryKey_ = null;
+ isSubQueryGet_ = false;
+ subQueryInitiated_ = false;
+ regNode_ = getRegistryNode();
+ isRefreshAction_ = false;
+ }
+
+ 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);
+
+ newSubQuery_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_INITIATED);
+ String isSubQueryGetString = parser.getParameter(UDDIActionInputs.SUBQUERY_GET);
+ newSubQueryItem_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM);
+ subQueryKey_ = parser.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+ String queryName = parser.getParameter(UDDIActionInputs.QUERY_NAME);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.clearErrors();
+
+ if (newSubQuery_ != null && newSubQuery_.length() > 0)
+ subQueryInitiated_ = true;
+ else
+ subQueryInitiated_ = false;
+
+ if (isSubQueryGetString != null)
+ isSubQueryGet_ = Boolean.valueOf(isSubQueryGetString).booleanValue();
+
+ if (queryName != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_NAME,queryName);
+
+ if (!Validator.validateString(queryName) && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_QUERY_NAME"));
+ }
+
+ if (!processOthers(parser,formToolPI) && !subQueryInitiated_)
+ inputsValid = false;
+
+ for (int i=0;i<removedProperties_.size();i++)
+ formToolPI.removeProperty(removedProperties_.elementAt(i));
+ formToolPI.updatePropertyTable(propertyTable_);
+
+ // Process authentication information. If valid, these should be set in the formTool (not the formToolPI).
+ String ownedChecked = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED);
+ 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 = (ownedChecked != null) && (!regElement.isLoggedIn()) && !overrideAuthenticationValidation();
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!subQueryInitiated_ && 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 (!subQueryInitiated_ && 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;
+ }
+
+ protected boolean overrideAuthenticationValidation()
+ {
+ return false;
+ }
+
+ public final boolean isSubQueryInitiated()
+ {
+ return subQueryInitiated_;
+ }
+
+ public final boolean isSubQueryGet()
+ {
+ return isSubQueryGet_;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+
+ public final String getNewSubQuery()
+ {
+ return newSubQuery_;
+ }
+
+ public final String getNewSubQueryItem()
+ {
+ return newSubQueryItem_;
+ }
+
+ public final void setRefreshAction(boolean isRefreshAction)
+ {
+ isRefreshAction_ = isRefreshAction;
+ }
+
+ public final boolean isRefreshAction()
+ {
+ return isRefreshAction_;
+ }
+
+ protected final void addQueryNode()
+ {
+ // If the queryElement already exists, remove it first.
+ String queryName = queryElement_.getName();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ QueryParentElement queryParentElement = regElement.getQueryParentElement();
+ Enumeration e = queryParentElement.getQueries();
+ while (e.hasMoreElements())
+ {
+ QueryElement qe = (QueryElement)e.nextElement();
+ if (qe.getName().equals(queryName))
+ {
+ SubQueryTransferTarget subQueryTransferTarget = (SubQueryTransferTarget)qe.getPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET);
+ if (subQueryTransferTarget != null && (qe.getQueryType() == queryElement_.getQueryType()))
+ queryElement_.setPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET,subQueryTransferTarget);
+ qe.disconnectAll();
+ break;
+ }
+ }
+ if (!isRefreshAction_)
+ {
+ // We can make safe assumptions about the node that is currently selected.
+ if (subQueryKey_ != null && subQueryKey_.length() > 0)
+ {
+ String parentQueryKey;
+ int lastSeparatorPos = subQueryKey_.lastIndexOf(':');
+ if (lastSeparatorPos == -1)
+ parentQueryKey = "";
+ else
+ parentQueryKey = subQueryKey_.substring(0,lastSeparatorPos);
+ FormToolPropertiesInterface parentFormToolPI = ((MultipleFormToolPropertiesInterface)getSelectedFormTool()).getFormToolProperties(parentQueryKey);
+ Object queryItem = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_ITEM);
+ Object queryStyleBus = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES);
+ Object queryStyleSer = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICES);
+ Object queryStyleSerInt = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES);
+ Hashtable parentQueryData = new Hashtable();
+ if (queryItem != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_ITEM, queryItem);
+ if (queryStyleBus != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES, queryStyleBus);
+ if (queryStyleSer != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_SERVICES, queryStyleSer);
+ if (queryStyleSerInt != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES, queryStyleSerInt);
+ queryElement_.setPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET,new SubQueryTransferTarget(getSelectedNavigatorNode(),subQueryKey_,parentQueryData));
+ }
+ }
+ queryParentElement.connect(queryElement_,UDDIModelConstants.REL_QUERIES,ModelConstants.REL_OWNER);
+ QueryNode queryNode = (QueryNode)(regNode_.getChildNode(queryParentElement).getChildNode(queryElement_));
+ int newSelectedNodeId;
+ // If there is only 1 result, select the result. Otherwise, select the query node to present a summary.
+ if (queryNode.getChildNodes().size() == 1 && (subQueryKey_ == null || subQueryKey_.length() == 0))
+ newSelectedNodeId = ((Node)(queryNode.getChildNodes().elementAt(0))).getNodeId();
+ else
+ newSelectedNodeId = queryNode.getNodeId();
+ NodeManager nodeManager = regNode_.getNodeManager();
+ nodeManager.setSelectedNodeId(newSelectedNodeId);
+ queryNode.setFindToolProperties(this);
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager toolManager = selectedNode.getCurrentToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,selectedTool.getSelectToolActionHref(true));
+ }
+
+ 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
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ManageReferencedServicesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ManageReferencedServicesAction.java
new file mode 100644
index 000000000..0e470bad6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ManageReferencedServicesAction.java
@@ -0,0 +1,365 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.service.BusinessServices;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.UDDIException;
+import org.uddi4j.transport.TransportException;
+
+import java.util.*;
+import java.net.*;
+
+public class ManageReferencedServicesAction extends UDDIPropertiesFormAction
+{
+ protected String subQueryKey_;
+ protected boolean isSubQueryGet_;
+ protected String newSubQuery_;
+ protected String newSubQueryItem_;
+ protected boolean subQueryInitiated_;
+ protected RegistryNode regNode_;
+
+ public ManageReferencedServicesAction(Controller controller)
+ {
+ super(controller);
+ subQueryKey_ = null;
+ isSubQueryGet_ = false;
+ subQueryInitiated_ = false;
+ regNode_ = getRegistryNode();
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ newSubQuery_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_INITIATED);
+ String isSubQueryGetString = parser.getParameter(UDDIActionInputs.SUBQUERY_GET);
+ newSubQueryItem_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM);
+ subQueryKey_ = parser.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+ String[] referencedServicesCheckboxes = parser.getParameterValues(UDDIActionInputs.REFERENCED_SERVICE_SELECT_STATE);
+ String[] serviceNodeIds = parser.getParameterValues(UDDIActionInputs.NODEID_SERVICE);
+ String operation = parser.getParameter(UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION);
+ 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);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.clearErrors();
+
+ if (newSubQuery_ != null && newSubQuery_.length() > 0)
+ subQueryInitiated_ = true;
+ else
+ subQueryInitiated_ = false;
+
+ if (isSubQueryGetString != null)
+ isSubQueryGet_ = Boolean.valueOf(isSubQueryGetString).booleanValue();
+
+ if (operation != null)
+ propertyTable_.put(UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION,operation);
+ else
+ removeProperty(UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION);
+
+ if (referencedServicesCheckboxes != null)
+ propertyTable_.put(UDDIActionInputs.REFERENCED_SERVICE_SELECT_STATE,referencedServicesCheckboxes);
+ else
+ removeProperty(UDDIActionInputs.REFERENCED_SERVICE_SELECT_STATE);
+
+ if (serviceNodeIds != null)
+ {
+ Vector services = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SERVICES);
+ if (services == null)
+ services = new Vector();
+ Hashtable resultHash = new Hashtable();
+ for (int i=0;i<serviceNodeIds.length;i++)
+ resultHash.put(serviceNodeIds[i],Boolean.TRUE);
+ for (int i=0;i<services.size();i++)
+ {
+ ListElement listElement = (ListElement)services.elementAt(i);
+ if (resultHash.get(String.valueOf(listElement.getTargetNodeId())) == null)
+ {
+ services.removeElementAt(i);
+ i--;
+ }
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SERVICES,services);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_SERVICES);
+
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ {
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!subQueryInitiated_ && !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 (!subQueryInitiated_ && !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);
+ }
+ }
+
+ for (int i=0;i<removedProperties_.size();i++)
+ formToolPI.removeProperty(removedProperties_.elementAt(i));
+ formToolPI.updatePropertyTable(propertyTable_);
+
+ return inputsValid;
+ }
+
+ public boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ String operationString = (String)propertyTable_.get(UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION);
+ int operation = Integer.parseInt(operationString);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ BusinessElement busElement = (BusinessElement)(getSelectedNavigatorNode().getTreeElement());
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ Vector referencedServices = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES);
+ boolean operationResult = true;
+ try
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ UDDIProxy proxy = regElement.getProxy();
+ BusinessEntity currentSP = busElement.getBusinessEntity();
+ BusinessEntity sp = (BusinessEntity)proxy.get_businessDetail(currentSP.getBusinessKey()).getBusinessEntityVector().get(0);
+
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ Hashtable servicesHash = new Hashtable();
+ Vector backupBusServiceVector = new Vector();
+ switch (operation)
+ {
+ case UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION_ADD:
+ Vector services = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SERVICES);
+ for (int i=0;i<services.size();i++)
+ {
+ ListElement serviceListElement = (ListElement)services.elementAt(i);
+ BusinessService bs = (BusinessService)serviceListElement.getObject();
+ servicesHash.put(bs.getServiceKey(),bs);
+ }
+
+ // Save the current list of BusinessServices for rollback operations.
+ backupAndUpdateBusinessServices(backupBusServiceVector,sp,servicesHash,true);
+
+ try
+ {
+ Vector beVector = new Vector();
+ beVector.add(sp);
+ sp = (BusinessEntity)proxy.save_business(regElement.getAuthInfoString(), beVector).getBusinessEntityVector().get(0);
+ for (int i=0;i<services.size();i++)
+ {
+ ListElement serviceElement = (ListElement)services.elementAt(i);
+ BusinessService bs = (BusinessService)serviceElement.getObject();
+ String bsName = bs.getDefaultNameString();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_REFERENCED",bsName));
+ services.removeElementAt(i);
+ i--;
+ }
+ }
+ catch (TransportException e)
+ {
+ // Roll back and restore the old list of services.
+ rollbackBusinessServices(sp,backupBusServiceVector,services,uddiPerspective,messageQueue,"MSG_ERROR_SERVICE_NOT_REFERENCED");
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ operationResult = false;
+ }
+ catch (UDDIException e)
+ {
+ // Roll back and restore the old list of services.
+ rollbackBusinessServices(sp,backupBusServiceVector,services,uddiPerspective,messageQueue,"MSG_ERROR_SERVICE_NOT_REFERENCED");
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ operationResult = false;
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SERVICES,services);
+ break;
+ case UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION_REMOVE:
+ String[] referencedServicesCheckboxes = (String[])propertyTable_.get(UDDIActionInputs.REFERENCED_SERVICE_SELECT_STATE);
+ Vector selectedReferencedServiceVector = new Vector();
+ for (int i=0;i<referencedServicesCheckboxes.length;i++)
+ {
+ boolean isChecked = Boolean.valueOf(referencedServicesCheckboxes[i]).booleanValue();
+ if (isChecked)
+ {
+ ListElement referencedServiceListElement = (ListElement)referencedServices.elementAt(i);
+ BusinessService bs = (BusinessService)referencedServiceListElement.getObject();
+ servicesHash.put(bs.getServiceKey(),bs);
+ selectedReferencedServiceVector.addElement(bs);
+ }
+ }
+
+ // Save the current list of business services for rollback operations.
+ backupAndUpdateBusinessServices(backupBusServiceVector,sp,servicesHash,false);
+
+ try
+ {
+ Vector beVector = new Vector();
+ beVector.add(sp);
+ sp = (BusinessEntity)proxy.save_business(regElement.getAuthInfoString(), beVector).getBusinessEntityVector().get(0);
+ for (int i=0;i<selectedReferencedServiceVector.size();i++)
+ {
+ BusinessService bs = (BusinessService)selectedReferencedServiceVector.elementAt(i);
+ String bsName = bs.getDefaultNameString();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_REFERENCE_REMOVED",bsName));
+ }
+ }
+ catch (TransportException e)
+ {
+ // Roll back and restore the old list of services.
+ rollbackBusinessServices(sp,backupBusServiceVector,selectedReferencedServiceVector,uddiPerspective,messageQueue,"MSG_ERROR_REFERENCE_NOT_REMOVED");
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ operationResult = false;
+ }
+ catch (UDDIException e)
+ {
+ // Roll back and restore the old list of services.
+ rollbackBusinessServices(sp,backupBusServiceVector,selectedReferencedServiceVector,uddiPerspective,messageQueue,"MSG_ERROR_REFERENCE_NOT_REMOVED");
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ operationResult = false;
+ }
+ }
+ // Ensure that the referenced services are refreshed when the form reloads.
+ formToolPI.removeProperty(UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES);
+ busElement.setBusinessEntity(sp);
+ return operationResult;
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ operationResult = false;
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ operationResult = false;
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ operationResult = false;
+ }
+ return operationResult;
+ }
+
+ public final boolean isSubQueryInitiated()
+ {
+ return subQueryInitiated_;
+ }
+
+ public final boolean isSubQueryGet()
+ {
+ return isSubQueryGet_;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+
+ public final String getNewSubQuery()
+ {
+ return newSubQuery_;
+ }
+
+ public final String getNewSubQueryItem()
+ {
+ return newSubQueryItem_;
+ }
+
+ // Backup the business services and remove those in serviceHash from the current list. Return the updated list of business services
+ private final void backupAndUpdateBusinessServices(Vector backupBusServiceVector,BusinessEntity be,Hashtable servicesHash,boolean isAdd)
+ {
+ // Save the current list of business services for rollback operations.
+ BusinessServices currentBusServices = be.getBusinessServices();
+ if (currentBusServices == null)
+ currentBusServices = new BusinessServices();
+ Vector currentBusServiceVector = currentBusServices.getBusinessServiceVector();
+ for (int i=0;i<currentBusServiceVector.size();i++)
+ {
+ BusinessService currentBusService = (BusinessService)currentBusServiceVector.elementAt(i);
+ backupBusServiceVector.addElement(currentBusService);
+ // If the current business service is a member of the list to be removed/added, remove it now.
+ if (servicesHash.get(currentBusService.getServiceKey()) != null)
+ {
+ currentBusServiceVector.removeElementAt(i);
+ i--;
+ }
+ }
+
+ if (isAdd)
+ {
+ Enumeration e = servicesHash.elements();
+ while (e.hasMoreElements())
+ currentBusServiceVector.addElement((BusinessService)e.nextElement());
+ }
+ be.setBusinessServices(currentBusServices);
+ }
+
+ private final void rollbackBusinessServices(BusinessEntity be,Vector backupBusServiceVector,Vector operatedServices,Perspective perspective,MessageQueue messageQueue,String errorMessageKey)
+ {
+ // Roll back and restore the old list of services.
+ be.getBusinessServices().setBusinessServiceVector(backupBusServiceVector);
+ for (int i=0;i<operatedServices.size();i++)
+ {
+ ListElement serviceListElement = (ListElement)operatedServices.elementAt(i);
+ BusinessService bs = (BusinessService)serviceListElement.getObject();
+ String bsName = bs.getDefaultNameString();
+ messageQueue.addMessage(perspective.getMessage(errorMessageKey,bsName));
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenCategoryBrowserAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenCategoryBrowserAction.java
new file mode 100644
index 000000000..55573c624
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenCategoryBrowserAction.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import javax.servlet.http.*;
+
+public class OpenCategoryBrowserAction extends Action
+{
+ public OpenCategoryBrowserAction()
+ {
+ }
+
+ private static final void addSessionAndTModelKey(StringBuffer result,String sessionId,String categoryTModelKey)
+ {
+ result.append(ActionInputs.SESSIONID).append('=').append(sessionId).append('&').append(UDDIActionInputs.CATEGORY_TMODEL_KEY).append('=').append(categoryTModelKey);
+ }
+
+ // uddi/category_browser.jsp?sessionId=...&categoryTModelKey=...
+ public static final String getActionLink(String sessionId,String categoryTModelKey)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/category_browser.jsp?");
+ addSessionAndTModelKey(actionLink,sessionId,categoryTModelKey);
+ return actionLink.toString();
+ }
+
+ public static final String getCategoryContentPage(String sessionId,String categoryTModelKey)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/category_content.jsp?");
+ addSessionAndTModelKey(actionLink,sessionId,categoryTModelKey);
+ return actionLink.toString();
+ }
+
+ public static final String getWildCardActionLink(String sessionId)
+ {
+ return getActionLink(sessionId,"%");
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenRegistryAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenRegistryAction.java
new file mode 100644
index 000000000..e07820f97
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/OpenRegistryAction.java
@@ -0,0 +1,232 @@
+/*******************************************************************************
+ * 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.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.client.UDDIProxy;
+import org.uddi4j.datatype.tmodel.*;
+import org.uddi4j.transport.*;
+import org.uddi4j.response.*;
+import org.uddi4j.util.*;
+import org.uddi4j.*;
+
+import java.util.*;
+import java.net.*;
+
+public class OpenRegistryAction extends UDDIPropertiesFormAction
+{
+ public OpenRegistryAction(Controller controller)
+ {
+ super(controller);
+ // Select UDDI Main.
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String registryName = parser.getParameter(UDDIActionInputs.REGISTRY_NAME);
+ String inquiryURL = parser.getParameter(UDDIActionInputs.INQUIRY_URL);
+ String publishURL = parser.getParameter(UDDIActionInputs.PUBLISH_URL);
+ String username = parser.getParameter(UDDIActionInputs.UDDI_USERNAME);
+ String password = parser.getParameter(UDDIActionInputs.UDDI_PASSWORD);
+ String checkUserDefinedCategoriesChecked = parser.getParameter(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES);
+ String categoriesDirectory = parser.getParameter(UDDIActionInputs.CATEGORIES_DIRECTORY);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+ if (registryName != null)
+ propertyTable_.put(UDDIActionInputs.REGISTRY_NAME,registryName);
+
+ if (!Validator.validateString(registryName))
+ {
+ inputsValid = false;
+ formTool.flagError(UDDIActionInputs.REGISTRY_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_REGISTRY_NAME"));
+ }
+
+ if (inquiryURL != null)
+ propertyTable_.put(UDDIActionInputs.INQUIRY_URL,inquiryURL);
+ if (!Validator.validateURL(inquiryURL))
+ {
+ inputsValid = false;
+ formTool.flagError(UDDIActionInputs.INQUIRY_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_INQUIRY_URL"));
+ }
+
+ if (publishURL != null)
+ propertyTable_.put(UDDIActionInputs.PUBLISH_URL, publishURL);
+
+ if (username != null)
+ propertyTable_.put(UDDIActionInputs.UDDI_USERNAME, username);
+
+ if (password != null)
+ propertyTable_.put(UDDIActionInputs.UDDI_PASSWORD, password);
+
+ if (checkUserDefinedCategoriesChecked != null)
+ propertyTable_.put(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES,checkUserDefinedCategoriesChecked);
+ else
+ removeProperty(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES);
+
+ if (categoriesDirectory != null)
+ propertyTable_.put(UDDIActionInputs.CATEGORIES_DIRECTORY,categoriesDirectory);
+ else
+ removeProperty(UDDIActionInputs.CATEGORIES_DIRECTORY);
+
+ formTool.updatePropertyTable(propertyTable_);
+ return inputsValid;
+ }
+
+ public final void gatherWSUserDefinedCategories(UDDIProxy proxy,Hashtable categoryModels)
+ {
+ try
+ {
+ CategoryBag categoryBag = new CategoryBag();
+ categoryBag.add(new KeyedReference("","categorization",TModel.TYPES_TMODEL_KEY));
+ TModelList tModelList = proxy.find_tModel("%",categoryBag,null,null,100);
+ TModelInfos tModelInfos = tModelList.getTModelInfos();
+ Vector tModelKeyVector = new Vector();
+ for (int i=0;i<tModelInfos.size();i++)
+ {
+ TModelInfo tModelInfo = tModelInfos.get(i);
+ tModelKeyVector.addElement(tModelInfo.getTModelKey());
+ }
+ TModelDetail tModelDetail = proxy.get_tModelDetail(tModelKeyVector);
+ Vector tModelVector = tModelDetail.getTModelVector();
+ for (int i=0;i<tModelVector.size();i++)
+ {
+ TModel tModel = (TModel)tModelVector.elementAt(i);
+ boolean checked = false;
+ String displayName = null;
+ String categoryKey = null;
+ categoryBag = tModel.getCategoryBag();
+ for (int j=0;j<categoryBag.size();j++)
+ {
+ KeyedReference kr = categoryBag.get(j);
+ String krTModelKey = kr.getTModelKey();
+ if (krTModelKey.equalsIgnoreCase(TModel.GENERAL_KEYWORDS_TMODEL_KEY))
+ {
+ String krKeyName = kr.getKeyName();
+ if (krKeyName.equals("urn:x-ibm:uddi:customTaxonomy:key"))
+ categoryKey = kr.getKeyValue();
+ else if (krKeyName.equals("urn:x-ibm:uddi:customTaxonomy:displayName"))
+ displayName = kr.getKeyValue();
+ }
+ else if (krTModelKey.equalsIgnoreCase(TModel.TYPES_TMODEL_KEY))
+ checked = kr.getKeyValue().equals("checked");
+ }
+ if (categoryKey != null)
+ {
+ if (displayName == null)
+ displayName = tModel.getNameString();
+ CategoryModel categoryModel = new CategoryModel();
+ categoryModel.setCategoryKey(categoryKey);
+ categoryModel.enableChecked(checked);
+ categoryModel.setDisplayName(displayName);
+ String tModelKey = tModel.getTModelKey();
+ categoryModel.setTModelKey(tModelKey);
+ categoryModels.put(tModelKey,categoryModel);
+ }
+ }
+ }
+ catch (UDDIException e)
+ {
+ }
+ catch (TransportException e)
+ {
+ }
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String registryName = (String)propertyTable_.get(UDDIActionInputs.REGISTRY_NAME);
+ String inquiryURL = (String)propertyTable_.get(UDDIActionInputs.INQUIRY_URL);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.PUBLISH_URL);
+ String registrationURL = (String)propertyTable_.get(UDDIActionInputs.REGISTRATION_URL);
+ String username = (String)propertyTable_.get(UDDIActionInputs.UDDI_USERNAME);
+ String password = (String)propertyTable_.get(UDDIActionInputs.UDDI_PASSWORD);
+ boolean checkForUserDefinedCategoriesChecked = (propertyTable_.get(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES) != null);
+ String categoriesDirectory = (String)propertyTable_.get(UDDIActionInputs.CATEGORIES_DIRECTORY);
+
+ String recognizedPublishURL = uddiPerspective.getKnownRegistryPublishURL(inquiryURL);
+ String recognizedRegistrationURL = uddiPerspective.getKnownRegistryRegistrationURL(inquiryURL);
+
+ if (publishURL == null)
+ publishURL = recognizedPublishURL;
+ if (registrationURL == null)
+ registrationURL = recognizedRegistrationURL;
+
+ UDDIMainNode uddiMainNode = (UDDIMainNode)(controller_.getUDDIPerspective().getNavigatorManager().getRootNode());
+ UDDIMainElement uddiMainElement = (UDDIMainElement)uddiMainNode.getTreeElement();
+ Properties props = new Properties();
+ props.put(ActionInputs.TRANSPORT_CLASS_NAME, ActionInputs.TRASPORT_CLASS);
+ UDDIProxy proxy = new UDDIProxy(props);
+ proxy.setInquiryURL(new URL(inquiryURL));
+ RegistryElement registryElement = new RegistryElement(proxy,inquiryURL,registryName,uddiMainElement.getModel());
+ // Set registry element's publish URL and registration URL provided by external callers (e.g. favorites).
+ if (publishURL != null)
+ registryElement.setCachedPublishURL(publishURL);
+ if (registrationURL != null)
+ registryElement.setRegistrationURL(registrationURL);
+ if (username != null)
+ registryElement.setUserId(username);
+ if (password != null)
+ registryElement.setCred(password);
+ registryElement.setCheckForUserDefinedCategories(checkForUserDefinedCategoriesChecked);
+ if (checkForUserDefinedCategoriesChecked)
+ {
+ Hashtable categoryModels = new Hashtable();
+ gatherWSUserDefinedCategories(proxy,categoryModels);
+ if (categoryModels.size() > 0)
+ registryElement.setUserDefinedCategories(categoryModels);
+ else
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND"));
+ }
+ registryElement.setCategoriesDirectory(categoriesDirectory);
+ uddiMainElement.connect(registryElement,UDDIModelConstants.REL_REGISTRIES,ModelConstants.REL_OWNER);
+ NodeManager nodeManager = uddiMainNode.getNodeManager();
+ int newRegistryNodeId = uddiMainNode.getChildNode(registryElement).getNodeId();
+ // Select the new registry node and add the select action to the history.
+ nodeManager.setSelectedNodeId(newRegistryNodeId);
+ Node registryNode = nodeManager.getSelectedNode();
+ ToolManager toolManager = registryNode.getCurrentToolManager();
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,toolManager.getSelectedTool().getSelectToolActionHref(true));
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_REGISTRY_OPENED",new String[]{registryName,inquiryURL}));
+ return true;
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ FormTool formTool = getSelectedFormTool();
+ formTool.flagError(UDDIActionInputs.INQUIRY_URL);
+ }
+ /*
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ */
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/PublishAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/PublishAction.java
new file mode 100644
index 000000000..01a22061e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/PublishAction.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * 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 PublishAction extends UDDIPropertiesFormAction
+{
+ protected String subQueryKey_;
+ protected boolean subQueryInitiated_;
+ protected String newSubQuery_;
+ protected boolean isSubQueryGet_;
+ protected String newSubQueryItem_;
+ protected RegistryNode regNode_;
+
+ public PublishAction(Controller controller)
+ {
+ super(controller);
+ subQueryKey_ = null;
+ isSubQueryGet_ = false;
+ subQueryInitiated_ = false;
+ regNode_ = getRegistryNode();
+ }
+
+ 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);
+
+ newSubQuery_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_INITIATED);
+ String isSubQueryGetString = parser.getParameter(UDDIActionInputs.SUBQUERY_GET);
+ newSubQueryItem_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM);
+ subQueryKey_ = parser.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.clearErrors();
+
+ if (newSubQuery_ != null && newSubQuery_.length() > 0)
+ subQueryInitiated_ = true;
+ else
+ subQueryInitiated_ = false;
+
+ if (isSubQueryGetString != null)
+ isSubQueryGet_ = Boolean.valueOf(isSubQueryGetString).booleanValue();
+
+ if (!processOthers(parser,formToolPI) && !subQueryInitiated_)
+ inputsValid = false;
+
+ 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();
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!subQueryInitiated_ && 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 (!subQueryInitiated_ && 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;
+ }
+
+ protected final void addPublishedItemNode(BusinessEntity be,RegistryElement regElement)
+ {
+ BusinessElement beElement = new BusinessElement(be,regElement.getModel());
+ PublishedItemsElement publishedBusinessesElement = regElement.getPublishedBusinessesElement();
+ Enumeration e = publishedBusinessesElement.getItems();
+ while (e.hasMoreElements())
+ {
+ BusinessElement element = (BusinessElement)e.nextElement();
+ BusinessEntity elementBE = element.getBusinessEntity();
+ if (elementBE.getBusinessKey().equals(be.getBusinessKey()))
+ {
+ element.disconnectAll();
+ break;
+ }
+ }
+ connectElements(publishedBusinessesElement,beElement);
+ }
+
+ protected final void addPublishedItemNode(BusinessService bs,RegistryElement regElement)
+ {
+ ServiceElement sElement = new ServiceElement(bs,regElement.getModel());
+ PublishedItemsElement publishedServicesElement = regElement.getPublishedServicesElement();
+ Enumeration e = publishedServicesElement.getItems();
+ while (e.hasMoreElements())
+ {
+ ServiceElement element = (ServiceElement)e.nextElement();
+ BusinessService elementBS = element.getBusinessService();
+ if (elementBS.getServiceKey().equals(bs.getServiceKey()))
+ {
+ element.disconnectAll();
+ break;
+ }
+ }
+ connectElements(publishedServicesElement,sElement);
+ }
+
+ protected final void addPublishedItemNode(TModel tModel,RegistryElement regElement)
+ {
+ ServiceInterfaceElement siElement = new ServiceInterfaceElement(tModel,regElement.getModel());
+ PublishedItemsElement publishedServiceInterfacesElement = regElement.getPublishedServiceInterfacesElement();
+ Enumeration e = publishedServiceInterfacesElement.getItems();
+ while (e.hasMoreElements())
+ {
+ ServiceInterfaceElement element = (ServiceInterfaceElement)e.nextElement();
+ TModel elementTModel = element.getTModel();
+ if (tModel.getTModelKey().equals(elementTModel.getTModelKey()))
+ {
+ element.disconnectAll();
+ break;
+ }
+ }
+ connectElements(publishedServiceInterfacesElement,siElement);
+ }
+
+ private final void connectElements(PublishedItemsElement publishedItemsElement,TreeElement itemElement)
+ {
+ publishedItemsElement.connect(itemElement,UDDIModelConstants.REL_PUBLISHED_ITEMS,ModelConstants.REL_OWNER);
+ int newNodeId = regNode_.getChildNode(publishedItemsElement).getChildNode(itemElement).getNodeId();
+ NodeManager nodeManager = regNode_.getNodeManager();
+ nodeManager.setSelectedNodeId(newNodeId);
+ Node newNode = nodeManager.getSelectedNode();
+ ToolManager toolManager = newNode.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,selectedTool.getSelectToolActionHref(true));
+ }
+
+ public final boolean isSubQueryInitiated()
+ {
+ return subQueryInitiated_;
+ }
+
+ public final boolean isSubQueryGet()
+ {
+ return isSubQueryGet_;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+
+ public final String getNewSubQuery()
+ {
+ return newSubQuery_;
+ }
+
+ public final String getNewSubQueryItem()
+ {
+ return newSubQueryItem_;
+ }
+
+ 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
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodeAction.java
new file mode 100644
index 000000000..489bc0102
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodeAction.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.favorites.actions.*;
+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.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import java.util.*;
+
+public class RefreshUDDINodeAction extends UDDINodeAction
+{
+ private Vector staleNodes_;
+ public RefreshUDDINodeAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(ActionInputs.NODEID,String.valueOf(controller.getUDDIPerspective().getNavigatorManager().getSelectedNodeId()));
+ staleNodes_ = new Vector();
+ }
+
+ // uddi/actions/RefreshUDDINodeActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/RefreshUDDINodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean verifyNodeData()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ Node node = nodeManager_.getNode(nodeId);
+ if (node instanceof BusinessNode)
+ return refreshBusinessElement((BusinessNode)node);
+ else if (node instanceof ServiceNode)
+ return refreshServiceElement((ServiceNode)node);
+ else if (node instanceof ServiceInterfaceNode)
+ return refreshServiceInterfaceElement((ServiceInterfaceNode)node);
+ else if (node instanceof QueryNode)
+ {
+ // Nothing to verify
+ return true;
+ }
+ else if (node != null)
+ {
+ // RegistryNode
+ if (node instanceof RegistryNode)
+ refreshRegistryElement((RegistryNode)node);
+
+ // FolderNodes
+ Vector childNodes = node.getChildNodes();
+ Vector refreshActions = new Vector();
+ for (int i=0;i<childNodes.size();i++)
+ {
+ Node childNode = (Node)childNodes.elementAt(i);
+ RefreshUDDINodeAction action = new RefreshUDDINodeAction(controller_);
+ action.setStaleNodes(staleNodes_);
+ Hashtable propertyTable = action.getPropertyTable();
+ String childNodeIdString = String.valueOf(childNode.getNodeId());
+ propertyTable.put(ActionInputs.NODEID,childNodeIdString);
+ if (!action.verifyNodeData())
+ staleNodes_.addElement(childNode);
+ else
+ refreshActions.addElement(action);
+ }
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,refreshActions);
+ return true;
+ }
+ return true;
+ }
+
+ private final void refreshRegistryElement(RegistryNode regNode)
+ {
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+ Hashtable userDefinedCategories = null;
+ if (regElement.getCheckForUserDefinedCategories())
+ {
+ userDefinedCategories = new Hashtable();
+ OpenRegistryAction openRegAction = new OpenRegistryAction(controller_);
+ openRegAction.gatherWSUserDefinedCategories(regElement.getProxy(),userDefinedCategories);
+ if (!userDefinedCategories.keys().hasMoreElements())
+ {
+ userDefinedCategories = null;
+ regNode.setImagePath(RegistryNode.IMAGE_PATH_STANDARD);
+ }
+ else
+ {
+ String categoriesDirectory = regElement.getCategoriesDirectory();
+ AddRegistryToUDDIPerspectiveAction addAction = new AddRegistryToUDDIPerspectiveAction(controller_);
+ if (categoriesDirectory != null)
+ addAction.linkCategoryModelsWithSavedData(userDefinedCategories.elements(),categoriesDirectory);
+ else
+ addAction.linkCategoryModelsWithSavedData(regElement.getName(),userDefinedCategories.elements());
+ regNode.setImagePath(RegistryNode.IMAGE_PATH_WITH_USER_DEFINED_CATEGORIES);
+ }
+ }
+ regElement.setUserDefinedCategories(userDefinedCategories);
+ }
+
+ private final boolean refreshBusinessElement(BusinessNode busNode)
+ {
+ BusinessElement busElement = (BusinessElement)busNode.getTreeElement();
+ String uuidKey = busElement.getBusinessEntity().getBusinessKey();
+ RegFindBusinessUUIDAction verifyAction = new RegFindBusinessUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,uuidKey);
+ propertyTable.put(UDDIActionInputs.REFRESH_NODE,busNode);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ boolean verifyResult = verifyAction.run();
+ if (verifyResult)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,new BusinessElement((BusinessEntity)propertyTable.get(UDDIActionInputs.LATEST_OBJECT),busElement.getModel()));
+ return verifyResult;
+ }
+
+ private final boolean refreshServiceElement(ServiceNode serviceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)serviceNode.getTreeElement();
+ String uuidKey = serviceElement.getBusinessService().getServiceKey();
+ RegFindServiceUUIDAction verifyAction = new RegFindServiceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,uuidKey);
+ propertyTable.put(UDDIActionInputs.REFRESH_NODE,serviceNode);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ boolean verifyResult = verifyAction.run();
+ if (verifyResult)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,new ServiceElement((BusinessService)propertyTable.get(UDDIActionInputs.LATEST_OBJECT),serviceElement.getModel()));
+ return verifyResult;
+ }
+
+ private final boolean refreshServiceInterfaceElement(ServiceInterfaceNode siNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)siNode.getTreeElement();
+ String uuidKey = siElement.getTModel().getTModelKey();
+ RegFindServiceInterfaceUUIDAction verifyAction = new RegFindServiceInterfaceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,uuidKey);
+ propertyTable.put(UDDIActionInputs.REFRESH_NODE,siNode);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ boolean verifyResult = verifyAction.run();
+ if (verifyResult)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,new ServiceInterfaceElement((TModel)propertyTable.get(UDDIActionInputs.LATEST_OBJECT),siElement.getModel()));
+ return verifyResult;
+ }
+
+ public final void connectElements(Node parentNode,TreeElement newElement)
+ {
+ TreeElement parentElement = parentNode.getTreeElement();
+ String rel = null;
+ if (parentNode instanceof PublishedItemsNode)
+ rel = UDDIModelConstants.REL_PUBLISHED_ITEMS;
+ else if (parentNode instanceof QueryNode)
+ rel = UDDIModelConstants.REL_QUERY_RESULTS;
+ else if (parentNode instanceof QueryParentNode)
+ rel = UDDIModelConstants.REL_QUERIES;
+ parentElement.connect(newElement,rel,ModelConstants.REL_OWNER);
+ Node newNode = parentNode.getChildNode(newElement);
+ int newNodeId = newNode.getNodeId();
+ nodeManager_.setSelectedNodeId(newNodeId);
+ ToolManager toolManager = newNode.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,selectedTool.getSelectToolActionHref(true));
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ if (!isStaleNode(nodeId))
+ {
+ Node node = nodeManager_.getNode(nodeId);
+ Object latestObject = propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+ if (latestObject != null)
+ {
+ if (latestObject instanceof Vector)
+ {
+ Vector refreshActions = (Vector)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+ for (int i=0;i<refreshActions.size();i++)
+ {
+ RefreshUDDINodeAction refreshAction = (RefreshUDDINodeAction)refreshActions.elementAt(i);
+ refreshAction.run();
+ }
+ nodeManager_.setSelectedNodeId(nodeId);
+ }
+ else
+ {
+ TreeElement oldElement = node.getTreeElement();
+ oldElement.disconnectAll();
+ connectElements(node.getParent(),(TreeElement)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT));
+ }
+ }
+ else
+ {
+ // QueryNodes
+ QueryNode queryNode = (QueryNode)node;
+ FindAction findAction = queryNode.getFindAction();
+ findAction.setRefreshAction(true);
+ if (!findAction.run())
+ queryNode.removeChildNodes(true);
+ findAction.setRefreshAction(false);
+ }
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_NODE_REFRESHED",node.getNodeName()));
+ return true;
+ }
+ return false;
+ }
+
+ public final Vector getStaleNodes()
+ {
+ return staleNodes_;
+ }
+
+ public final void setStaleNodes(Vector staleNodes)
+ {
+ staleNodes_ = staleNodes;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodesAction.java
new file mode 100644
index 000000000..4b3d246e9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RefreshUDDINodesAction.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import java.util.*;
+
+public class RefreshUDDINodesAction extends UDDIPropertiesFormAction
+{
+ private Vector staleNodes_;
+
+ public RefreshUDDINodesAction(Controller controller)
+ {
+ super(controller);
+ staleNodes_ = new Vector();
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] selectedNodeIds = parser.getParameterValues(ActionInputs.NODEID);
+ // The client Javascript enforces the rule that at least one item was selected before the form can be submitted.
+ propertyTable_.put(UDDIActionInputs.SELECTED_NODEIDS,selectedNodeIds);
+ return true;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ int collectorNodeId = getSelectedNavigatorNode().getNodeId();
+ String[] selectedNodeIds = (String[])propertyTable_.get(UDDIActionInputs.SELECTED_NODEIDS);
+ RefreshUDDINodeAction action = new RefreshUDDINodeAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ for (int i=0;i<selectedNodeIds.length;i++)
+ {
+ propertyTable.put(ActionInputs.NODEID,selectedNodeIds[i]);
+ if (action.verifyNodeData())
+ action.run();
+ else
+ {
+ int nodeId = Integer.parseInt(selectedNodeIds[i]);
+ staleNodes_.addElement(navigatorManager.getNode(nodeId));
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NODE_DATA_VALIDATION_FAILED",navigatorManager.getNode(nodeId).getNodeName()));
+ }
+ }
+ navigatorManager.setSelectedNodeId(collectorNodeId);
+ return true;
+ }
+
+ public final Vector getStaleNodes()
+ {
+ return staleNodes_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessUUIDAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessUUIDAction.java
new file mode 100644
index 000000000..34223f5dd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessUUIDAction.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.UDDIException;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.business.BusinessEntity;
+
+import java.util.*;
+
+public class RegFindBusinessUUIDAction extends FindAction
+{
+ public RegFindBusinessUUIDAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES,String.valueOf(UDDIActionInputs.QUERY_STYLE_UUID));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_KEY);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,uuidKey);
+
+ if (!subQueryInitiated_ && !Validator.validateString(uuidKey))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_UUID_KEY"));
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+
+ // The action can be run under the context of either a registry or a query node or even UDDIMainNode.
+ if (regNode_ == null)
+ regNode_ = getRegistryNode((Node)propertyTable_.get(UDDIActionInputs.REFRESH_NODE));
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ BusinessEntity[] beList = new BusinessEntity[1];
+ Vector beVector = proxy.get_businessDetail(uuidKey).getBusinessEntityVector();
+ if (beVector.size() > 0)
+ {
+ beVector.toArray(beList);
+ if (shouldAddQueryNode)
+ {
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(beList,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESSES_FOUND",String.valueOf(beList.length)));
+ }
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,beList[0]);
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_BUSINESSES_FOUND"));
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesAdvancedAction.java
new file mode 100644
index 000000000..c4f8fc1d7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesAdvancedAction.java
@@ -0,0 +1,303 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.FormInputException;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.UDDIException;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.*;
+import org.uddi4j.response.BusinessInfo;
+import org.uddi4j.response.BusinessInfos;
+import org.uddi4j.util.*;
+
+import java.util.*;
+import java.net.MalformedURLException;
+
+public class RegFindBusinessesAdvancedAction extends FindAction
+{
+ public RegFindBusinessesAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET,String.valueOf(UDDIActionInputs.QUERY_MAX_SEARCH_SET));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS,String.valueOf(UDDIActionInputs.QUERY_MAX_RESULTS));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String ownedChecked = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED);
+ String[] languages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+ String[] siNodeIds = parser.getParameterValues(UDDIActionInputs.NODEID_SERVICE_INTERFACE);
+ String[] discoveryURLValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DISCOVERYURL);
+ String[] findQualifierValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER);
+ String maxSearchSet = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET);
+ String maxResults = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ Node selectedNode = getSelectedNavigatorNode();
+ Node regNode = getRegistryNode();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+
+ if (ownedChecked != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_OWNED,ownedChecked);
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_OWNED);
+
+ if (languages != null && names != null)
+ {
+ Vector nameVector = new Vector();
+ for (int i=0;i<names.length;i++)
+ {
+ Name uddi4jName;
+ if (languages[i].length() > 0)
+ uddi4jName = new Name(names[i],languages[i]);
+ else
+ uddi4jName = new Name(names[i]);
+ nameVector.addElement(uddi4jName);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,nameVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+
+ if (idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ IdentifierBag idBag = new IdentifierBag();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ idBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS,idBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+
+ if (siNodeIds != null)
+ {
+ // Although we already have the "submitted" data, deletions occur on the client side and thus the need to track this using hidden form elements.
+ Vector busServiceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES);
+ if (busServiceInterfaces == null)
+ busServiceInterfaces = new Vector();
+ else
+ busServiceInterfaces.removeAllElements();
+ Vector busServiceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES_COPY);
+ Vector tModelKeyStringVector = new Vector();
+ Hashtable resultHash = new Hashtable();
+ for (int i=0;i<siNodeIds.length;i++)
+ resultHash.put(siNodeIds[i],Boolean.TRUE);
+ for (int i=0;i<busServiceInterfacesCopy.size();i++)
+ {
+ ListElement listElement = (ListElement)busServiceInterfacesCopy.elementAt(i);
+ if (resultHash.get(String.valueOf(listElement.getTargetNodeId())) != null)
+ {
+ busServiceInterfaces.addElement(listElement);
+ TModel tModel = (TModel)listElement.getObject();
+ tModelKeyStringVector.addElement(tModel.getTModelKey());
+ }
+ }
+ TModelBag tModelBag = new TModelBag(tModelKeyStringVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES,busServiceInterfaces);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_TMODELBAG,tModelBag);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_TMODELBAG);
+ }
+
+ if (discoveryURLValues != null)
+ {
+ DiscoveryURLs discoveryURLs = new DiscoveryURLs();
+ Vector discoveryURLVector = new Vector();
+ for (int i=0;i<discoveryURLValues.length;i++)
+ {
+ DiscoveryURL discoveryURL = new DiscoveryURL(discoveryURLValues[i],"");
+ discoveryURLVector.addElement(discoveryURL);
+ }
+ discoveryURLs.setDiscoveryURLVector(discoveryURLVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,discoveryURLs);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+
+ if (findQualifierValues != null)
+ {
+ FindQualifiers findQualifiers = new FindQualifiers();
+ Vector findQualifierVector = new Vector();
+ for (int i=0;i<findQualifierValues.length;i++)
+ {
+ FindQualifier findQualifier = new FindQualifier(findQualifierValues[i]);
+ findQualifierVector.addElement(findQualifier);
+ }
+ findQualifiers.setFindQualifierVector(findQualifierVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_FINDQUALIFIERS,findQualifiers);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_FINDQUALIFIERS);
+
+ if (maxSearchSet != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET,maxSearchSet);
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxSearchSet))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_SEARCH_SET"));
+ inputsValid = false;
+ }
+
+ if (maxResults != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS,maxResults);
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxResults))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_RESULTS"));
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ private DiscoveryURLs dupDiscoveryURLs(DiscoveryURLs discoveryURLs, String useType, String dupUseType) {
+ if (discoveryURLs == null)
+ return discoveryURLs;
+ Vector discoveryURLVector = discoveryURLs.getDiscoveryURLVector();
+ if (discoveryURLVector == null)
+ return discoveryURLs;
+ Vector newDiscoveryURLVector = new Vector(discoveryURLVector);
+ Enumeration e = discoveryURLVector.elements();
+ while (e.hasMoreElements()) {
+ DiscoveryURL discoveryURL = (DiscoveryURL)e.nextElement();
+ if (discoveryURL.getUseType().equals(useType)) {
+ newDiscoveryURLVector.add(new DiscoveryURL(discoveryURL.getText(), dupUseType));
+ }
+ }
+ DiscoveryURLs newDiscoveryURLs = new DiscoveryURLs();
+ newDiscoveryURLs.setDiscoveryURLVector(newDiscoveryURLVector);
+ return newDiscoveryURLs;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ FindQualifiers findQualifiers = (FindQualifiers)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_FINDQUALIFIERS);
+ Vector nameVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ DiscoveryURLs discoveryURLs = (DiscoveryURLs)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ IdentifierBag identifierBag = (IdentifierBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ TModelBag tModelBag = (TModelBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_TMODELBAG);
+ boolean owned = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_OWNED) != null);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ int maxSearchSet = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET));
+ int maxResults = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS));
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (owned && !regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ UDDIProxy proxy = regElement.getProxy();
+
+ BusinessInfos busInfos = null;
+ if (owned)
+ busInfos = proxy.get_registeredInfo(regElement.getAuthInfoString()).getBusinessInfos();
+ else
+ busInfos = proxy.find_business(nameVector, dupDiscoveryURLs(discoveryURLs,"",UDDIActionInputs.DISCOVERY_URL_TYPE), identifierBag, categoryBag, tModelBag, findQualifiers, maxSearchSet).getBusinessInfos();
+
+ int finalNumberOfBusinessEntities = Math.min(maxResults, busInfos.size());
+ Vector businessKeys = new Vector();
+ for (int i = 0; i < finalNumberOfBusinessEntities; i++)
+ {
+ BusinessInfo busInfo = (BusinessInfo)busInfos.get(i);
+ businessKeys.addElement(busInfo.getBusinessKey());
+ }
+
+ if (finalNumberOfBusinessEntities > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ Vector beVector = proxy.get_businessDetail(businessKeys).getBusinessEntityVector();
+ BusinessEntity[] beList = new BusinessEntity[beVector.size()];
+ beVector.toArray(beList);
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(beList,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESSES_FOUND",String.valueOf(beList.length)));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_BUSINESSES_FOUND"));
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesSimpleAction.java
new file mode 100644
index 000000000..00f285a6c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindBusinessesSimpleAction.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.*;
+import org.uddi4j.response.BusinessInfo;
+import org.uddi4j.response.BusinessInfos;
+
+import java.util.*;
+
+public class RegFindBusinessesSimpleAction extends FindAction
+{
+ public RegFindBusinessesSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME);
+
+ // Validate the data.
+ boolean inputsValid = true;
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME,name);
+ else
+ {
+ // This shouldn't occur.
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME);
+ Vector nameVector = new Vector();
+ nameVector.addElement(new Name(name));
+
+ // The action can be run under the context of either a registry or a query node.
+ Node selectedNode = getSelectedNavigatorNode();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+
+ BusinessInfos busInfos = proxy.find_business(nameVector, null, null, null, null, null, UDDIActionInputs.QUERY_MAX_SEARCH_SET).getBusinessInfos();
+ int finalNumberOfBusinessEntities = Math.min(UDDIActionInputs.QUERY_MAX_RESULTS, busInfos.size());
+ Vector businessKeys = new Vector();
+ for (int i = 0; i < finalNumberOfBusinessEntities; i++)
+ {
+ BusinessInfo busInfo = busInfos.get(i);
+ businessKeys.addElement(busInfo.getBusinessKey());
+ }
+
+ if (finalNumberOfBusinessEntities > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ Vector beVector = proxy.get_businessDetail(businessKeys).getBusinessEntityVector();
+ BusinessEntity[] beList = new BusinessEntity[beVector.size()];
+ beVector.toArray(beList);
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(beList,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESSES_FOUND",String.valueOf(beList.length)));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_BUSINESSES_FOUND"));
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfaceUUIDAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfaceUUIDAction.java
new file mode 100644
index 000000000..ead534a14
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfaceUUIDAction.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+
+public class RegFindServiceInterfaceUUIDAction extends FindAction
+{
+ public RegFindServiceInterfaceUUIDAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,String.valueOf(UDDIActionInputs.QUERY_STYLE_UUID));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_KEY);
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,uuidKey);
+
+ if (!subQueryInitiated_ && !Validator.validateString(uuidKey))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_UUID_KEY"));
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY);
+
+ // The action can be run under the context of either a registry or a query node or even UDDIMainNode.
+ if (regNode_ == null)
+ regNode_ = getRegistryNode((Node)propertyTable_.get(UDDIActionInputs.REFRESH_NODE));
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ TModelDetail tModelDetail = proxy.get_tModelDetail(uuidKey);
+ Vector tModelVector = tModelDetail.getTModelVector();
+ if (tModelVector.size() > 0)
+ {
+ TModel tModel = (TModel)tModelVector.elementAt(0);
+ if (shouldAddQueryNode)
+ {
+ TModel[] tModelArray = new TModel[1];
+ tModelArray[0] = tModel;
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(tModelArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACES_FOUND",String.valueOf(tModelArray.length)));
+ }
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,tModel);
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICE_INTERFACES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesAdvancedAction.java
new file mode 100644
index 000000000..defaddacb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesAdvancedAction.java
@@ -0,0 +1,363 @@
+/*******************************************************************************
+ * 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.binding.*;
+import org.uddi4j.datatype.service.*;
+import org.uddi4j.datatype.tmodel.*;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.util.*;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+import java.net.*;
+
+public class RegFindServiceInterfacesAdvancedAction extends FindAction
+{
+ public RegFindServiceInterfacesAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET,String.valueOf(UDDIActionInputs.QUERY_MAX_SEARCH_SET));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS,String.valueOf(UDDIActionInputs.QUERY_MAX_RESULTS));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String useServiceChecked = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE);
+ String[] serviceNodeIds = parser.getParameterValues(UDDIActionInputs.NODEID_SERVICE);
+ String ownedChecked = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+ String[] findQualifierValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER);
+ String maxSearchSet = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET);
+ String maxResults = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+
+ if (useServiceChecked != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE,useServiceChecked);
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE);
+
+ if (serviceNodeIds != null)
+ {
+ // Although we already have the "submitted" data, deletions occur on the client side and thus the need to track this using hidden form elements.
+ Vector siService = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE);
+ if (siService == null)
+ siService = new Vector();
+ else
+ siService.removeAllElements();
+ Vector siServiceCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE_COPY);
+ // The browser will enforce the rule of having only one service in this list.
+ ListElement listElement = (ListElement)siServiceCopy.elementAt(0);
+ siService.addElement(listElement);
+ BusinessService bs = (BusinessService)listElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE,siService);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_BUSINESS_SERVICE,bs);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_BUSINESS_SERVICE);
+ if (!subQueryInitiated_ && useServiceChecked != null)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_SERVICE"));
+ }
+ }
+
+ if (ownedChecked != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_OWNED,ownedChecked);
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_OWNED);
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,name);
+
+ if (idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ IdentifierBag idBag = new IdentifierBag();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ idBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS,idBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+
+ if (findQualifierValues != null)
+ {
+ FindQualifiers findQualifiers = new FindQualifiers();
+ Vector findQualifierVector = new Vector();
+ for (int i=0;i<findQualifierValues.length;i++)
+ {
+ FindQualifier findQualifier = new FindQualifier(findQualifierValues[i]);
+ findQualifierVector.addElement(findQualifier);
+ }
+ findQualifiers.setFindQualifierVector(findQualifierVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_FINDQUALIFIERS,findQualifiers);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_FINDQUALIFIERS);
+
+ if (maxSearchSet != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET,maxSearchSet);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET,maxSearchSet);
+ }
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxSearchSet))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_SEARCH_SET"));
+ inputsValid = false;
+ }
+
+ if (maxResults != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS,maxResults);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS,maxResults);
+ }
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxResults))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_RESULTS"));
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ public final boolean overrideAuthenticationValidation()
+ {
+ return (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE) != null);
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ boolean useService = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE) != null);
+ BusinessService bs = (BusinessService)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_BUSINESS_SERVICE);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ FindQualifiers findQualifiers = (FindQualifiers)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_FINDQUALIFIERS);
+ IdentifierBag identifierBag = (IdentifierBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ boolean owned = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_OWNED) != null);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ int maxSearchSet = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET));
+ int maxResults = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS));
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ Vector tModelKeyVector = new Vector();
+
+ if (owned)
+ {
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ tModelKeyVector = findAllOwnedTModels(proxy, regElement.getAuthInfoString(), maxResults);
+ }
+ if (useService)
+ {
+ BindingTemplates bindingTemplates = bs.getBindingTemplates();
+ boolean endSearch = false;
+ if (bindingTemplates != null)
+ {
+ for (int i=0;i<bindingTemplates.size();i++)
+ {
+ BindingTemplate bt = bindingTemplates.get(i);
+ TModelInstanceDetails tModelInstanceDetails = bt.getTModelInstanceDetails();
+ for (int j=0;j<tModelInstanceDetails.size();j++)
+ {
+ TModelInstanceInfo tModelInstanceInfo = tModelInstanceDetails.get(j);
+ if (tModelKeyVector.size() < maxResults)
+ tModelKeyVector.addElement(tModelInstanceInfo.getTModelKey());
+ else
+ {
+ endSearch = true;
+ break;
+ }
+ }
+ if (endSearch)
+ break;
+ }
+ }
+ }
+ else
+ {
+ TModelList tModelList = proxy.find_tModel(name,categoryBag,identifierBag,findQualifiers,maxSearchSet);
+ TModelInfos tModelInfos = tModelList.getTModelInfos();
+ for (int i=0;i<tModelInfos.size();i++)
+ {
+ TModelInfo tModelInfo = tModelInfos.get(i);
+ if (tModelKeyVector.size() < maxResults)
+ tModelKeyVector.addElement(tModelInfo.getTModelKey());
+ else
+ break;
+ }
+ }
+
+ int finalNumberOfTModelKeys = tModelKeyVector.size();
+ if (finalNumberOfTModelKeys > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ Vector finalTModelVector = new Vector();
+ int currentIndex = 0;
+ int windowSize = finalNumberOfTModelKeys;
+ while (currentIndex < tModelKeyVector.size())
+ {
+ int subListToIndex = Math.min(currentIndex+windowSize,tModelKeyVector.size());
+ try
+ {
+ TModelDetail tModelDetail = proxy.get_tModelDetail(new Vector(tModelKeyVector.subList(currentIndex,subListToIndex)));
+ Vector tModelVector = tModelDetail.getTModelVector();
+ for (int i=0;i<tModelVector.size();i++)
+ finalTModelVector.addElement(tModelVector.elementAt(i));
+ if (tModelDetail.getTruncatedBoolean())
+ windowSize = tModelVector.size();
+ currentIndex += windowSize;
+ }
+ catch (UDDIException e)
+ {
+ DispositionReport dr = e.getDispositionReport();
+ if (((Result) dr.getResultVector().get(0)).getErrInfo().getErrCode() == DispositionReport.E_invalidKeyPassed)
+ {
+ String errInfoText = ((Result) dr.getResultVector().get(0)).getErrInfo().getText();
+ for (int i=currentIndex;i<subListToIndex;i++)
+ {
+ String tModelKey = (String)tModelKeyVector.elementAt(i);
+ if (errInfoText.indexOf(tModelKey) != -1 || errInfoText.indexOf(tModelKey.toUpperCase()) != -1 || errInfoText.indexOf(tModelKey.toLowerCase()) != -1)
+ {
+ tModelKeyVector.removeElementAt(i);
+ break;
+ }
+ }
+ }
+ else
+ throw e;
+ }
+ catch (TransportException e)
+ {
+ throw e;
+ }
+ }
+
+ int finalNumberOfTModels = finalTModelVector.size();
+ if (finalNumberOfTModels > 0)
+ {
+ TModel[] tModelArray = new TModel[finalNumberOfTModels];
+ finalTModelVector.toArray(tModelArray);
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(tModelArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACES_FOUND",String.valueOf(tModelArray.length)));
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICE_INTERFACES_FOUND"));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICE_INTERFACES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+
+ // Copied directly from UDDIWSDLProxy's findAllServiceInterfaces() method with minor modifications. The hardcoded strings should NOT be translated.
+ private final Vector findAllOwnedTModels(UDDIProxy proxy, String authInfoString, int maxResults) throws UDDIException, TransportException
+ {
+ RegisteredInfo registeredInfo = null;
+
+ // Get the complete list of owned (registered) info.
+ // (A RegisteredInfo consists of BusinessInfos and TModelInfos.
+ // BusinessInfos also contain ServiceInfos.)
+ registeredInfo = proxy.get_registeredInfo(authInfoString);
+
+ //Create a Vector to add the TModelKeys from the registeredInfo.
+ Vector tModelKeyList = new Vector();
+
+ //Get the TModelInfos from the registeredInfo.
+ TModelInfos tModelInfos = registeredInfo.getTModelInfos();
+
+ //Get all the TModelKeys from within the TModelInfos
+ boolean endSearch = false;
+ for (int i = 0; i < tModelInfos.size(); i++)
+ {
+ TModelInfo tModelInfo = tModelInfos.get(i);
+ if (tModelKeyList.size() < maxResults)
+ tModelKeyList.addElement(tModelInfo.getTModelKey());
+ else
+ break;
+ }
+ return tModelKeyList;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesSimpleAction.java
new file mode 100644
index 000000000..6cc3c1e87
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceInterfacesSimpleAction.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+
+public class RegFindServiceInterfacesSimpleAction extends FindAction
+{
+ public RegFindServiceInterfacesSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME,name);
+ else
+ {
+ // This should never occur.
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME);
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ TModelList tModelList = proxy.find_tModel(name,null,null,null,UDDIActionInputs.QUERY_MAX_SEARCH_SET);
+ TModelInfos tModelInfos = tModelList.getTModelInfos();
+ Vector tModelKeyVector = new Vector();
+
+ for (int i=0;i<tModelInfos.size();i++)
+ {
+ TModelInfo tModelInfo = tModelInfos.get(i);
+ if (tModelKeyVector.size() < UDDIActionInputs.QUERY_MAX_RESULTS)
+ tModelKeyVector.addElement(tModelInfo.getTModelKey());
+ else
+ break;
+ }
+
+ if (tModelKeyVector.size() > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ TModelDetail tModelDetail = proxy.get_tModelDetail(tModelKeyVector);
+ Vector tModelVector = tModelDetail.getTModelVector();
+ TModel[] tModelArray = new TModel[tModelVector.size()];
+ tModelVector.toArray(tModelArray);
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(tModelArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACES_FOUND",String.valueOf(tModelArray.length)));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICE_INTERFACES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceUUIDAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceUUIDAction.java
new file mode 100644
index 000000000..207e86876
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServiceUUIDAction.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+
+public class RegFindServiceUUIDAction extends FindAction
+{
+ public RegFindServiceUUIDAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_UUID));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_KEY);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,uuidKey);
+
+ if (!subQueryInitiated_ && !Validator.validateString(uuidKey))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_UUID_KEY"));
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY);
+
+ // The action can be run under the context of either a registry or a query node or even UDDIMainNode.
+ if (regNode_ == null)
+ regNode_ = getRegistryNode((Node)propertyTable_.get(UDDIActionInputs.REFRESH_NODE));
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ BusinessService[] bsArray = new BusinessService[1];
+ ServiceDetail serviceDetail = proxy.get_serviceDetail(uuidKey);
+ Vector bsVector = serviceDetail.getBusinessServiceVector();
+ if (bsVector.size() > 0)
+ {
+ bsVector.toArray(bsArray);
+ if (shouldAddQueryNode)
+ {
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(bsArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICES_FOUND",String.valueOf(bsArray.length)));
+ }
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,bsArray[0]);
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesAdvancedAction.java
new file mode 100644
index 000000000..08d064c57
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesAdvancedAction.java
@@ -0,0 +1,376 @@
+/*******************************************************************************
+ * 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.*;
+import org.uddi4j.util.*;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+import java.net.*;
+
+public class RegFindServicesAdvancedAction extends FindAction
+{
+ public RegFindServicesAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET,String.valueOf(UDDIActionInputs.QUERY_MAX_SEARCH_SET));
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS,String.valueOf(UDDIActionInputs.QUERY_MAX_RESULTS));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String ownedChecked = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED);
+ String[] busNodeIds = parser.getParameterValues(UDDIActionInputs.NODEID_BUSINESS);
+ String[] languages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+ String[] siNodeIds = parser.getParameterValues(UDDIActionInputs.NODEID_SERVICE_INTERFACE);
+ String[] findQualifierValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER);
+ String maxSearchSet = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET);
+ String maxResults = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+
+ if (ownedChecked != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_OWNED,ownedChecked);
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_OWNED);
+
+ if (busNodeIds != null)
+ {
+ // Although we already have the "submitted" data, deletions occur on the client side and thus the need to track this using hidden form elements.
+ Vector serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ if (serviceBusiness == null)
+ serviceBusiness = new Vector();
+ else
+ serviceBusiness.removeAllElements();
+ Vector serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY);
+ // The browser will enforce the rule of having only one business in this list.
+ ListElement listElement = (ListElement)serviceBusinessCopy.elementAt(0);
+ serviceBusiness.addElement(listElement);
+ BusinessEntity sp = (BusinessEntity)listElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,serviceBusiness);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER,sp);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER);
+ }
+
+ if (languages != null && names != null)
+ {
+ Vector nameVector = new Vector();
+ for (int i=0;i<names.length;i++)
+ {
+ Name uddi4jName;
+ if (languages[i].length() > 0)
+ uddi4jName = new Name(names[i],languages[i]);
+ else
+ uddi4jName = new Name(names[i]);
+ nameVector.addElement(uddi4jName);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,nameVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ if (siNodeIds != null)
+ {
+ // Although we already have the "submitted" data, deletions occur on the client side and thus the need to track this using hidden form elements.
+ Vector serviceServiceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ if (serviceServiceInterfaces == null)
+ serviceServiceInterfaces = new Vector();
+ else
+ serviceServiceInterfaces.removeAllElements();
+ Vector serviceServiceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY);
+ Vector tModelKeyStringVector = new Vector();
+ Hashtable resultHash = new Hashtable();
+ for (int i=0;i<siNodeIds.length;i++)
+ resultHash.put(siNodeIds[i],Boolean.TRUE);
+ for (int i=0;i<serviceServiceInterfacesCopy.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceServiceInterfacesCopy.elementAt(i);
+ if (resultHash.get(String.valueOf(listElement.getTargetNodeId())) != null)
+ {
+ serviceServiceInterfaces.addElement(listElement);
+ TModel tModel = (TModel)listElement.getObject();
+ tModelKeyStringVector.addElement(tModel.getTModelKey());
+ }
+ }
+ TModelBag tModelBag = new TModelBag(tModelKeyStringVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,serviceServiceInterfaces);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODELBAG,tModelBag);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODELBAG);
+ }
+
+ if (findQualifierValues != null)
+ {
+ FindQualifiers findQualifiers = new FindQualifiers();
+ Vector findQualifierVector = new Vector();
+ for (int i=0;i<findQualifierValues.length;i++)
+ {
+ FindQualifier findQualifier = new FindQualifier(findQualifierValues[i]);
+ findQualifierVector.addElement(findQualifier);
+ }
+ findQualifiers.setFindQualifierVector(findQualifierVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_FINDQUALIFIERS,findQualifiers);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_FINDQUALIFIERS);
+
+ if (maxSearchSet != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET,maxSearchSet);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET,maxSearchSet);
+ }
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxSearchSet))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_SEARCH_SET"));
+ inputsValid = false;
+ }
+
+ if (maxResults != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS,maxResults);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS,maxResults);
+ }
+ if (!subQueryInitiated_ && !Validator.validateInteger(maxResults))
+ {
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_MAX_RESULTS"));
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ FindQualifiers findQualifiers = (FindQualifiers)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_FINDQUALIFIERS);
+ BusinessEntity sp = (BusinessEntity)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER);
+ Vector nameVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ TModelBag tModelBag = (TModelBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODELBAG);
+ boolean owned = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_OWNED) != null);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ int maxSearchSet = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET));
+ int maxResults = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS));
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (owned && !regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ UDDIProxy proxy = regElement.getProxy();
+ String businessKey;
+ if (sp != null)
+ businessKey = sp.getBusinessKey();
+ else
+ businessKey = "";
+
+ int finalNumberOfServiceKeys;
+ Vector serviceKeyVector;
+ if (owned)
+ {
+ serviceKeyVector = findAllOwnedServices(proxy,regElement.getAuthInfoString(),businessKey,maxResults);
+ finalNumberOfServiceKeys = serviceKeyVector.size();
+ }
+ else
+ {
+ ServiceList serviceList = proxy.find_service(businessKey,nameVector,categoryBag,tModelBag,findQualifiers,maxSearchSet);
+ ServiceInfos sInfos = serviceList.getServiceInfos();
+ finalNumberOfServiceKeys = Math.min(maxResults,sInfos.size());
+ serviceKeyVector = new Vector();
+ for (int i=0;i<finalNumberOfServiceKeys;i++)
+ {
+ ServiceInfo sInfo = sInfos.get(i);
+ serviceKeyVector.addElement(sInfo.getServiceKey());
+ }
+ }
+
+ if (finalNumberOfServiceKeys > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ Vector finalBusServiceVector = new Vector();
+ int currentIndex = 0;
+ int windowSize = finalNumberOfServiceKeys;
+ while (currentIndex < serviceKeyVector.size())
+ {
+ int subListToIndex = Math.min(currentIndex+windowSize,serviceKeyVector.size());
+ try
+ {
+ ServiceDetail serviceDetail = proxy.get_serviceDetail(new Vector(serviceKeyVector.subList(currentIndex,subListToIndex)));
+ Vector busServiceVector = serviceDetail.getBusinessServiceVector();
+ for (int i=0;i<busServiceVector.size();i++)
+ finalBusServiceVector.addElement(busServiceVector.elementAt(i));
+ if (serviceDetail.getTruncatedBoolean())
+ windowSize = busServiceVector.size();
+ currentIndex += windowSize;
+ }
+ catch (UDDIException e)
+ {
+ DispositionReport dr = e.getDispositionReport();
+ if (((Result) dr.getResultVector().get(0)).getErrInfo().getErrCode() == DispositionReport.E_invalidKeyPassed)
+ {
+ String errInfoText = ((Result) dr.getResultVector().get(0)).getErrInfo().getText();
+ for (int i=currentIndex;i<subListToIndex;i++)
+ {
+ String serviceKey = (String)serviceKeyVector.elementAt(i);
+ if (errInfoText.indexOf(serviceKey) != -1 || errInfoText.indexOf(serviceKey.toUpperCase()) != -1 || errInfoText.indexOf(serviceKey.toLowerCase()) != -1)
+ {
+ serviceKeyVector.removeElementAt(i);
+ break;
+ }
+ }
+ }
+ else
+ throw e;
+ }
+ catch (TransportException e)
+ {
+ throw e;
+ }
+ }
+
+ int finalNumberOfBusinessServices = finalBusServiceVector.size();
+ if (finalNumberOfBusinessServices > 0)
+ {
+ BusinessService[] bsArray = new BusinessService[finalNumberOfBusinessServices];
+ finalBusServiceVector.toArray(bsArray);
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ queryElement_ = new QueryElement(bsArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICES_FOUND",String.valueOf(bsArray.length)));
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICES_FOUND"));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ }
+ return false;
+ }
+
+ // Copied directly from UDDIWSDLProxy's findAllOwnedServices() method with minor modifications. The hardcoded strings should NOT be translated.
+ private final Vector findAllOwnedServices(UDDIProxy proxy,String authInfoString,String businessKey,int maxResults) throws UDDIException, TransportException
+ {
+ RegisteredInfo registeredInfo = null;
+
+ // Get the complete list of owned (registered) info.
+ // (A RegisteredInfo consists of BusinessInfos and TModelInfos.
+ // BusinessInfos also contain ServiceInfos.)
+ registeredInfo = proxy.get_registeredInfo(authInfoString);
+
+ //Create a vector to add the serviceKeys from the registeredInfo to.
+ Vector serviceKeyList = new Vector();
+
+ //Get the businessInfos from the registeredInfo.
+ BusinessInfos businessInfos = registeredInfo.getBusinessInfos();
+
+ //Get all the serviceKeys from the serviceInfos within the businessInfos,
+ //and add them to the serviceKeyList.
+ boolean endSearch = false;
+ for (int i = 0; i < businessInfos.size(); i++)
+ {
+ BusinessInfo businessInfo = businessInfos.get(i);
+ String currentBusinessKey = businessInfo.getBusinessKey();
+ if (businessKey.length() > 0 && currentBusinessKey.equals(businessKey))
+ endSearch = true;
+ ServiceInfos serviceInfos = businessInfo.getServiceInfos();
+ for (int j = 0; j < serviceInfos.size(); j++)
+ {
+ ServiceInfo serviceInfo = serviceInfos.get(j);
+ if (serviceInfo.getBusinessKey().equals(currentBusinessKey))
+ {
+ if (serviceKeyList.size() < maxResults)
+ serviceKeyList.add(serviceInfo.getServiceKey());
+ else
+ {
+ endSearch = true;
+ break;
+ }
+ }
+ }
+ if (endSearch)
+ break;
+ }
+ return serviceKeyList;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesSimpleAction.java
new file mode 100644
index 000000000..05618e42a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegFindServicesSimpleAction.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.client.UDDIProxy;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.*;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.UDDIException;
+
+import java.util.*;
+
+public class RegFindServicesSimpleAction extends FindAction
+{
+ public RegFindServicesSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME);
+
+ // Validate the data.
+ boolean inputsValid = true;
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME,name);
+ else
+ {
+ // This shouldn't occur.
+ inputsValid = false;
+ }
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ boolean shouldAddQueryNode = (propertyTable_.get(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE) == null);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME);
+ Vector nameVector = new Vector();
+ nameVector.addElement(new Name(name));
+
+ // The action can be run under the context of either a registry or a query node.
+ Node selectedNode = getSelectedNavigatorNode();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ ServiceList serviceList = proxy.find_service("",nameVector,null,null,null,UDDIActionInputs.QUERY_MAX_SEARCH_SET);
+
+ ServiceInfos sInfos = serviceList.getServiceInfos();
+ int finalNumberOfBusinessServices = Math.min(UDDIActionInputs.QUERY_MAX_RESULTS,sInfos.size());
+ Vector serviceKeyVector = new Vector();
+ for (int i=0;i<finalNumberOfBusinessServices;i++)
+ {
+ ServiceInfo sInfo = sInfos.get(i);
+ serviceKeyVector.addElement(sInfo.getServiceKey());
+ }
+
+ if (finalNumberOfBusinessServices > 0)
+ {
+ if (shouldAddQueryNode)
+ {
+ ServiceDetail serviceDetail = proxy.get_serviceDetail(serviceKeyVector);
+ Vector businessServiceVector = serviceDetail.getBusinessServiceVector();
+ String queryName = (String)propertyTable_.get(UDDIActionInputs.QUERY_NAME);
+ BusinessService[] bsArray = new BusinessService[finalNumberOfBusinessServices];
+ businessServiceVector.toArray(bsArray);
+ queryElement_ = new QueryElement(bsArray,queryName,regElement.getModel());
+ addQueryNode();
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICES_FOUND",String.valueOf(bsArray.length)));
+ }
+ return true;
+ }
+ else
+ throw new FormInputException(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICES_FOUND"));
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (FormInputException e)
+ {
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessAdvancedAction.java
new file mode 100644
index 000000000..001fbad7e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessAdvancedAction.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.*;
+import org.uddi4j.util.IdentifierBag;
+import org.uddi4j.util.CategoryBag;
+import org.uddi4j.util.DiscoveryURLs;
+import org.uddi4j.util.DiscoveryURL;
+import org.uddi4j.util.KeyedReference;
+
+import java.util.*;
+import java.net.*;
+
+public class RegPublishBusinessAdvancedAction extends PublishAction
+{
+ public RegPublishBusinessAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String[] nameLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+ String[] discoveryURLValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DISCOVERYURL);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ Hashtable languageHash = new Hashtable();
+ if (nameLanguages != null && names != null)
+ {
+ Vector nameVector = new Vector();
+ // UDDI's save API (Appendix C of the UDDI V2 Programmers API Specification) requires the following:
+ // 1) Only the first row can have a blank language.
+ // 2) Only 1 name per language.
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_NAME");
+ for (int i=0;i<names.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Name uddi4jName;
+ if (nameLanguages[i].length() > 0)
+ uddi4jName = new Name(names[i],nameLanguages[i]);
+ else
+ {
+ uddi4jName = new Name(names[i]);
+ if (i != 0 && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(nameLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(nameLanguages[i],Boolean.TRUE);
+ if (names[i].trim().length() < 1)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ nameVector.addElement(uddi4jName);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,nameVector);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ if (!subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NO_NAMES"));
+ }
+ }
+
+ if (descriptionLanguages != null && descriptions != null)
+ {
+ Vector descriptionVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0 && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (descriptions[i].trim().length() < 1)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ descriptionVector.addElement(uddi4jDescription);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,descriptionVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+
+ if (idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ IdentifierBag idBag = new IdentifierBag();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ idBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS,idBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+
+ if (discoveryURLValues != null)
+ {
+ DiscoveryURLs discoveryURLs = new DiscoveryURLs();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURL");
+ for (int i=0;i<discoveryURLValues.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ if (!subQueryInitiated_ && !Validator.validateURL(discoveryURLValues[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ discoveryURLs.add(new DiscoveryURL(discoveryURLValues[i],""));
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,discoveryURLs);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ Vector nameVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ Vector descriptionVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+ IdentifierBag identifierBag = (IdentifierBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ DiscoveryURLs discoveryURLs = (DiscoveryURLs)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+
+ BusinessEntity be = new BusinessEntity();
+ be.setBusinessKey("");
+ be.setNameVector(nameVector);
+ be.setDescriptionVector(descriptionVector);
+ be.setIdentifierBag(identifierBag);
+ be.setCategoryBag(categoryBag);
+ be.setDiscoveryURLs(discoveryURLs);
+ Vector beVector = new Vector();
+ beVector.add(be);
+
+ be = (BusinessEntity)proxy.save_business(regElement.getAuthInfoString(), beVector).getBusinessEntityVector().get(0);
+ addPublishedItemNode(be,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESS_PUBLISHED",be.getDefaultNameString()));
+ return true;
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessSimpleAction.java
new file mode 100644
index 000000000..10ee7ef74
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishBusinessSimpleAction.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.*;
+
+import java.util.*;
+import java.net.*;
+
+public class RegPublishBusinessSimpleAction extends PublishAction
+{
+ public RegPublishBusinessSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME);
+ String description = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME,name);
+
+ if (!subQueryInitiated_ && !Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+
+ if (description != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION,description);
+
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME);
+ String description = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION);
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ try
+ {
+ UDDIProxy proxy = regElement.getProxy();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ BusinessEntity be = new BusinessEntity();
+ be.setBusinessKey("");
+ be.setDefaultName(new Name(name));
+ be.setDefaultDescriptionString(description);
+ Vector beVector = new Vector();
+ beVector.add(be);
+
+ be = (BusinessEntity)proxy.save_business(regElement.getAuthInfoString(), beVector).getBusinessEntityVector().get(0);
+ addPublishedItemNode(be,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESS_PUBLISHED",be.getDefaultNameString()));
+ return true;
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceAdvancedAction.java
new file mode 100644
index 000000000..d9a3ca50a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceAdvancedAction.java
@@ -0,0 +1,363 @@
+/*******************************************************************************
+ * 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.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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.*;
+import org.uddi4j.util.*;
+
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+import java.util.*;
+import java.net.*;
+
+public class RegPublishServiceAdvancedAction extends PublishAction
+{
+ public RegPublishServiceAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String busNodeIds = parser.getParameter(UDDIActionInputs.NODEID_BUSINESS);
+ String[] serIntIds = parser.getParameterValues(UDDIActionInputs.NODEID_SERVICE_INTERFACE);
+ String wsdlURL = parser.getParameter(ActionInputs.QUERY_INPUT_WSDL_URL);
+ String[] nameLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (busNodeIds != null)
+ {
+ Vector serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ if (serviceBusiness == null)
+ serviceBusiness = new Vector();
+ else
+ serviceBusiness.removeAllElements();
+ Vector serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY);
+ // The browser will enforce the rule of having only one business in this list.
+ ListElement listElement = (ListElement)serviceBusinessCopy.elementAt(0);
+ serviceBusiness.addElement(listElement);
+ BusinessEntity sp = (BusinessEntity)listElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,serviceBusiness);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER,sp);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,sp.getBusinessKey());
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER);
+ if (!subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_BUSINESS"));
+ }
+ }
+
+ if (serIntIds != null && serIntIds.length > 0)
+ {
+ Vector serviceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ if (serviceInterfaces == null)
+ serviceInterfaces = new Vector();
+ else
+ serviceInterfaces.removeAllElements();
+ Vector serviceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY);
+ Vector tmodels = new Vector();
+ for (Iterator it = serviceInterfacesCopy.iterator(); it.hasNext();)
+ {
+ ListElement listElement = (ListElement)it.next();
+ int targetNodeId = listElement.getTargetNodeId();
+ for (int i = 0; i < serIntIds.length; i++)
+ {
+ try
+ {
+ if (targetNodeId == Integer.parseInt(serIntIds[i]))
+ {
+ serviceInterfaces.add(listElement);
+ tmodels.add(listElement.getObject());
+ break;
+ }
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ }
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES, serviceInterfaces);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODEL, tmodels);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODEL);
+ }
+
+ if (wsdlURL != null)
+ {
+ propertyTable_.put(ActionInputs.QUERY_INPUT_WSDL_URL,wsdlURL);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,wsdlURL);
+ }
+
+ if (!subQueryInitiated_ && !Validator.validateString(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+
+ Hashtable languageHash = new Hashtable();
+ if (nameLanguages != null && names != null)
+ {
+ Vector nameVector = new Vector();
+ // UDDI's save API (Appendix C of the UDDI V2 Programmers API Specification) requires the following:
+ // 1) Only the first row can have a blank language.
+ // 2) Only 1 name per language.
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_NAME");
+ for (int i=0;i<names.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Name uddi4jName;
+ if (nameLanguages[i].length() > 0)
+ uddi4jName = new Name(names[i],nameLanguages[i]);
+ else
+ {
+ uddi4jName = new Name(names[i]);
+ if (i != 0 && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(nameLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(nameLanguages[i],Boolean.TRUE);
+ if (names[i].trim().length() < 1)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ nameVector.addElement(uddi4jName);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,nameVector);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ if (!subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NO_NAMES"));
+ }
+ }
+
+ if (descriptionLanguages != null && descriptions != null)
+ {
+ Vector descriptionVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0 && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (descriptions[i].trim().length() < 1)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ descriptionVector.addElement(uddi4jDescription);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,descriptionVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ BusinessEntity be = (BusinessEntity)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER);
+ String businessKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ Vector tModelVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODEL);
+ String wsdlURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ Vector nameVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ Vector descriptionVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ Definition def = uddi4jHelper.getWSDLDefinition(wsdlURL);
+
+ BusinessService bs;
+ if (tModelVector != null && tModelVector.size() > 0)
+ bs = uddi4jHelper.newBusinessService(wsdlURL, def, (TModel[])tModelVector.toArray(new TModel[0]));
+ else
+ {
+ RegPublishServiceInterfaceSimpleAction regPublishSIAction = new RegPublishServiceInterfaceSimpleAction(controller_);
+ int currentNodeId = getSelectedNavigatorNode().getNodeId();
+ NodeManager nodeManager = regNode_.getNodeManager();
+ TModel[] tModels = null;
+ if (uddi4jHelper.isMonolithicWSDL(def))
+ {
+ tModels = new TModel[1];
+ tModels[0] = uddi4jHelper.newTModel(wsdlURL, def);
+ }
+ else
+ {
+ String[] imports = uddi4jHelper.getImports(def, wsdlURL);
+ tModels = new TModel[imports.length];
+ for (int i = 0; i < tModels.length; i++)
+ tModels[i] = uddi4jHelper.newTModel(imports[i]);
+ }
+ Hashtable tModelsTable = new Hashtable();
+ if (tModels != null)
+ {
+ for (int i=0;i<tModels.length;i++)
+ {
+ boolean inputsValid = regPublishSIAction.populatePropertyTable(uddi4jHelper.getWSDL(tModels[i]), tModels[i]);
+ if (inputsValid)
+ {
+ regPublishSIAction.run();
+ Object savedTModel = regPublishSIAction.getPropertyTable().get(UDDIActionInputs.QUERY_OUTPUT_SAVED_TMODEL);
+ if (savedTModel != null)
+ tModelsTable.put(((TModel)savedTModel).getNameString(), savedTModel);
+ // Reselect the current node.
+ nodeManager.setSelectedNodeId(currentNodeId);
+ }
+ }
+ }
+ bs = uddi4jHelper.newBusinessService(wsdlURL, def, tModelsTable);
+ }
+
+ if (be != null)
+ bs.setBusinessKey(be.getBusinessKey());
+ else if (businessKey != null)
+ bs.setBusinessKey(businessKey);
+ bs.setNameVector(nameVector);
+ bs.setDescriptionVector(descriptionVector);
+ bs.setCategoryBag(categoryBag);
+ Vector bsVector = new Vector();
+ bsVector.add(bs);
+ regElement.handlePreInvocation(bs);
+ bs = (BusinessService)proxy.save_service(regElement.getAuthInfoString(), bsVector).getBusinessServiceVector().get(0);
+ addPublishedItemNode(bs,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_PUBLISHED",bs.getDefaultNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("WSDLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceAdvancedAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceAdvancedAction.java
new file mode 100644
index 000000000..ef218529a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceAdvancedAction.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.*;
+import org.uddi4j.util.*;
+
+import javax.wsdl.WSDLException;
+import java.util.*;
+import java.net.*;
+
+public class RegPublishServiceInterfaceAdvancedAction extends PublishAction
+{
+ public RegPublishServiceInterfaceAdvancedAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+ }
+
+ protected final boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String wsdlURL = parser.getParameter(ActionInputs.QUERY_INPUT_WSDL_URL);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+
+ // Validate the data.
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ Hashtable languageHash = new Hashtable();
+
+ if (wsdlURL != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL,wsdlURL);
+
+ if (!subQueryInitiated_ && !Validator.validateString(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,name);
+
+ if (!subQueryInitiated_ && !Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+
+ if (descriptionLanguages != null && descriptions != null)
+ {
+ Vector descriptionVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0 && !subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (descriptions[i].trim().length() < 1)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+ descriptionVector.addElement(uddi4jDescription);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,descriptionVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+
+ if (idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ IdentifierBag idBag = new IdentifierBag();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ idBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS,idBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+
+ if (catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ CategoryBag catBag = new CategoryBag();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ catBag.add(kr);
+ }
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES,catBag);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ String wsdlURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ Vector descriptionVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+ IdentifierBag identifierBag = (IdentifierBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ CategoryBag categoryBag = (CategoryBag)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+
+ // The action can be run under the context of either a registry or a query node.
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+
+ TModel tModel = (new Uddi4jHelper()).newTModel(wsdlURL);
+ tModel.setName(name);
+ tModel.setDescriptionVector(descriptionVector);
+ tModel.setIdentifierBag(identifierBag);
+
+ // The category bag may contain wsdlSpec.
+ CategoryBag defaultCategoryBag = tModel.getCategoryBag();
+ Vector defaultKeyedReferenceVector = null;
+ if (defaultCategoryBag != null)
+ {
+ if (categoryBag == null)
+ categoryBag = defaultCategoryBag;
+ else
+ {
+ defaultKeyedReferenceVector = defaultCategoryBag.getKeyedReferenceVector();
+ for (int i=0;i<defaultKeyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)defaultKeyedReferenceVector.elementAt(i);
+ if (categoryBag != null)
+ categoryBag.add(kr);
+ }
+ }
+ }
+ tModel.setCategoryBag(categoryBag);
+
+ Vector tModelVector = new Vector();
+ tModelVector.add(tModel);
+ tModel = (TModel)proxy.save_tModel(regElement.getAuthInfoString(), tModelVector).getTModelVector().get(0);
+ propertyTable_.put(UDDIActionInputs.QUERY_OUTPUT_SAVED_TMODEL, tModel);
+ addPublishedItemNode(tModel,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACE_PUBLISHED",tModel.getNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("WSDLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceSimpleAction.java
new file mode 100644
index 000000000..211baade0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceInterfaceSimpleAction.java
@@ -0,0 +1,156 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import javax.wsdl.WSDLException;
+import java.util.*;
+import java.net.*;
+
+public class RegPublishServiceInterfaceSimpleAction extends PublishAction
+{
+ public RegPublishServiceInterfaceSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String wsdlURL = parser.getParameter(ActionInputs.QUERY_INPUT_WSDL_URL);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME);
+ String description = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (wsdlURL != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL,wsdlURL);
+
+ if (!subQueryInitiated_ && !Validator.validateString(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME,name);
+
+ if (!subQueryInitiated_ && !Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+
+ if (description != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION,description);
+
+ return inputsValid;
+ }
+
+ public final boolean populatePropertyTable(String wsdlURL, TModel tModel)
+ {
+ boolean inputsValid = true;
+ String name = tModel.getNameString();
+ String description = tModel.getDefaultDescriptionString();
+ if (wsdlURL != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL,wsdlURL);
+ else
+ inputsValid = false;
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME,name);
+ else
+ inputsValid = false;
+
+ if (description != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION,description);
+ else
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION,"");
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ String wsdlURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME);
+ String description = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION);
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ try
+ {
+ UDDIProxy proxy = regElement.getProxy();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ TModel tModel = (new Uddi4jHelper()).newTModel(wsdlURL);
+ tModel.setName(name);
+ tModel.setDefaultDescriptionString(description);
+
+ Vector tModelVector = new Vector();
+ tModelVector.add(tModel);
+ tModel = (TModel)proxy.save_tModel(regElement.getAuthInfoString(), tModelVector).getTModelVector().get(0);
+ propertyTable_.put(UDDIActionInputs.QUERY_OUTPUT_SAVED_TMODEL, tModel);
+ addPublishedItemNode(tModel,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACE_PUBLISHED",tModel.getNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ e.printStackTrace();
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("WSDLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (TransportException e)
+ {
+ e.printStackTrace();
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ e.printStackTrace();
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceSimpleAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceSimpleAction.java
new file mode 100644
index 000000000..bbe0caafb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RegPublishServiceSimpleAction.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * 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.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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.*;
+
+import javax.wsdl.WSDLException;
+import javax.wsdl.Definition;
+import java.util.*;
+import java.net.*;
+
+public class RegPublishServiceSimpleAction extends PublishAction
+{
+ public RegPublishServiceSimpleAction(Controller controller)
+ {
+ super(controller);
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ propertyTable_.put(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE));
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String busNodeIds = parser.getParameter(UDDIActionInputs.NODEID_BUSINESS);
+ String wsdlURL = parser.getParameter(ActionInputs.QUERY_INPUT_WSDL_URL);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME);
+ String description = parser.getParameter(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (busNodeIds != null)
+ {
+ Vector serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS);
+ if (serviceBusiness == null)
+ serviceBusiness = new Vector();
+ else
+ serviceBusiness.removeAllElements();
+ Vector serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY);
+ // The browser will enforce the rule of having only one business in this list.
+ ListElement listElement = (ListElement)serviceBusinessCopy.elementAt(0);
+ serviceBusiness.addElement(listElement);
+ BusinessEntity be = (BusinessEntity)listElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS,serviceBusiness);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER,be);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,be.getBusinessKey());
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS);
+ removeProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER);
+ if (!subQueryInitiated_)
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_BUSINESS"));
+ }
+ }
+
+ if (wsdlURL != null)
+ {
+ propertyTable_.put(ActionInputs.QUERY_INPUT_WSDL_URL,wsdlURL);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL,wsdlURL);
+ }
+
+ if (!subQueryInitiated_ && !Validator.validateString(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+
+ if (name != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME,name);
+
+ if (!subQueryInitiated_ && !Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+
+ if (description != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION,description);
+
+ return inputsValid;
+ }
+
+ public final boolean run()
+ {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ BusinessEntity be = (BusinessEntity)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER);
+ String businessKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ String wsdlURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL);
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME);
+ String description = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION);
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ try
+ {
+ UDDIProxy proxy = regElement.getProxy();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ Definition def = uddi4jHelper.getWSDLDefinition(wsdlURL);
+ RegPublishServiceInterfaceSimpleAction regPublishSIAction = new RegPublishServiceInterfaceSimpleAction(controller_);
+ int currentNodeId = getSelectedNavigatorNode().getNodeId();
+ NodeManager nodeManager = regNode_.getNodeManager();
+
+ Hashtable tModelsTable = new Hashtable();
+ TModel[] tModels = null;
+ if (uddi4jHelper.isMonolithicWSDL(def))
+ {
+ tModels = new TModel[1];
+ tModels[0] = uddi4jHelper.newTModel(wsdlURL, def);
+ }
+ else
+ {
+ String[] imports = uddi4jHelper.getImports(def, wsdlURL);
+ tModels = new TModel[imports.length];
+ for (int i = 0; i < tModels.length; i++)
+ tModels[i] = uddi4jHelper.newTModel(imports[i]);
+ }
+
+ if (tModels != null)
+ {
+ for (int i=0;i<tModels.length;i++)
+ {
+ boolean inputsValid = regPublishSIAction.populatePropertyTable(uddi4jHelper.getWSDL(tModels[i]), tModels[i]);
+ if (inputsValid)
+ {
+ regPublishSIAction.run();
+ Object savedTModel = regPublishSIAction.getPropertyTable().get(UDDIActionInputs.QUERY_OUTPUT_SAVED_TMODEL);
+ if (savedTModel != null)
+ {
+ tModelsTable.put(((TModel)savedTModel).getNameString(), savedTModel);
+ }
+ // Reselect the current node.
+ nodeManager.setSelectedNodeId(currentNodeId);
+ }
+ }
+ }
+
+ BusinessService bs = uddi4jHelper.newBusinessService(wsdlURL, def, tModelsTable);
+ if (be != null)
+ bs.setBusinessKey(be.getBusinessKey());
+ else if (businessKey != null)
+ bs.setBusinessKey(businessKey);
+ bs.setDefaultName(new Name(name));
+ bs.setDefaultDescriptionString(description);
+ Vector bsVector = new Vector();
+ bsVector.add(bs);
+ regElement.handlePreInvocation(bs);
+ bs = (BusinessService)proxy.save_service(regElement.getAuthInfoString(), bsVector).getBusinessServiceVector().get(0);
+ addPublishedItemNode(bs,regElement);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_PUBLISHED",bs.getDefaultNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("WSDLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (TransportException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(e.getMessage());
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemovePublisherAssertionsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemovePublisherAssertionsAction.java
new file mode 100644
index 000000000..87dce12d6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemovePublisherAssertionsAction.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.*;
+import org.uddi4j.response.*;
+import org.uddi4j.datatype.assertion.*;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+
+import java.util.*;
+import java.net.*;
+
+public class RemovePublisherAssertionsAction extends CommonPublisherAssertionsAction
+{
+ public RemovePublisherAssertionsAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ if (registryNode_ == null)
+ return false;
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+
+ // ids from uddiObjects_table
+ String[] selectedBusIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (selectedBusIds != null && selectedBusIds.length > 0)
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, selectedBusIds);
+ // Synchronize client view and server model (uddiObject_table.jsp)
+ synchronizeUDDIObjectTable();
+
+ // if not yet logged in, validate the parameters needed to log in
+ if (!isLoggedIn_) {
+ 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);
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (!Validator.validateURL(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 (!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);
+ }
+ }
+
+ // ids from publisher assertion table
+ String[] pubAssertionsViewIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID);
+ if (pubAssertionsViewIds == null || pubAssertionsViewIds.length == 0)
+ inputsValid = false;
+ else
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID, pubAssertionsViewIds);
+
+ return inputsValid;
+ }
+
+ public boolean run()
+ {
+ if (registryNode_ == null)
+ return false;
+
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ if (!(selectedElement instanceof BusinessElement))
+ return false;
+
+ // if not yet logged in, log in first
+ if (!isLoggedIn_) {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userID = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+
+ try {
+ registryElement.performLogin(publishURL, userID, password);
+ }
+ catch (TransportException te) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(te.getMessage());
+ return false;
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(uddie.toString());
+ return false;
+ }
+ catch (MalformedURLException me) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(me.getMessage());
+ return false;
+ }
+ }
+
+ UDDIProxy proxy = registryElement.getProxy();
+ String userID = registryElement.getUserId();
+ String cred = registryElement.getCred();
+ BusinessElement busElement = (BusinessElement)selectedElement;
+ ListManager pubAssertions = busElement.getPublisherAssertions();
+
+ // determine whether this is a owned business
+ // if not, the AddPublisherAssertionsAction cannot be performed
+ if (!isBusinessOwned(busElement)) {
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NOT_OWNED_BUSINESS"));
+ return false;
+ }
+
+ try {
+ String[] pubAssertionViewIds = (String[])propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID);
+ Vector pubAssertionVector = new Vector();
+ boolean refreshRequired = false;
+
+ for (int i = 0; i < pubAssertionViewIds.length; i++) {
+ int viewID = Integer.parseInt(pubAssertionViewIds[i]);
+ ListElement listElement = pubAssertions.getElementWithViewId(viewID);
+ PublisherAssertionElement pubAssertionElement = (PublisherAssertionElement)listElement.getObject();
+ PublisherAssertion pubAssertion = pubAssertionElement.getPublisherAssertion();
+ pubAssertionVector.add(pubAssertion);
+ if (pubAssertionElement.getStatus().equals(CompletionStatus.COMPLETE))
+ refreshRequired = true;
+ }
+
+ DispositionReport report = proxy.delete_publisherAssertions(registryElement.getAuthInfoString(), pubAssertionVector);
+ //report status
+ Vector reportErrInfo = report.getResultVector();
+ for (int i = 0; i < reportErrInfo.size(); i++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(i)).getErrInfo().getText());
+ }
+
+ // refresh is required, refresh the whole publisher assertion table
+ if (refreshRequired) {
+ ShowPublisherAssertionsAction showPAAction = new ShowPublisherAssertionsAction(controller_);
+ Hashtable propertyTable = showPAAction.getPropertyTable();
+ Object ids = propertyTable_.get(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (ids != null)
+ propertyTable.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, ids);
+ showPAAction.run();
+ }
+ // refresh is not required, delete the selected publisher assertion elements
+ else {
+ for (int k = 0; k < pubAssertionViewIds.length; k++) {
+ pubAssertions.removeElementWithViewId(Integer.parseInt(pubAssertionViewIds[k]));
+ }
+ }
+
+ return report.success();
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ DispositionReport report = uddie.getDispositionReport();
+ Vector reportErrInfo = report.getResultVector();
+ for (int i = 0; i < reportErrInfo.size(); i++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(i)).getErrInfo().getText());
+ }
+ return false;
+ }
+ catch (Exception e) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("Exception");
+ messageQueue.addMessage(e.getMessage());
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemoveSubQueryItemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemoveSubQueryItemAction.java
new file mode 100644
index 000000000..6c824874c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/RemoveSubQueryItemAction.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+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.perspective.*;
+
+import javax.servlet.http.*;
+
+import java.util.*;
+
+public class RemoveSubQueryItemAction extends Action
+{
+ private Controller controller_;
+
+ public RemoveSubQueryItemAction(Controller controller)
+ {
+ super();
+ controller_ = controller;
+ }
+
+ // uddi/actions/RemoveSubQueryItemActionJSP.jsp?subQueryKey=...&subQueryListKey=...&subQueryListItemId=...
+ public static final String getActionLink(String subQueryKey,String subQueryListKey,int subQueryListItemId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/RemoveSubQueryItemActionJSP.jsp?");
+ actionLink.append(UDDIActionInputs.SUBQUERY_KEY).append('=').append(subQueryKey);
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_LIST_KEY).append('=').append(subQueryListKey);
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_LIST_ITEMID).append('=').append(subQueryListItemId);
+ return actionLink.toString();
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ String subQueryKey = request.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryListKey = request.getParameter(UDDIActionInputs.SUBQUERY_LIST_KEY);
+ String subQueryListItemId = request.getParameter(UDDIActionInputs.SUBQUERY_LIST_ITEMID);
+
+ if (subQueryKey != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_KEY,subQueryKey);
+
+ if (subQueryListKey != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_LIST_KEY,subQueryListKey);
+
+ if (subQueryListItemId != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_LIST_ITEMID,subQueryListItemId);
+
+ return true;
+ }
+
+ public boolean run()
+ {
+ String subQueryKey = (String)propertyTable_.get(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryListKey = (String)propertyTable_.get(UDDIActionInputs.SUBQUERY_LIST_KEY);
+ int subQueryListItemId = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_LIST_ITEMID));
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node currentNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(currentNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_KEY));
+ Vector list = (Vector)formToolPI.getProperty((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_LIST_KEY));
+ list.removeElementAt(subQueryListItemId);
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ResizeUDDIFramesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ResizeUDDIFramesAction.java
new file mode 100644
index 000000000..93041d66d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ResizeUDDIFramesAction.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+public class ResizeUDDIFramesAction extends ResizeFramesAction
+{
+ public ResizeUDDIFramesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ // Save the current frameset sizes.
+ String frameName = (String)propertyTable_.get(ActionInputs.FRAME_NAME);
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+
+ // Set the new frameset sizes.
+ boolean saveFrameSettings = false;
+ if (frameName.equals(UDDIFrameNames.NAVIGATOR_CONTAINER))
+ {
+ uddiPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+ uddiPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ if (perspectiveContentFramesetCols.startsWith("100%"))
+ {
+ // Restore.
+ uddiPerspective.setPerspectiveContentFramesetCols(uddiPerspective.getSavedPerspectiveContentFramesetCols());
+ }
+ else
+ {
+ // Maximize.
+ uddiPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ uddiPerspective.setPerspectiveContentFramesetCols("100%,0%");
+ }
+ }
+ else if (frameName.equals(UDDIFrameNames.PROPERTIES_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.startsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ uddiPerspective.setPerspectiveContentFramesetCols(uddiPerspective.getSavedPerspectiveContentFramesetCols());
+ uddiPerspective.setActionsContainerFramesetRows(uddiPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ uddiPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ uddiPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ uddiPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ uddiPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ uddiPerspective.setActionsContainerFramesetRows("100%,0%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ uddiPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ uddiPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ else if (frameName.equals(UDDIFrameNames.STATUS_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.endsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ uddiPerspective.setPerspectiveContentFramesetCols(uddiPerspective.getSavedPerspectiveContentFramesetCols());
+ uddiPerspective.setActionsContainerFramesetRows(uddiPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ uddiPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ uddiPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ uddiPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ uddiPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ uddiPerspective.setActionsContainerFramesetRows("0%,100%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ uddiPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ uddiPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectCategoryNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectCategoryNodeAction.java
new file mode 100644
index 000000000..7fa3d43df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectCategoryNodeAction.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectCategoryNodeAction extends SelectNodeAction
+{
+ public SelectCategoryNodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getCategoryManager());
+ }
+
+ // uddi/actions/SelectCategoryNodeAction.jsp?sessionId=...&nodeId=...
+ public static String getActionLink(String sessionId,int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/SelectCategoryNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ actionLink.append('&').append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ // Do not add this action to the history.
+ return null;
+ }
+
+ public final boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ performBaseAction(nodeId);
+ return true;
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "categoryBrowserWindowContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return null;
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return null;
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return null;
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectFindToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectFindToolAction.java
new file mode 100644
index 000000000..5afd276b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectFindToolAction.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * 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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import javax.servlet.http.*;
+
+public class SelectFindToolAction extends SelectPropertiesToolAction
+{
+ protected String subQueryKey_;
+ protected boolean toolLinkChanged_;
+
+ public SelectFindToolAction(Controller controller)
+ {
+ super(controller);
+ subQueryKey_ = null;
+ toolLinkChanged_ = false;
+ }
+
+ public boolean processLinkParameters(HttpServletRequest request)
+ {
+ boolean result = super.processLinkParameters(request);
+ subQueryKey_ = request.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+ return result;
+ }
+
+ // /uddi/actions/SelectFindToolAction.jsp?nodeId=...&toolId=...<&viewId=...&viewToolId=...>&subQueryKey=...<&isHistory=1>
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId,String subQueryKey,boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/SelectFindToolActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.TOOLID).append('=').append(toolId);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ {
+ actionLink.append('&').append(ActionInputs.VIEWID).append('=').append(viewId);
+ actionLink.append('&').append(ActionInputs.VIEWTOOLID).append('=').append(viewToolId);
+ }
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_KEY).append('=').append(subQueryKey);
+
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ public boolean run()
+ {
+ if (!super.run())
+ return false;
+ FormTool formTool = (FormTool)(selectedNode_.getCurrentToolManager().getSelectedTool());
+ String currentSubQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ if (subQueryKey_ != null && !subQueryKey_.equals(currentSubQueryKey))
+ {
+ toolLinkChanged_ = true;
+ formTool.setProperty(UDDIActionInputs.SUBQUERY_KEY,subQueryKey_);
+ }
+ return true;
+ }
+
+ public boolean requiresViewSelection()
+ {
+ return toolLinkChanged_;
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool_.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ return getActionLink(nodeId,toolId,viewId,viewToolId,subQueryKey_,true);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectNavigatorNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectNavigatorNodeAction.java
new file mode 100644
index 000000000..a03472c09
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectNavigatorNodeAction.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectNavigatorNodeAction extends SelectNodeAction
+{
+ public SelectNavigatorNodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getNavigatorManager());
+ }
+
+ // uddi/actions/SelectNavigatorNodeAction.jsp?nodeId=...<&isHistory=1>
+ public static String getActionLink(int nodeId,boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/SelectNavigatorNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ public String getActionLinkForHistory()
+ {
+ ToolManager toolManager = selectedNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return selectedTool.getSelectToolActionHref(true);
+ else
+ return getActionLink(nodeId,true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "navigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "uddi/navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "propertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "uddi/properties_container.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectPropertiesToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectPropertiesToolAction.java
new file mode 100644
index 000000000..388995c4c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectPropertiesToolAction.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectPropertiesToolAction extends SelectNodeToolAction
+{
+ public SelectPropertiesToolAction(Controller controller)
+ {
+ super(controller, controller.getUDDIPerspective().getNavigatorManager());
+ }
+
+ // /uddi/actions/SelectPropertiesToolAction.jsp?nodeId=...&toolId=...<&viewId=...&viewToolId=...><&isHistory=1>
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId,boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/SelectPropertiesToolActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.TOOLID).append('=').append(toolId);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ {
+ actionLink.append('&').append(ActionInputs.VIEWID).append('=').append(viewId);
+ actionLink.append('&').append(ActionInputs.VIEWTOOLID).append('=').append(viewToolId);
+ }
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool_.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ return getActionLink(nodeId,toolId,viewId,viewToolId,true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "navigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "uddi/navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "propertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "uddi/properties_container.jsp";
+ }
+
+ public final String getPropertiesContentVar()
+ {
+ return "propertiesContent";
+ }
+
+ public final String getPropertiesContentPage()
+ {
+ return "uddi/properties_content.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectSubQueryItemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectSubQueryItemAction.java
new file mode 100644
index 000000000..0d9f2f06a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SelectSubQueryItemAction.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * 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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import javax.servlet.http.*;
+
+import java.util.*;
+
+public class SelectSubQueryItemAction extends SelectPropertiesToolAction
+{
+ private boolean requiresTreeViewRefresh_;
+ private boolean requiresViewSelection_;
+ private boolean newUUIDQueryCreated_;
+ private String itemName_;
+ public SelectSubQueryItemAction(Controller controller)
+ {
+ super(controller);
+ requiresTreeViewRefresh_ = false;
+ requiresViewSelection_ = false;
+ newUUIDQueryCreated_ = false;
+ itemName_ = null;
+ }
+
+ // /uddi/actions/SelectSubQueryItemAction.jsp?nodeId=...&toolId=...<&viewId=...>&subQueryKey=...&subQueryListKey=...&subQueryListItemId=...&queryItem=...<&isHistory=1>
+ public static final String getActionLink(int nodeId,int toolId,int viewId,String subQueryKey,String subQueryListKey,int subQueryListItemId,int queryItem,boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/SelectSubQueryItemActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.TOOLID).append('=').append(toolId);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ actionLink.append('&').append(ActionInputs.VIEWID).append('=').append(viewId);
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_KEY).append('=').append(subQueryKey);
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_LIST_KEY).append('=').append(subQueryListKey);
+ actionLink.append('&').append(UDDIActionInputs.SUBQUERY_LIST_ITEMID).append('=').append(subQueryListItemId);
+ actionLink.append('&').append(UDDIActionInputs.QUERY_ITEM).append('=').append(queryItem);
+
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ public boolean processLinkParameters(HttpServletRequest request)
+ {
+ boolean result = super.processLinkParameters(request);
+ String subQueryKey = request.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryListKey = request.getParameter(UDDIActionInputs.SUBQUERY_LIST_KEY);
+ String subQueryListItemId = request.getParameter(UDDIActionInputs.SUBQUERY_LIST_ITEMID);
+ String queryItemString = request.getParameter(UDDIActionInputs.QUERY_ITEM);
+
+ if (subQueryKey != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_KEY,subQueryKey);
+
+ if (subQueryListKey != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_LIST_KEY,subQueryListKey);
+
+ if (subQueryListItemId != null)
+ propertyTable_.put(UDDIActionInputs.SUBQUERY_LIST_ITEMID,subQueryListItemId);
+
+ if (queryItemString != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_ITEM,queryItemString);
+ return result;
+ }
+
+ private final boolean findByUUID()
+ {
+ Node currentNode = nodeManager_.getSelectedNode();
+ FormTool formTool = (FormTool)(currentNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_KEY));
+ Vector list = (Vector)formToolPI.getProperty((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_LIST_KEY));
+ ListElement listElement = (ListElement)list.elementAt(Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.SUBQUERY_LIST_ITEMID)));
+ int queryItem = Integer.parseInt((String)propertyTable_.get(UDDIActionInputs.QUERY_ITEM));
+ FindAction findAction = null;
+ String uuidKey = null;
+ String uuidKeyValue = null;
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ findAction = new RegFindBusinessUUIDAction(controller_);
+ uuidKey = UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY;
+ BusinessEntity sp = (BusinessEntity)listElement.getObject();
+ uuidKeyValue = sp.getBusinessKey();
+ itemName_ = sp.getDefaultNameString();
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ findAction = new RegFindServiceUUIDAction(controller_);
+ uuidKey = UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY;
+ BusinessService bs = (BusinessService)listElement.getObject();
+ uuidKeyValue = bs.getServiceKey();
+ itemName_ = bs.getDefaultNameString();
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ findAction = new RegFindServiceInterfaceUUIDAction(controller_);
+ uuidKey = UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY;
+ TModel tModel = (TModel)listElement.getObject();
+ uuidKeyValue = tModel.getTModelKey();
+ itemName_ = tModel.getNameString();
+ }
+ Hashtable propertyTable = findAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uuidKeyValue);
+ propertyTable.put(uuidKey,uuidKeyValue);
+ boolean result = findAction.run();
+ if (result)
+ {
+ Node itemNode = nodeManager_.getSelectedNode();
+ int nodeId = itemNode.getNodeId();
+ int toolId = itemNode.getToolManager().getSelectedToolId();
+ int viewId = ActionInputs.VIEWID_DEFAULT;
+ int viewToolId = ActionInputs.VIEWTOOLID_DEFAULT;
+ propertyTable_.put(ActionInputs.NODEID,String.valueOf(nodeId));
+ propertyTable_.put(ActionInputs.TOOLID,String.valueOf(toolId));
+ propertyTable_.put(ActionInputs.VIEWID,String.valueOf(viewId));
+ propertyTable_.put(ActionInputs.VIEWTOOLID,String.valueOf(viewToolId));
+ super.run();
+ requiresTreeViewRefresh_ = true;
+ requiresViewSelection_ = true;
+ newUUIDQueryCreated_ = true;
+ listElement.setTargetViewToolInfo(nodeId,toolId,viewId);
+ return true;
+ }
+ else
+ {
+ // The item is no longer in the registry.
+ return false;
+ }
+ }
+
+ public final String getItemName()
+ {
+ return itemName_;
+ }
+
+ public boolean run()
+ {
+ // Given the nodeId, toolId and viewId, check if the node or view is stale.
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ int toolId = Integer.parseInt((String)propertyTable_.get(ActionInputs.TOOLID));
+ int viewId = ActionInputs.VIEWID_DEFAULT;
+ try
+ {
+ viewId = Integer.parseInt((String)propertyTable_.get(ActionInputs.VIEWID));
+ }
+ catch (NumberFormatException e)
+ {
+ }
+ int viewToolId = 0;
+ if (!isStaleNode(nodeId))
+ {
+ // Enusre the node is visible.
+ requiresTreeViewRefresh_ = makeNodeVisible(nodeManager_.getNode(nodeId));
+
+ Node node = nodeManager_.getNode(nodeId);
+ if (viewId != ActionInputs.VIEWID_DEFAULT)
+ {
+ ViewTool viewTool = (ViewTool)(node.getToolManager().getTool(toolId));
+ ToolManager elementToolManager = viewTool.getToolManager(viewId);
+ if (elementToolManager != null)
+ viewToolId = elementToolManager.getSelectedToolId();
+ else
+ {
+ // Stale view
+ return findByUUID();
+ }
+ }
+ propertyTable_.put(ActionInputs.VIEWTOOLID,String.valueOf(viewToolId));
+ return super.run();
+ }
+ else
+ {
+ // Stale node
+ return findByUUID();
+ }
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool_.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ return SelectPropertiesToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,true);
+ }
+
+ public boolean requiresTreeViewRefresh()
+ {
+ return super.requiresTreeViewRefresh()|requiresTreeViewRefresh_;
+ }
+
+ public boolean requiresViewSelection()
+ {
+ return super.requiresViewSelection()|requiresViewSelection_;
+ }
+
+ public boolean requiresStatusUpdate()
+ {
+ return newUUIDQueryCreated_;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return "statusContent";
+ }
+
+ public final String getStatusContentPage()
+ {
+ return "uddi/status_content.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetBusinessAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetBusinessAction.java
new file mode 100644
index 000000000..9b0987f8c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetBusinessAction.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+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.uddi4j.datatype.service.*;
+
+import java.util.*;
+
+public class ServiceGetBusinessAction extends NodeAction
+{
+ private ServiceNode serviceNode_;
+ public ServiceGetBusinessAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getNavigatorManager());
+ serviceNode_ = null;
+ }
+
+ // uddi/actions/ServiceGetBusinessActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ServiceGetBusinessActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean validateService()
+ {
+ int serviceNodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ serviceNode_ = (ServiceNode)nodeManager_.getNode(serviceNodeId);
+ ServiceElement serviceElement = (ServiceElement)serviceNode_.getTreeElement();
+ RegFindServiceUUIDAction verifyAction = new RegFindServiceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,serviceElement.getBusinessService().getServiceKey());
+ boolean result = verifyAction.run();
+ if (result)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,propertyTable.get(UDDIActionInputs.LATEST_OBJECT));
+ return result;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ BusinessService bs = (BusinessService)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+
+ RegFindBusinessUUIDAction action = new RegFindBusinessUUIDAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("NODE_NAME_SERVICE_BUSINESS",serviceNode_.getNodeName()));
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,bs.getBusinessKey());
+
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetServiceInterfacesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetServiceInterfacesAction.java
new file mode 100644
index 000000000..22ced4ccb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceGetServiceInterfacesAction.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi4j.datatype.service.*;
+
+import java.util.*;
+
+public class ServiceGetServiceInterfacesAction extends UDDINodeAction
+{
+ private ServiceNode serviceNode_;
+ public ServiceGetServiceInterfacesAction(Controller controller)
+ {
+ super(controller);
+ serviceNode_ = null;
+ }
+
+ // uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean validateService()
+ {
+ int serviceNodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ serviceNode_ = (ServiceNode)nodeManager_.getNode(serviceNodeId);
+ ServiceElement serviceElement = (ServiceElement)serviceNode_.getTreeElement();
+ RegFindServiceUUIDAction verifyAction = new RegFindServiceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,serviceElement.getBusinessService().getServiceKey());
+ boolean result = verifyAction.run();
+ if (result)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,propertyTable.get(UDDIActionInputs.LATEST_OBJECT));
+ return result;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ BusinessService bs = (BusinessService)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+ RegFindServiceInterfacesAdvancedAction action = new RegFindServiceInterfacesAdvancedAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("NODE_NAME_SERVICE_SERVICE_INTERFACES",serviceNode_.getNodeName()));
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE,Boolean.TRUE);
+ ListElement serviceListElement = new ListElement(bs);
+ serviceListElement.setTargetViewToolInfo(serviceNode_.getNodeId(),serviceNode_.getToolManager().getSelectedToolId(),serviceNode_.getViewId());
+ Vector serviceListVector = new Vector();
+ serviceListVector.addElement(serviceListElement);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE,serviceListVector);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_BUSINESS_SERVICE,bs);
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetBusinessesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetBusinessesAction.java
new file mode 100644
index 000000000..8187288a7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetBusinessesAction.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi4j.datatype.tmodel.*;
+import org.uddi4j.util.*;
+
+import java.util.*;
+
+public class ServiceInterfaceGetBusinessesAction extends UDDINodeAction
+{
+ private ServiceInterfaceNode siNode_;
+ public ServiceInterfaceGetBusinessesAction(Controller controller)
+ {
+ super(controller);
+ siNode_ = null;
+ }
+
+ // uddi/actions/ServiceInterfacGetBusinessesActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ServiceInterfaceGetBusinessesActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean validateServiceInterface()
+ {
+ int siNodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ siNode_ = (ServiceInterfaceNode)nodeManager_.getNode(siNodeId);
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)siNode_.getTreeElement();
+ RegFindServiceInterfaceUUIDAction verifyAction = new RegFindServiceInterfaceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,siElement.getTModel().getTModelKey());
+ boolean result = verifyAction.run();
+ if (result)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,propertyTable.get(UDDIActionInputs.LATEST_OBJECT));
+ return result;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ TModel tModel = (TModel)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+
+ RegFindBusinessesAdvancedAction action = new RegFindBusinessesAdvancedAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("NODE_NAME_SI_BUSINESSES",siNode_.getNodeName()));
+
+ ListElement siListElement = new ListElement(tModel);
+ siListElement.setTargetViewToolInfo(siNode_.getNodeId(),siNode_.getToolManager().getSelectedToolId(),siNode_.getViewId());
+ Vector siListVector = new Vector();
+ siListVector.addElement(siListElement);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES,siListVector);
+
+ Vector tModelKeyStringVector = new Vector();
+ tModelKeyStringVector.addElement(tModel.getTModelKey());
+ TModelBag tModelBag = new TModelBag(tModelKeyStringVector);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_TMODELBAG,tModelBag);
+
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetServicesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetServicesAction.java
new file mode 100644
index 000000000..52cbeea5e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ServiceInterfaceGetServicesAction.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.uddi4j.datatype.tmodel.*;
+import org.uddi4j.util.*;
+
+import java.util.*;
+
+public class ServiceInterfaceGetServicesAction extends UDDINodeAction
+{
+ private ServiceInterfaceNode siNode_;
+ public ServiceInterfaceGetServicesAction(Controller controller)
+ {
+ super(controller);
+ siNode_ = null;
+ }
+
+ // uddi/actions/ServiceInterfacGetServicesActionJSP.jsp?nodeId=...
+ public static String getActionLink(int nodeId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ServiceInterfaceGetServicesActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ return actionLink.toString();
+ }
+
+ public final boolean validateServiceInterface()
+ {
+ int siNodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ siNode_ = (ServiceInterfaceNode)nodeManager_.getNode(siNodeId);
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)siNode_.getTreeElement();
+ RegFindServiceInterfaceUUIDAction verifyAction = new RegFindServiceInterfaceUUIDAction(controller_);
+ Hashtable propertyTable = verifyAction.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE,Boolean.TRUE);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,siElement.getTModel().getTModelKey());
+ boolean result = verifyAction.run();
+ if (result)
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,propertyTable.get(UDDIActionInputs.LATEST_OBJECT));
+ return result;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ TModel tModel = (TModel)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+
+ RegFindServicesAdvancedAction action = new RegFindServicesAdvancedAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("NODE_NAME_SI_SERVICES",siNode_.getNodeName()));
+
+ ListElement siListElement = new ListElement(tModel);
+ siListElement.setTargetViewToolInfo(siNode_.getNodeId(),siNode_.getToolManager().getSelectedToolId(),siNode_.getViewId());
+ Vector siListVector = new Vector();
+ siListVector.addElement(siListElement);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,siListVector);
+
+ Vector tModelKeyStringVector = new Vector();
+ tModelKeyStringVector.addElement(tModel.getTModelKey());
+ TModelBag tModelBag = new TModelBag(tModelKeyStringVector);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_TMODELBAG,tModelBag);
+
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ShowPublisherAssertionsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ShowPublisherAssertionsAction.java
new file mode 100644
index 000000000..886bc99bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ShowPublisherAssertionsAction.java
@@ -0,0 +1,408 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.UDDIException;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.util.*;
+import org.uddi4j.response.*;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.client.UDDIProxy;
+
+import java.util.*;
+import java.net.*;
+
+public class ShowPublisherAssertionsAction extends CommonPublisherAssertionsAction
+{
+
+ protected String subQueryKey_;
+ protected boolean isSubQueryGet_;
+ protected boolean subQueryInitiated_;
+ protected String newSubQuery_;
+ protected String newSubQueryItem_;
+
+ public ShowPublisherAssertionsAction(Controller controller)
+ {
+ super(controller);
+
+ subQueryKey_ = null;
+ isSubQueryGet_ = false;
+ subQueryInitiated_ = false;
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ if (registryNode_ == null)
+ return false;
+
+ // ids from uddiObjects_table
+ String[] selectedBusIds = parser.getParameterValues(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID);
+ if (selectedBusIds != null && selectedBusIds.length > 0)
+ propertyTable_.put(UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID, selectedBusIds);
+
+ newSubQuery_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_INITIATED);
+ String isSubQueryGetString = parser.getParameter(UDDIActionInputs.SUBQUERY_GET);
+ newSubQueryItem_ = parser.getParameter(UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM);
+ subQueryKey_ = parser.getParameter(UDDIActionInputs.SUBQUERY_KEY);
+
+ // Validate the data.
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.clearErrors();
+
+ if (newSubQuery_ != null && newSubQuery_.length() > 0)
+ subQueryInitiated_ = true;
+ else
+ subQueryInitiated_ = false;
+
+ if (isSubQueryGetString != null)
+ isSubQueryGet_ = Boolean.valueOf(isSubQueryGetString).booleanValue();
+
+ // if not yet logged in, validate the parameters needed to log in
+ // NOTE: This action does NOT require the user to be logged in.
+ if (!isLoggedIn_) {
+ 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);
+
+ if (publishURL != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ }
+
+ if (userID != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userID);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userID);
+ }
+
+ if (password != null)
+ {
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+ }
+
+ return true;
+ }
+
+ public final boolean isSubQueryInitiated()
+ {
+ return subQueryInitiated_;
+ }
+
+ public final boolean isSubQueryGet()
+ {
+ return isSubQueryGet_;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+
+ public final String getNewSubQuery()
+ {
+ return newSubQuery_;
+ }
+
+ public final String getNewSubQueryItem()
+ {
+ return newSubQueryItem_;
+ }
+
+ public boolean run()
+ {
+ // Synchronize client view and server model (uddiObject_table.jsp)
+ synchronizeUDDIObjectTable();
+
+ if (registryNode_ == null)
+ return false;
+
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ if (!(selectedElement instanceof BusinessElement))
+ return false;
+
+ // if not yet logged in, log in first
+ if (!isLoggedIn_) {
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userID = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+
+ try {
+ if (Validator.validateURL(publishURL) &&
+ Validator.validateString(userID) &&
+ password != null) {
+ registryElement.performLogin(publishURL, userID, password);
+ isLoggedIn_ = registryElement.isLoggedIn();
+ }
+ }
+ catch (TransportException te) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("TransportException");
+ messageQueue.addMessage(te.getMessage());
+ return false;
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(uddie.toString());
+ return false;
+ }
+ catch (MalformedURLException me) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("MalformedURLException");
+ messageQueue.addMessage(me.getMessage());
+ return false;
+ }
+ }
+
+ // show all assertion iff is logged in and business is owned
+ // else show only completed ones
+ BusinessElement busElement = (BusinessElement)selectedElement;
+ if (isLoggedIn_ && isBusinessOwned(busElement))
+ return showPublisherAssertionsForOwnedBus(busElement);
+ else
+ return showPublisherAssertionsForNonOwnedBus(busElement);
+ }
+
+ private boolean showPublisherAssertionsForOwnedBus(BusinessElement busElement) {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ // try to get a list of all publisher assertion based on the current registry's authToken
+ ListManager listManager = new ListManager();
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.removeProperty(UDDIActionInputs.QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS);
+ Vector queryInputVector = new Vector();
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ String userID = registryElement.getUserId();
+ String cred = registryElement.getCred();
+
+ // show all publisher assertions
+ UDDIProxy proxy = ((RegistryElement)registryNode_.getTreeElement()).getProxy();
+ AssertionStatusReport assertionReport;
+ try {
+ assertionReport = proxy.get_assertionStatusReport(registryElement.getAuthInfoString(), (CompletionStatus)null);
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ DispositionReport report = uddie.getDispositionReport();
+ Vector reportErrInfo = report.getResultVector();
+ for (int i = 0; i < reportErrInfo.size(); i++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(i)).getErrInfo().getText());
+ }
+ return false;
+ }
+ catch (Exception e) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("Exception");
+ messageQueue.addMessage(e.getMessage());
+ return false;
+ }
+ Vector assertionVector = assertionReport.getAssertionStatusItemVector();
+ Vector otherBusinessKeys = new Vector();
+ Vector pubAssertionElements = new Vector();
+
+ for (int i = 0; i < assertionVector.size(); i++) {
+ AssertionStatusItem assertionItem = (AssertionStatusItem)assertionVector.elementAt(i);
+ // determine the from/to business keys
+ String fromKey = assertionItem.getFromKey().getText();
+ String toKey = assertionItem.getToKey().getText();
+ String owningBusinessKey = busElement.getBusinessEntity().getBusinessKey();
+ // ignore this assertion if neither the from key nor the to key equals to this business's key
+ if (!owningBusinessKey.equals(fromKey) && !owningBusinessKey.equals(toKey))
+ continue;
+ String otherBusinessKey = ((owningBusinessKey.equals(fromKey)) ? toKey : fromKey);
+ // retrieve the information of the "other business"
+ otherBusinessKeys.add(otherBusinessKey);
+
+ // retrieve the status of the publisher assertion
+ String status = assertionItem.getCompletionStatus().getText();
+ KeyedReference keyedRef = assertionItem.getKeyedReference();
+ PublisherAssertionElement pubAssertionElement = new PublisherAssertionElement(
+ fromKey,
+ toKey,
+ owningBusinessKey,
+ null,
+ -1,
+ status,
+ keyedRef);
+ pubAssertionElements.add(pubAssertionElement);
+ }
+ if (otherBusinessKeys.size() > 0) {
+ Vector busEntities;
+ try {
+ busEntities = proxy.get_businessDetail(otherBusinessKeys).getBusinessEntityVector();
+ }
+ catch (Exception ex) {
+ busEntities = new Vector();
+ if (otherBusinessKeys.size() > 1) {
+ for (int j = 0; j < otherBusinessKeys.size(); j++) {
+ try {
+ busEntities.add(proxy.get_businessDetail((String)otherBusinessKeys.get(j)).getBusinessEntityVector().get(0));
+ }
+ catch (Exception exception) {
+ pubAssertionElements.remove(j);
+ }
+ }
+ }
+ else
+ pubAssertionElements.remove(0);
+ }
+ for (int j = 0; j < busEntities.size(); j++) {
+ BusinessEntity be = (BusinessEntity)busEntities.get(j);
+ PublisherAssertionElement pubAssertionElement = (PublisherAssertionElement)pubAssertionElements.get(j);
+ ListElement le = new ListElement(be);
+ queryInputVector.add(le);
+ int subQueryItemId = queryInputVector.indexOf(le);
+ pubAssertionElement.setServiceProvider(le);
+ pubAssertionElement.setSubQueryItemId(subQueryItemId);
+ listManager.add(new ListElement(pubAssertionElement));
+ }
+ }
+ busElement.setPublisherAssertions(listManager);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS, queryInputVector);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED"));
+ return true;
+ }
+
+ private boolean showPublisherAssertionsForNonOwnedBus(BusinessElement busElement) {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ // try to get a list of publisher assertions based on the business key
+ ListManager listManager = new ListManager();
+ FormTool formTool = getSelectedFormTool();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey_);
+ formToolPI.removeProperty(UDDIActionInputs.QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS);
+ Vector queryInputVector = new Vector();
+ UDDIProxy proxy = ((RegistryElement)registryNode_.getTreeElement()).getProxy();
+ RelatedBusinessesList relatedBusList;
+ try {
+ relatedBusList = proxy.find_relatedBusinesses(busElement.getBusinessEntity().getBusinessKey(),
+ (KeyedReference)null,
+ (FindQualifiers)null);
+ }
+ catch (UDDIException uddie) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ DispositionReport report = uddie.getDispositionReport();
+ Vector reportErrInfo = report.getResultVector();
+ for (int i = 0; i < reportErrInfo.size(); i++) {
+ messageQueue.addMessage(((Result) reportErrInfo.get(i)).getErrInfo().getText());
+ }
+ return false;
+ }
+ catch (Exception e) {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("Exception");
+ messageQueue.addMessage(e.getMessage());
+ return false;
+ }
+ Vector relatedBusVector = relatedBusList.getRelatedBusinessInfos().getRelatedBusinessInfoVector();
+ Vector otherBusinessKeys = new Vector();
+ Vector pubAssertionElements = new Vector();
+ for (int i = 0; i < relatedBusVector.size(); i++) {
+ RelatedBusinessInfo relatedBusInfo = (RelatedBusinessInfo)relatedBusVector.elementAt(i);
+ // determine the from/to business keys
+ String fromKey;
+ String toKey;
+ String owningBusinessKey;
+ ListElement sp;
+ if (relatedBusInfo.getDefaultSharedRelationships().getDirection().equals(SharedRelationships.DIRECTION_FROMKEY)) {
+ fromKey = busElement.getBusinessEntity().getBusinessKey();
+ toKey = relatedBusInfo.getBusinessKey();
+ owningBusinessKey = fromKey;
+ otherBusinessKeys.add(toKey);
+ }
+ else {
+ fromKey = relatedBusInfo.getBusinessKey();
+ toKey = busElement.getBusinessEntity().getBusinessKey();
+ owningBusinessKey = toKey;
+ otherBusinessKeys.add(fromKey);
+ }
+
+ Vector keyedRefVector = relatedBusInfo.getDefaultSharedRelationships().getKeyedReferenceVector();
+ PublisherAssertionElement[] pubAssertionElementArray = new PublisherAssertionElement[keyedRefVector.size()];
+ for (int k = 0; k < keyedRefVector.size(); k++) {
+ // retrieve the status of the publisher assertion
+ String status = CompletionStatus.COMPLETE;
+ KeyedReference keyedRef = (KeyedReference)keyedRefVector.elementAt(k);
+ PublisherAssertionElement pubAssertionElement = new PublisherAssertionElement(
+ fromKey,
+ toKey,
+ owningBusinessKey,
+ null,
+ -1,
+ status,
+ keyedRef);
+ pubAssertionElementArray[k] = pubAssertionElement;
+ }
+ pubAssertionElements.add(pubAssertionElementArray);
+ }
+ if (otherBusinessKeys.size() > 0) {
+ Vector busEntities;
+ try {
+ busEntities = proxy.get_businessDetail(otherBusinessKeys).getBusinessEntityVector();
+ }
+ catch (Exception ex) {
+ busEntities = new Vector();
+ if (otherBusinessKeys.size() > 1) {
+ for (int j = 0; j < otherBusinessKeys.size(); j++) {
+ try {
+ busEntities.add(proxy.get_businessDetail((String)otherBusinessKeys.get(j)).getBusinessEntityVector().get(0));
+ }
+ catch (Exception exception) {
+ pubAssertionElements.remove(j);
+ }
+ }
+ }
+ else
+ pubAssertionElements.remove(0);
+ }
+ for (int j = 0; j < busEntities.size(); j++) {
+ BusinessEntity be = (BusinessEntity)busEntities.get(j);
+ ListElement le = new ListElement(be);
+ queryInputVector.add(le);
+ int subQueryItemId = queryInputVector.indexOf(le);
+ PublisherAssertionElement[] pubAssertionElementArray = (PublisherAssertionElement[])pubAssertionElements.get(j);
+ for (int k = 0; k < pubAssertionElementArray.length; k++) {
+ pubAssertionElementArray[k].setServiceProvider(le);
+ pubAssertionElementArray[k].setSubQueryItemId(subQueryItemId);
+ listManager.add(new ListElement(pubAssertionElementArray[k]));
+ }
+ }
+ }
+ busElement.setPublisherAssertions(listManager);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS, queryInputVector);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED"));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SwitchPerspectiveFromUDDIAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SwitchPerspectiveFromUDDIAction.java
new file mode 100644
index 000000000..8a142b386
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/SwitchPerspectiveFromUDDIAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+public final class SwitchPerspectiveFromUDDIAction extends ShowPerspectiveAction
+{
+ public SwitchPerspectiveFromUDDIAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+
+ // Save the frameset sizes iff no frame is maximized.
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ if (!perspectiveContentFramesetCols.startsWith("100%") && !perspectiveContentFramesetCols.endsWith("100%"))
+ uddiPerspective.setPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+
+ if (!actionsContainerFramesetRows.startsWith("100%") && !actionsContainerFramesetRows.endsWith("100%"))
+ uddiPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+
+ return super.run();
+ }
+
+ public static final String getFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ StringBuffer formLink = new StringBuffer("uddi/actions/SwitchPerspectiveFromUDDIActionJSP.jsp?");
+ formLink.append(ActionInputs.PERSPECTIVE).append('=').append(targetPerspectiveId);
+ if (forHistory)
+ formLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return formLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleCategoryNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleCategoryNodeAction.java
new file mode 100644
index 000000000..43272da62
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleCategoryNodeAction.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+public class ToggleCategoryNodeAction extends ToggleNodeAction
+{
+ public ToggleCategoryNodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getCategoryManager());
+ }
+
+ // uddi/actions/ToggleNavigatorNodeAction.jsp?sId=...&nodeId=...&open=...
+ public static final String getActionLink(String sessionId,int nodeId,boolean open)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ToggleCategoryNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ actionLink.append('&').append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.OPEN).append('=').append(open?ActionInputs.OPEN_NODE:ActionInputs.CLOSE_NODE);
+ return actionLink.toString();
+ }
+
+ public final boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ performBaseAction(nodeId);
+ return true;
+ }
+
+ public final String getActionLinkForHistory()
+ {
+ return null;
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "categoryBrowserWindowContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ return OpenCategoryBrowserAction.getCategoryContentPage(controller_.getSessionId(),uddiPerspective.getCategoryTModelKey());
+ }
+
+ public final String getTreeContainerPage()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ return OpenCategoryBrowserAction.getActionLink(controller_.getSessionId(),uddiPerspective.getCategoryTModelKey());
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return null;
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return null;
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleNavigatorNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleNavigatorNodeAction.java
new file mode 100644
index 000000000..a0fccac81
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/ToggleNavigatorNodeAction.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class ToggleNavigatorNodeAction extends ToggleNodeAction
+{
+ public ToggleNavigatorNodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getNavigatorManager());
+ }
+
+ // uddi/actions/ToggleNavigatorNodeAction.jsp?nodeId=...&open=...
+ public static String getActionLink(int nodeId,boolean open)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/ToggleNavigatorNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.OPEN).append('=').append(open?ActionInputs.OPEN_NODE:ActionInputs.CLOSE_NODE);
+ return actionLink.toString();
+ }
+
+ // This should be called only to select the toggled node when, at the time of
+ // the collapse event, a descendant node was selected.
+ public final String getActionLinkForHistory()
+ {
+ ToolManager toolManager = toggledNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = toggledNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = toggledNode_.getViewId();
+ int viewToolId = toggledNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectPropertiesToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,true);
+ else
+ return SelectNavigatorNodeAction.getActionLink(nodeId,true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "navigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "uddi/navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "propertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "uddi/properties_container.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferSubQueryResultsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferSubQueryResultsAction.java
new file mode 100644
index 000000000..46b313493
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferSubQueryResultsAction.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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 java.util.*;
+
+public class TransferSubQueryResultsAction extends UDDIPropertiesFormAction
+{
+ private Node targetNode_;
+ public TransferSubQueryResultsAction(Controller controller)
+ {
+ super(controller);
+ targetNode_ = null;
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] selectedNodeIds = parser.getParameterValues(ActionInputs.NODEID);
+ // The client Javascript enforces the rule that at least one item was selected before the form can be submitted.
+ propertyTable_.put(UDDIActionInputs.SELECTED_NODEIDS,selectedNodeIds);
+ return true;
+ }
+
+ public static final String getActionLinkForReturn()
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/TransferSubQueryResultsActionJSP.jsp?");
+ actionLink.append(UDDIActionInputs.SHOW_RESULTS_TARGET).append("=1");
+ return actionLink.toString();
+ }
+
+ public final void enableShowResultsTarget()
+ {
+ // This should only be called if the user clicks on the target link on the query results page. Insert a zero element
+ // array so that no results are transferred but the jump back to the correct query and its info occurs.
+ propertyTable_.put(UDDIActionInputs.SELECTED_NODEIDS,new String[0]);
+ }
+
+ public final boolean run()
+ {
+ // Transfer the results in this Query node into the property expected by the originating node.
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ String[] selectedNodeIds = (String[])propertyTable_.get(UDDIActionInputs.SELECTED_NODEIDS);
+ Node currentNode = getSelectedNavigatorNode();
+ TreeElement currentElement = currentNode.getTreeElement();
+ SubQueryTransferTarget target = (SubQueryTransferTarget)(currentElement.getPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET));
+ String subQueryKey = target.getSubQueryKey();
+ String targetQueryKey;
+
+ int lastSeparatorPos = subQueryKey.lastIndexOf(':');
+ if (lastSeparatorPos == -1)
+ targetQueryKey = "";
+ else
+ targetQueryKey = subQueryKey.substring(0,lastSeparatorPos);
+
+ String targetProperty = subQueryKey.substring(lastSeparatorPos+1,subQueryKey.length());
+ FormTool targetFormTool = target.getTargetFormTool();
+ FormToolPropertiesInterface subQueryFormToolPI = ((MultipleFormToolPropertiesInterface)targetFormTool).getFormToolProperties(subQueryKey);
+ FormToolPropertiesInterface targetQueryFormToolPI = ((MultipleFormToolPropertiesInterface)targetFormTool).getFormToolProperties(targetQueryKey);
+ Vector targetList = (Vector)targetQueryFormToolPI.getProperty(targetProperty);
+ if (targetList == null)
+ targetList = new Vector();
+
+ NodeManager nodeManager = currentNode.getNodeManager();
+ for (int i=0;i<selectedNodeIds.length;i++)
+ {
+ int selectedNodeId = Integer.parseInt(selectedNodeIds[i]);
+ Node selectedNode = nodeManager.getNode(selectedNodeId);
+ TreeElement treeElement = selectedNode.getTreeElement();
+ Object object;
+ if (treeElement instanceof BusinessElement)
+ object = ((BusinessElement)treeElement).getBusinessEntity();
+ else if (treeElement instanceof ServiceElement)
+ object = ((ServiceElement)treeElement).getBusinessService();
+ else
+ {
+ // Service interface
+ object = ((ServiceInterfaceElement)treeElement).getTModel();
+ }
+ ListElement targetListElement = new ListElement(object);
+ targetListElement.setTargetViewToolInfo(selectedNodeId,selectedNode.getToolManager().getSelectedToolId(),selectedNode.getViewId());
+ if (targetProperty.equals(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS) || targetProperty.equals(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS) || targetProperty.equals(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE))
+ {
+ // Clear the manager so a replacement occurs.
+ targetList.removeAllElements();
+ }
+ targetList.addElement(targetListElement);
+ }
+ targetQueryFormToolPI.setProperty(targetProperty,targetList);
+ Hashtable savedParentQueryProperties = target.getParentQueryData();
+ Enumeration e = savedParentQueryProperties.keys();
+ while (e.hasMoreElements())
+ {
+ String key = (String)e.nextElement();
+ targetQueryFormToolPI.setProperty(key,savedParentQueryProperties.get(key));
+ }
+
+ // Select the node and the datastructure which is the target of the subquery.
+ int targetNodeId = target.getNodeId();
+ int targetToolId = target.getToolId();
+ int targetViewId = target.getViewId();
+ int targetViewToolId = target.getViewToolId();
+ nodeManager.setSelectedNodeId(targetNodeId);
+ targetNode_ = nodeManager.getSelectedNode();
+ targetNode_.getToolManager().setSelectedToolId(targetToolId);
+ targetNode_.setViewId(targetViewId);
+ if (targetViewId != ActionInputs.VIEWID_DEFAULT)
+ targetNode_.getViewToolManager().setSelectedToolId(targetViewToolId);
+ targetFormTool.setProperty(UDDIActionInputs.SUBQUERY_KEY,targetQueryKey);
+ addToHistory(ActionInputs.PERSPECTIVE_UDDI,SelectFindToolAction.getActionLink(targetNodeId,targetToolId,targetViewId,targetViewToolId,targetQueryKey,true));
+ return true;
+ }
+
+ public final Node getTargetNode()
+ {
+ return targetNode_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferToAddCategoryDataAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferToAddCategoryDataAction.java
new file mode 100644
index 000000000..566b0b800
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/TransferToAddCategoryDataAction.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import javax.servlet.http.*;
+
+public class TransferToAddCategoryDataAction extends Action
+{
+ public TransferToAddCategoryDataAction()
+ {
+ }
+
+ // uddi/actions/TransferToAddCategoryDataActionJSP.jsp?sessionId=...&categoryTModelKey=...
+ public static final String getActionLink(String sessionId,String categoryTModelKey)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/TransferToAddCategoryDataActionJSP.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId).append('&').append(UDDIActionInputs.CATEGORY_TMODEL_KEY).append('=').append(categoryTModelKey);
+ return actionLink.toString();
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIAddToWSDLPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIAddToWSDLPerspectiveAction.java
new file mode 100644
index 000000000..7ee647917
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIAddToWSDLPerspectiveAction.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.perspective.*;
+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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*;
+
+import org.uddi4j.datatype.service.BusinessService;
+
+import javax.servlet.http.*;
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+
+import java.util.*;
+import java.net.*;
+import java.io.*;
+
+public class UDDIAddToWSDLPerspectiveAction extends LinkAction
+{
+ public UDDIAddToWSDLPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId)
+ {
+ StringBuffer actionLink = new StringBuffer("uddi/actions/UDDIAddToWSDLPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeId);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolId);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewId);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolId);
+ return actionLink.toString();
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ String nodeIdString = request.getParameter(ActionInputs.NODEID);
+ // Perform data validation.
+ try
+ {
+ int nodeId = Integer.parseInt(nodeIdString);
+ }
+ catch (NumberFormatException e)
+ {
+ // Validation failed!
+ return false;
+ }
+ propertyTable_.put(ActionInputs.NODEID,nodeIdString);
+ return true;
+ }
+
+ public boolean run()
+ {
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ Node node = nodeManager.getNode(nodeId);
+ TreeElement element = node.getTreeElement();
+ if (element instanceof ServiceElement)
+ {
+ ServiceElement serviceElement = (ServiceElement)element;
+ BusinessService bs = serviceElement.getBusinessService();
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ String wsdlURL = uddi4jHelper.getWSDL(bs, serviceElement.getRegistryElement().getProxy());
+ if (wsdlURL == null)
+ {
+ try
+ {
+ Definition def = uddi4jHelper.getWSDLDefinition(wsdlURL);
+ File tempFile = File.createTempFile("temp",".wsdl");
+ UDDIImportWSDLToFileSystemAction action = new UDDIImportWSDLToFileSystemAction(controller_);
+ action.writeWSDLDefinition(new FileOutputStream(tempFile),def);
+ wsdlURL = tempFile.toURL().toString();
+ }
+ catch (WSDLException e)
+ {
+ wsdlURL = null;
+ }
+ catch (MalformedURLException e)
+ {
+ wsdlURL = null;
+ }
+ catch (IOException e)
+ {
+ wsdlURL = null;
+ }
+ }
+
+ if (wsdlURL != null)
+ {
+ OpenWSDLAction openWSDLAction = new OpenWSDLAction(controller_);
+ Hashtable propertyTable = openWSDLAction.getPropertyTable();
+ propertyTable.put(ActionInputs.QUERY_INPUT_WSDL_URL,wsdlURL);
+ boolean actionResult = openWSDLAction.run();
+ if (actionResult) {
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE",wsdlURL));
+ return true;
+ }
+ }
+ }
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE"));
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToFileSystemAction.java
new file mode 100644
index 000000000..f0b281f16
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToFileSystemAction.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper;
+
+import java.io.*;
+import javax.wsdl.Definition;
+
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+public class UDDIImportWSDLToFileSystemAction extends ImportToFileSystemAction
+{
+ private NodeManager nodeManager_;
+ private Definition def_;
+ private String defaultWSDLFileName_;
+
+ public UDDIImportWSDLToFileSystemAction(Controller controller)
+ {
+ super(controller);
+ nodeManager_ = controller.getUDDIPerspective().getNavigatorManager();
+ def_ = null;
+ defaultWSDLFileName_ = "temp.wsdl";
+ }
+
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId)
+ {
+ return ImportToFileSystemAction.getActionLink(nodeId,toolId,viewId,viewToolId,"uddi/actions/UDDIImportWSDLToFileSystemActionJSP.jsp");
+ }
+
+ public final boolean write(OutputStream os)
+ {
+ return writeWSDLDefinition(os,def_);
+ }
+
+ public final String getDefaultFileName()
+ {
+ return defaultWSDLFileName_;
+ }
+
+ public final boolean run()
+ {
+ MessageQueue messageQueue = controller_.getUDDIPerspective().getMessageQueue();
+ int nodeId = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ Node node = nodeManager_.getNode(nodeId);
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ String wsdlUrl = null;
+ if (node != null)
+ {
+ TreeElement element = node.getTreeElement();
+ if (element instanceof ServiceElement)
+ {
+ ServiceElement serviceElement = (ServiceElement)element;
+ BusinessService bs = serviceElement.getBusinessService();
+ wsdlUrl = uddi4jHelper.getWSDL(bs, serviceElement.getRegistryElement().getProxy());
+ }
+ else if (element instanceof ServiceInterfaceElement)
+ {
+ TModel tModel = ((ServiceInterfaceElement)element).getTModel();
+ wsdlUrl = uddi4jHelper.getWSDL(tModel);
+ }
+ }
+ if (wsdlUrl != null)
+ {
+ try
+ {
+ def_ = uddi4jHelper.getWSDLDefinition(wsdlUrl);
+ if (def_ != null)
+ {
+ String wsdlPathname;
+ int index = wsdlUrl.indexOf('/');
+ if (index != -1)
+ wsdlPathname = wsdlUrl.substring(index+1, wsdlUrl.length());
+ else
+ wsdlPathname = wsdlUrl;
+ defaultWSDLFileName_ = WSDLFileNameHelper.getWSDLFileName(wsdlPathname);
+ }
+ return true;
+ }
+ catch (Throwable t)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_RETRIEVING_WSDL_DOC"));
+ }
+ }
+ return false;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getUDDIPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getUDDIPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToWorkbenchAction.java
new file mode 100644
index 000000000..083435a37
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIImportWSDLToWorkbenchAction.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+import java.util.Hashtable;
+
+public class UDDIImportWSDLToWorkbenchAction extends ImportToWorkbenchAction
+{
+ public UDDIImportWSDLToWorkbenchAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ return (FormTool)uddiPerspective.getNavigatorManager().getSelectedNode().getCurrentToolManager().getSelectedTool();
+ }
+
+ public ImportToFileSystemAction newImportToFileSystemAction() {
+ UDDIImportWSDLToFileSystemAction action = new UDDIImportWSDLToFileSystemAction(controller_);
+ Hashtable table = action.getPropertyTable();
+
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+
+ table.put(ActionInputs.NODEID, String.valueOf(selectedNode.getNodeId()));
+
+ return action;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getUDDIPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getUDDIPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDILaunchWebServiceWizardAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDILaunchWebServiceWizardAction.java
new file mode 100644
index 000000000..b290772f8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDILaunchWebServiceWizardAction.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+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.uddi.util.Uddi4jHelper;
+
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import java.io.*;
+import javax.wsdl.Definition;
+
+public class UDDILaunchWebServiceWizardAction extends LaunchWebServiceWizardAction
+{
+ public UDDILaunchWebServiceWizardAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ return (FormTool)uddiPerspective.getNavigatorManager().getSelectedNode().getCurrentToolManager().getSelectedTool();
+ }
+
+ public boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ Node node = nodeManager.getSelectedNode();
+ TreeElement element = node.getTreeElement();
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ String wsdlUrl = null;
+ if (element instanceof ServiceElement)
+ {
+ ServiceElement serviceElement = (ServiceElement)element;
+ BusinessService bs = serviceElement.getBusinessService();
+ wsdlUrl = uddi4jHelper.getWSDL(bs, serviceElement.getRegistryElement().getProxy());
+ }
+ else if (element instanceof ServiceInterfaceElement)
+ {
+ TModel tModel = ((ServiceInterfaceElement)element).getTModel();
+ wsdlUrl = uddi4jHelper.getWSDL(tModel);
+ }
+
+ try
+ {
+ if (wsdlUrl != null)
+ {
+ Definition def = uddi4jHelper.getWSDLDefinition(wsdlUrl);
+ File tempFile = File.createTempFile("temp",".wsdl");
+ UDDIImportWSDLToFileSystemAction action = new UDDIImportWSDLToFileSystemAction(controller_);
+ action.writeWSDLDefinition(new FileOutputStream(tempFile),def);
+ wsdlUrl = tempFile.toURL().toString();
+ return launchWizard(wsdlUrl);
+ }
+ }
+ catch (Throwable t)
+ {
+ messageQueue.addMessage(controller_.getMessage("MSG_ERROR_RETRIEVING_WSDL_DOC"));
+ }
+ return false;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getUDDIPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getUDDIPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDINodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDINodeAction.java
new file mode 100644
index 000000000..d21e58239
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDINodeAction.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+public abstract class UDDINodeAction extends NodeAction
+{
+ protected RegistryNode regNode_;
+ public UDDINodeAction(Controller controller)
+ {
+ super(controller,controller.getUDDIPerspective().getNavigatorManager());
+ regNode_ = getRegistryNode();
+ }
+
+ public final Node getSelectedNavigatorNode()
+ {
+ Node selectedNavigatorNode = nodeManager_.getSelectedNode();
+ return selectedNavigatorNode;
+ }
+
+ public final RegistryNode getRegistryNode()
+ {
+ UDDIMainNode uddiMainNode = (UDDIMainNode)nodeManager_.getRootNode();
+ return uddiMainNode.getRegistryNode(getSelectedNavigatorNode());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIPropertiesFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIPropertiesFormAction.java
new file mode 100644
index 000000000..4dd19b6bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UDDIPropertiesFormAction.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*;
+
+public abstract class UDDIPropertiesFormAction extends FormAction
+{
+ protected NodeManager navigatorManager_;
+ public UDDIPropertiesFormAction(Controller controller)
+ {
+ super(controller);
+ navigatorManager_ = controller.getUDDIPerspective().getNavigatorManager();
+ }
+
+ public final Node getSelectedNavigatorNode()
+ {
+ return navigatorManager_.getSelectedNode();
+ }
+
+ public final FormTool getSelectedFormTool()
+ {
+ return (FormTool)(getSelectedNavigatorNode().getCurrentToolManager().getSelectedTool());
+ }
+
+ public final RegistryNode getRegistryNode()
+ {
+ return getRegistryNode(getSelectedNavigatorNode());
+ }
+
+ public final RegistryNode getRegistryNode(Node registryChildNode)
+ {
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager_.getRootNode();
+ return uddiMainNode.getRegistryNode(registryChildNode);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UnpublishAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UnpublishAction.java
new file mode 100644
index 000000000..b3cca2804
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UnpublishAction.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.transport.TransportException;
+import org.uddi4j.response.*;
+import org.uddi4j.*;
+import org.uddi4j.client.UDDIProxy;
+
+import java.net.*;
+
+public class UnpublishAction extends UDDIPropertiesFormAction
+{
+ protected RegistryNode registryNode_;
+ protected boolean isLoggedIn_;
+
+ public UnpublishAction(Controller controller)
+ {
+ super(controller);
+ registryNode_ = getRegistryNode();
+ }
+
+ protected final boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ RegistryElement regElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+
+ // if not yet logged in, validate the parameters needed to log in
+ if (!regElement.isLoggedIn())
+ {
+ 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);
+
+ boolean inputsValid = true;
+ if (publishURL != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL, publishURL);
+
+ if (!Validator.validateURL(publishURL))
+ {
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ inputsValid = false;
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_PUBLISH_URL"));
+ }
+
+ if (userId != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+
+ if (!Validator.validateString(userId))
+ {
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ inputsValid = false;
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USERID"));
+ }
+
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD, password);
+
+ formTool.updatePropertyTable(propertyTable_);
+
+ return inputsValid;
+ }
+
+ return true;
+ }
+
+ public boolean run()
+ {
+ RegistryElement registryElement = (RegistryElement)registryNode_.getTreeElement();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ try
+ {
+ if (!registryElement.isLoggedIn())
+ {
+ // if not yet logged in, log in first
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+
+ registryElement.performLogin(publishURL,userId,password);
+ }
+
+ String selectedElementKey = selectedElement.getKey();
+ String unpublishTypeMessageKey = null;
+ UDDIProxy proxy = registryElement.getProxy();
+ String authInfo = registryElement.getAuthInfoString();
+ DispositionReport dr = null;
+ if (selectedElement instanceof BusinessElement)
+ {
+ unpublishTypeMessageKey = "MSG_INFO_BUSINESS_UNPUBLISHED";
+ dr = proxy.delete_business(authInfo,selectedElementKey);
+ }
+ else if (selectedElement instanceof ServiceElement)
+ {
+ unpublishTypeMessageKey = "MSG_INFO_SERVICE_UNPUBLISHED";
+ dr = proxy.delete_service(authInfo,selectedElementKey);
+ }
+ else if (selectedElement instanceof ServiceInterfaceElement)
+ {
+ unpublishTypeMessageKey = "MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED";
+ dr = proxy.delete_tModel(authInfo,selectedElementKey);
+ }
+ if (!dr.success())
+ throw new Exception(dr.toString());
+ else
+ {
+ selectedElement.disconnectAll();
+ messageQueue.addMessage(uddiPerspective.getMessage(unpublishTypeMessageKey,selectedElement.getName()));
+ return true;
+ }
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ return false;
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ return false;
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ return false;
+ }
+ catch (Exception e)
+ {
+ handleUnexpectedException(uddiPerspective, messageQueue, "Exception", e);
+ return false;
+ }
+ }
+}
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
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateBusinessAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateBusinessAction.java
new file mode 100644
index 000000000..b4db6d92a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateBusinessAction.java
@@ -0,0 +1,401 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.*;
+import org.uddi4j.util.*;
+
+import java.util.*;
+import java.net.*;
+
+public class UpdateBusinessAction extends UpdateAction
+{
+ private boolean isUpdate_;
+ public UpdateBusinessAction(Controller controller)
+ {
+ super(controller,true);
+ isUpdate_ = true;
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ String[] discoveryURLModifiedStates = parser.getParameterValues(UDDIActionInputs.DISCOVERYURL_MODIFIED);
+ String[] discoveryURLViewIds = parser.getParameterValues(UDDIActionInputs.DISCOVERYURL_VIEWID);
+ String[] discoveryURLs = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DISCOVERYURL);
+ String[] nameModifiedStates = parser.getParameterValues(UDDIActionInputs.NAME_MODIFIED);
+ String[] nameViewIds = parser.getParameterValues(UDDIActionInputs.NAME_VIEWID);
+ String[] nameLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] descriptionModifiedStates = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_MODIFIED);
+ String[] descriptionViewIds = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_VIEWID);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] idModifiedStates = parser.getParameterValues(UDDIActionInputs.IDENTIFIER_MODIFIED);
+ String[] idViewIds = parser.getParameterValues(UDDIActionInputs.IDENTIFIER_VIEWID);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catModifiedStates = parser.getParameterValues(UDDIActionInputs.CATEGORY_MODIFIED);
+ String[] catViewIds = parser.getParameterValues(UDDIActionInputs.CATEGORY_VIEWID);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,uuidKey);
+
+
+ if (discoveryURLModifiedStates != null && discoveryURLViewIds != null && discoveryURLs != null)
+ {
+ Vector oldDiscoveryURLListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ Vector newDiscoveryURLListElementVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURL");
+ for (int i=0;i<discoveryURLs.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ DiscoveryURL discoveryURL = new DiscoveryURL(discoveryURLs[i],"");
+ if (!Validator.validateURL(discoveryURLs[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int discoveryURLViewId = Integer.parseInt(discoveryURLViewIds[i]);
+ boolean isModified = Boolean.valueOf(discoveryURLModifiedStates[i]).booleanValue();
+
+ if (discoveryURLViewId == -1 || isModified)
+ newDiscoveryURLListElementVector.addElement(new ListElement(discoveryURL));
+ else
+ newDiscoveryURLListElementVector.addElement(oldDiscoveryURLListElementVector.elementAt(discoveryURLViewId));
+ }
+ reindexListElementVector(newDiscoveryURLListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,newDiscoveryURLListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+
+ Hashtable languageHash = new Hashtable();
+ if (nameModifiedStates != null && nameViewIds != null && nameLanguages != null && names != null)
+ {
+ Vector oldNameListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ Vector newNameListElementVector = new Vector();
+ // UDDI's save API (Appendix C of the UDDI V2 Programmers API Specification) requires the following:
+ // 1) Only the first row can have a blank language.
+ // 2) Only 1 name per language.
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_NAME");
+ for (int i=0;i<names.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Name uddi4jName;
+ if (nameLanguages[i].length() > 0)
+ uddi4jName = new Name(names[i],nameLanguages[i]);
+ else
+ {
+ uddi4jName = new Name(names[i]);
+ if (i != 0)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(nameLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(nameLanguages[i],Boolean.TRUE);
+ if (!Validator.validateString(names[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int nameViewId = Integer.parseInt(nameViewIds[i]);
+ boolean isModified = Boolean.valueOf(nameModifiedStates[i]).booleanValue();
+
+ if (nameViewId == -1 || isModified)
+ newNameListElementVector.addElement(new ListElement(uddi4jName));
+ else
+ newNameListElementVector.addElement(oldNameListElementVector.elementAt(nameViewId));
+ }
+ reindexListElementVector(newNameListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,newNameListElementVector);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NO_NAMES"));
+ }
+
+ if (descriptionModifiedStates != null && descriptionViewIds != null && descriptionLanguages != null && descriptions != null)
+ {
+ Vector oldDescriptionListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+ Vector newDescriptionListElementVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (!Validator.validateString(descriptions[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int descriptionViewId = Integer.parseInt(descriptionViewIds[i]);
+ boolean isModified = Boolean.valueOf(descriptionModifiedStates[i]).booleanValue();
+
+ if (descriptionViewId == -1 || isModified)
+ newDescriptionListElementVector.addElement(new ListElement(uddi4jDescription));
+ else
+ newDescriptionListElementVector.addElement(oldDescriptionListElementVector.elementAt(descriptionViewId));
+ }
+ reindexListElementVector(newDescriptionListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,newDescriptionListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+
+ if (idModifiedStates != null && idViewIds != null && idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ Vector oldIdListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ Vector newIdListElementVector = new Vector();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ int idViewId = Integer.parseInt(idViewIds[i]);
+ boolean isModified = Boolean.valueOf(idModifiedStates[i]).booleanValue();
+ if (idViewId == -1 || isModified)
+ newIdListElementVector.addElement(new ListElement(kr));
+ else
+ newIdListElementVector.addElement(oldIdListElementVector.elementAt(idViewId));
+ }
+ reindexListElementVector(newIdListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS,newIdListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+
+ if (catModifiedStates != null && catViewIds != null && catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ Vector oldCatListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ Vector newCatListElementVector = new Vector();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ int catViewId = Integer.parseInt(catViewIds[i]);
+ boolean isModified = Boolean.valueOf(catModifiedStates[i]).booleanValue();
+ if (catViewId == -1 || isModified)
+ newCatListElementVector.addElement(new ListElement(kr));
+ else
+ newCatListElementVector.addElement(oldCatListElementVector.elementAt(catViewId));
+ }
+ reindexListElementVector(newCatListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES,newCatListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ return inputsValid;
+ }
+
+ public final boolean refreshFromRegistry()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ Vector beVector = proxy.get_businessDetail(uuidKey).getBusinessEntityVector();
+ BusinessEntity be;
+ if (beVector.size() > 0)
+ be = (BusinessEntity)beVector.get(0);
+ else
+ be = null;
+ if (be != null)
+ {
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,be);
+ return true;
+ }
+ }
+ catch (TransportException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ catch (UDDIException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ isUpdate_ = false;
+ return false;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ BusinessEntity be = (BusinessEntity)propertyTable_.get(UDDIActionInputs.LATEST_OBJECT);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ Vector discoveryURLListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ Vector nameListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ Vector descriptionListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+ Vector idListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ Vector catListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+
+ Vector discoveryURLVector = new Vector();
+ if (discoveryURLListElementVector != null)
+ {
+ for (int i=0;i<discoveryURLListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)discoveryURLListElementVector.elementAt(i);
+ DiscoveryURL discoveryURL = (DiscoveryURL)listElement.getObject();
+ discoveryURLVector.addElement(discoveryURL);
+ }
+ }
+
+ Vector nameVector = new Vector();
+ for (int i=0;i<nameListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)nameListElementVector.elementAt(i);
+ Name name = (Name)listElement.getObject();
+ nameVector.addElement(name);
+ }
+
+ Vector descriptionVector = null;
+ if (descriptionListElementVector != null)
+ {
+ descriptionVector = new Vector();
+ for (int i=0;i<descriptionListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionListElementVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ descriptionVector.addElement(description);
+ }
+ }
+
+ IdentifierBag idBag = null;
+ if (idListElementVector != null)
+ {
+ idBag = new IdentifierBag();
+ for (int i=0;i<idListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)idListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ idBag.add(kr);
+ }
+ }
+
+ CategoryBag catBag = null;
+ if (catListElementVector != null)
+ {
+ catBag = new CategoryBag();
+ for (int i=0;i<catListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ catBag.add(kr);
+ }
+ }
+
+ if (discoveryURLVector.size() > 0)
+ be.setDiscoveryURLs(new DiscoveryURLs(discoveryURLVector));
+ else
+ be.setDiscoveryURLs(null);
+ be.setNameVector(nameVector);
+ be.setDescriptionVector(descriptionVector);
+ be.setIdentifierBag(idBag);
+ be.setCategoryBag(catBag);
+
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+ Vector beVector = new Vector();
+ beVector.add(be);
+ be = (BusinessEntity)proxy.save_business(regElement.getAuthInfoString(), beVector).getBusinessEntityVector().get(0);
+ refreshNode(be);
+ if (isUpdate_)
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESS_UPDATED",be.getDefaultNameString()));
+ else
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_BUSINESS_PUBLISHED",be.getDefaultNameString()));
+ return true;
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateRegistryAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateRegistryAction.java
new file mode 100644
index 000000000..acc9a12f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateRegistryAction.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * 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.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 java.text.*;
+import java.io.*;
+
+public class UpdateRegistryAction extends UpdateAction
+{
+ public UpdateRegistryAction(Controller controller)
+ {
+ super(controller,false);
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String nameModifiedState = parser.getParameter(UDDIActionInputs.NAME_MODIFIED);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+ String[] userDefinedCategoryTModelKeys = parser.getParameterValues(UDDIActionInputs.CATEGORY_TMODEL_KEY);
+ String[] userDefinedCategoryData = parser.getParameterValues(UDDIActionInputs.CATEGORY_FILENAME);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (nameModifiedState != null && name != null)
+ {
+ boolean isModified = Boolean.valueOf(nameModifiedState).booleanValue();
+ String newName;
+ if (isModified)
+ newName = name;
+ else
+ newName = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME,newName);
+ if (!Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+
+ if (userDefinedCategoryTModelKeys != null && userDefinedCategoryData != null)
+ {
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ for (int i=0;i<userDefinedCategoryTModelKeys.length;i++)
+ {
+ CategoryModel userDefinedCategory = regElement.getUserDefinedCategory(userDefinedCategoryTModelKeys[i]);
+// TODO: Move UDDIPreferenceContext down to org.eclipse.wst.ws
+// UDDIPreferenceContext context = WebServicePlugin.getInstance().getUDDIPreferenceContext();
+// userDefinedCategory.setColumnDelimiter(context.getUddiCatDataColumnDelimiter());
+// userDefinedCategory.setStringDelimiter(context.getUddiCatDataStringDelimiter());
+ userDefinedCategory.setColumnDelimiter("#");
+ userDefinedCategory.setStringDelimiter("\"");
+ String displayName = userDefinedCategory.getDisplayName();
+ if (userDefinedCategoryData[i] == null || userDefinedCategoryData[i].length() < 1)
+ {
+ inputsValid = false;
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE",displayName));
+ formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
+ }
+ else
+ {
+ byte rc = userDefinedCategory.loadData(new BufferedReader(new StringReader(userDefinedCategoryData[i])));
+ switch (rc)
+ {
+ case CategoryModel.OPERATION_SUCCESSFUL:
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED",displayName));
+ break;
+ case CategoryModel.ERROR_FILE:
+ inputsValid = false;
+ ParseException pe = (ParseException)userDefinedCategory.getErrorException();
+ String[] args1 = {String.valueOf(pe.getErrorOffset()),displayName,pe.getMessage(),userDefinedCategory.getCategoryKey()};
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT",args1));
+ formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
+ break;
+ case CategoryModel.ERROR_CATEGORY_KEY:
+ default:
+ inputsValid = false;
+ String[] args2 = {displayName,userDefinedCategory.getErrorException().getMessage(),userDefinedCategory.getCategoryKey()};
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY",args2));
+ formToolPI.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,userDefinedCategoryTModelKeys[i]);
+ }
+ }
+ }
+ }
+ return inputsValid;
+ }
+
+ public final boolean refreshFromRegistry()
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ String name = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ regElement.setName(name);
+ regNode_.getTreeElement().setName(name);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_REGISTRY_UPDATED",name));
+ return true;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceAction.java
new file mode 100644
index 000000000..309b18f32
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceAction.java
@@ -0,0 +1,483 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.*;
+import org.uddi4j.response.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.util.*;
+import org.uddi4j.UDDIException;
+
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+import java.util.*;
+import java.net.*;
+
+public class UpdateServiceAction extends UpdateAction
+{
+ private boolean isUpdate_;
+ public UpdateServiceAction(Controller controller)
+ {
+ super(controller,true);
+ isUpdate_ = true;
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidBusinessKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ String uuidServiceKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY);
+ String wsdlURLModifiedState = parser.getParameter(UDDIActionInputs.WSDL_URL_MODIFIED);
+ String wsdlURL = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ String[] nameModifiedStates = parser.getParameterValues(UDDIActionInputs.NAME_MODIFIED);
+ String[] nameViewIds = parser.getParameterValues(UDDIActionInputs.NAME_VIEWID);
+ String[] nameLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE);
+ String[] names = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME);
+ String[] descriptionModifiedStates = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_MODIFIED);
+ String[] descriptionViewIds = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_VIEWID);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] catModifiedStates = parser.getParameterValues(UDDIActionInputs.CATEGORY_MODIFIED);
+ String[] catViewIds = parser.getParameterValues(UDDIActionInputs.CATEGORY_VIEWID);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidBusinessKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,uuidBusinessKey);
+
+ if (uuidServiceKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,uuidServiceKey);
+
+ if (wsdlURLModifiedState != null && wsdlURL != null)
+ {
+ ListElement wsdlURLListElement = (ListElement)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ boolean isModified = Boolean.valueOf(wsdlURLModifiedState).booleanValue();
+ if (isModified)
+ wsdlURLListElement = new ListElement(wsdlURL);
+ else
+ wsdlURL = (String)wsdlURLListElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,wsdlURLListElement);
+ if (!Validator.validateURL(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+
+ Hashtable languageHash = new Hashtable();
+ if (nameModifiedStates != null && nameViewIds != null && nameLanguages != null && names != null)
+ {
+ Vector oldNameListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ Vector newNameListElementVector = new Vector();
+ // UDDI's save API (Appendix C of the UDDI V2 Programmers API Specification) requires the following:
+ // 1) Only the first row can have a blank language.
+ // 2) Only 1 name per language.
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_NAME");
+ for (int i=0;i<names.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Name uddi4jName;
+ if (nameLanguages[i].length() > 0)
+ uddi4jName = new Name(names[i],nameLanguages[i]);
+ else
+ {
+ uddi4jName = new Name(names[i]);
+ if (i != 0)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(nameLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(nameLanguages[i],Boolean.TRUE);
+ if (!Validator.validateString(names[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int nameViewId = Integer.parseInt(nameViewIds[i]);
+ boolean isModified = Boolean.valueOf(nameModifiedStates[i]).booleanValue();
+
+ if (nameViewId == -1 || isModified)
+ newNameListElementVector.addElement(new ListElement(uddi4jName));
+ else
+ newNameListElementVector.addElement(oldNameListElementVector.elementAt(nameViewId));
+ }
+ reindexListElementVector(newNameListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,newNameListElementVector);
+ }
+ else
+ {
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_NO_NAMES"));
+ }
+
+ if (descriptionModifiedStates != null && descriptionViewIds != null && descriptionLanguages != null && descriptions != null)
+ {
+ Vector oldDescriptionListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ Vector newDescriptionListElementVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (!Validator.validateString(descriptions[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int descriptionViewId = Integer.parseInt(descriptionViewIds[i]);
+ boolean isModified = Boolean.valueOf(descriptionModifiedStates[i]).booleanValue();
+
+ if (descriptionViewId == -1 || isModified)
+ newDescriptionListElementVector.addElement(new ListElement(uddi4jDescription));
+ else
+ newDescriptionListElementVector.addElement(oldDescriptionListElementVector.elementAt(descriptionViewId));
+ }
+ reindexListElementVector(newDescriptionListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,newDescriptionListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+
+ if (catModifiedStates != null && catViewIds != null && catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ Vector oldCatListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ Vector newCatListElementVector = new Vector();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ int catViewId = Integer.parseInt(catViewIds[i]);
+ boolean isModified = Boolean.valueOf(catModifiedStates[i]).booleanValue();
+ if (catViewId == -1 || isModified)
+ newCatListElementVector.addElement(new ListElement(kr));
+ else
+ newCatListElementVector.addElement(oldCatListElementVector.elementAt(catViewId));
+ }
+ reindexListElementVector(newCatListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,newCatListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ return inputsValid;
+ }
+
+ public final boolean refreshBusinessFromRegistry()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String uuidBusinessKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ Vector beVector = proxy.get_businessDetail(uuidBusinessKey).getBusinessEntityVector();
+ BusinessEntity be;
+ if (beVector.size() > 0)
+ be = (BusinessEntity)beVector.get(0);
+ else
+ be = null;
+ if (be != null)
+ {
+ propertyTable_.put(UDDIActionInputs.LATEST_BUSINESS,be);
+ return true;
+ }
+ }
+ catch (TransportException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ catch (UDDIException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ return false;
+ }
+
+ public final boolean refreshFromRegistry()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ try
+ {
+ String uuidServiceKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ ServiceDetail serviceDetail = proxy.get_serviceDetail(uuidServiceKey);
+ Vector businessServiceVector = serviceDetail.getBusinessServiceVector();
+ if (businessServiceVector.size() > 0)
+ {
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,businessServiceVector.elementAt(0));
+ return true;
+ }
+ }
+ catch (UDDIException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ catch (TransportException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ isUpdate_ = false;
+ return false;
+ }
+
+ public final RegPublishTool setupRegPublishTool()
+ {
+ // Prepare for re-publishing a now-stale service whose business has also been eliminated.
+ RegPublishTool regPublishTool = regNode_.getRegPublishTool();
+ regPublishTool.setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,String.valueOf(UDDIActionInputs.QUERY_STYLE_ADVANCED));
+
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL));
+
+ Vector nameListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ Vector descriptionListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ Vector catListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ Vector nameVector = new Vector();
+ for (int i=0;i<nameListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)nameListElementVector.elementAt(i);
+ Name name = (Name)listElement.getObject();
+ nameVector.addElement(name);
+ }
+
+ Vector descriptionVector = null;
+ if (descriptionListElementVector != null)
+ {
+ descriptionVector = new Vector();
+ for (int i=0;i<descriptionListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionListElementVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ descriptionVector.addElement(description);
+ }
+ }
+ else
+ regPublishTool.removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+
+ CategoryBag catBag = null;
+ if (catListElementVector != null)
+ {
+ catBag = new CategoryBag();
+ for (int i=0;i<catListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ catBag.add(kr);
+ }
+ }
+ else
+ regPublishTool.removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,nameVector);
+ if (descriptionVector != null)
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,descriptionVector);
+ if (catBag != null)
+ regPublishTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,catBag);
+ return regPublishTool;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ try
+ {
+ BusinessEntity be = (BusinessEntity)propertyTable_.get(UDDIActionInputs.LATEST_BUSINESS);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ String uuidServiceKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY);
+ ListElement wsdlURLListElement = (ListElement)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ Vector nameListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ Vector descriptionListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ Vector catListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+
+ String wsdlURL = (String)wsdlURLListElement.getObject();
+
+ Vector nameVector = new Vector();
+ for (int i=0;i<nameListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)nameListElementVector.elementAt(i);
+ Name name = (Name)listElement.getObject();
+ nameVector.addElement(name);
+ }
+
+ Vector descriptionVector = null;
+ if (descriptionListElementVector != null)
+ {
+ descriptionVector = new Vector();
+ for (int i=0;i<descriptionListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionListElementVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ descriptionVector.addElement(description);
+ }
+ }
+
+ CategoryBag catBag = null;
+ if (catListElementVector != null)
+ {
+ catBag = new CategoryBag();
+ for (int i=0;i<catListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ catBag.add(kr);
+ }
+ }
+
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+
+ // Note: The JSP will prevent this routine from executing if be is null.
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ Definition def = uddi4jHelper.getWSDLDefinition(wsdlURL);
+
+ // Publish/update the service interfaces first.
+ RegPublishServiceInterfaceSimpleAction regPublishSIAction = new RegPublishServiceInterfaceSimpleAction(controller_);
+ int currentNodeId = getSelectedNavigatorNode().getNodeId();
+ NodeManager nodeManager = regNode_.getNodeManager();
+
+ Hashtable tModelsTable = new Hashtable();
+ TModel[] tModels = null;
+ if (uddi4jHelper.isMonolithicWSDL(def))
+ {
+ tModels = new TModel[1];
+ tModels[0] = uddi4jHelper.newTModel(wsdlURL, def);
+ }
+ else
+ {
+ String[] imports = uddi4jHelper.getImports(def, wsdlURL);
+ tModels = new TModel[imports.length];
+ for (int i = 0; i < tModels.length; i++)
+ tModels[i] = uddi4jHelper.newTModel(imports[i]);
+ }
+
+ if (tModels != null)
+ {
+ for (int i=0;i<tModels.length;i++)
+ {
+ boolean inputsValid = regPublishSIAction.populatePropertyTable(uddi4jHelper.getWSDL(tModels[i]), tModels[i]);
+ if (inputsValid)
+ {
+ regPublishSIAction.run();
+ Object savedTModel = regPublishSIAction.getPropertyTable().get(UDDIActionInputs.QUERY_OUTPUT_SAVED_TMODEL);
+ if (savedTModel != null)
+ {
+ tModelsTable.put(((TModel)savedTModel).getNameString(), savedTModel);
+ }
+ // Reselect the current node.
+ nodeManager.setSelectedNodeId(currentNodeId);
+ }
+ }
+ }
+
+ BusinessService busService = uddi4jHelper.newBusinessService(wsdlURL, def, tModelsTable);
+ if (isUpdate_)
+ busService.setServiceKey(uuidServiceKey);
+ busService.setBusinessKey(be.getBusinessKey());
+ busService.setNameVector(nameVector);
+ busService.setDescriptionVector(descriptionVector);
+ busService.setCategoryBag(catBag);
+ regElement.handlePreInvocation(busService);
+ Vector bsVector = new Vector();
+ bsVector.add(busService);
+ busService = (BusinessService)proxy.save_service(regElement.getAuthInfoString(), bsVector).getBusinessServiceVector().get(0);
+ refreshNode(busService);
+ if (isUpdate_)
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_UPDATED",busService.getDefaultNameString()));
+ else
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_PUBLISHED",busService.getDefaultNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"WSDLException",e);
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceInterfaceAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceInterfaceAction.java
new file mode 100644
index 000000000..d8040278e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/actions/UpdateServiceInterfaceAction.java
@@ -0,0 +1,331 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel.*;
+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.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.*;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.response.*;
+import org.uddi4j.util.*;
+import org.uddi4j.UDDIException;
+
+import javax.wsdl.WSDLException;
+import java.util.*;
+import java.net.*;
+
+public class UpdateServiceInterfaceAction extends UpdateAction
+{
+ private boolean isUpdate_;
+ public UpdateServiceInterfaceAction(Controller controller)
+ {
+ super(controller,true);
+ isUpdate_ = true;
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser,FormToolPropertiesInterface formToolPI) throws MultipartFormDataException
+ {
+ String uuidKey = parser.getParameter(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY);
+ String wsdlURLModifiedState = parser.getParameter(UDDIActionInputs.WSDL_URL_MODIFIED);
+ String wsdlURL = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ String nameModifiedState = parser.getParameter(UDDIActionInputs.NAME_MODIFIED);
+ String name = parser.getParameter(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ String[] descriptionModifiedStates = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_MODIFIED);
+ String[] descriptionViewIds = parser.getParameterValues(UDDIActionInputs.DESCRIPTION_VIEWID);
+ String[] descriptionLanguages = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE);
+ String[] descriptions = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION);
+ String[] idModifiedStates = parser.getParameterValues(UDDIActionInputs.IDENTIFIER_MODIFIED);
+ String[] idViewIds = parser.getParameterValues(UDDIActionInputs.IDENTIFIER_VIEWID);
+ String[] idTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE);
+ String[] idKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME);
+ String[] idKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE);
+ String[] catModifiedStates = parser.getParameterValues(UDDIActionInputs.CATEGORY_MODIFIED);
+ String[] catViewIds = parser.getParameterValues(UDDIActionInputs.CATEGORY_VIEWID);
+ String[] catTypes = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE);
+ String[] catKeyNames = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME);
+ String[] catKeyValues = parser.getParameterValues(UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE);
+
+ boolean inputsValid = true;
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+
+ if (uuidKey != null)
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,uuidKey);
+
+ if (wsdlURLModifiedState != null && wsdlURL != null)
+ {
+ ListElement wsdlURLListElement = (ListElement)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ boolean isModified = Boolean.valueOf(wsdlURLModifiedState).booleanValue();
+ if (isModified)
+ wsdlURLListElement = new ListElement(wsdlURL);
+ else
+ wsdlURL = (String)wsdlURLListElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL,wsdlURLListElement);
+ if (!Validator.validateURL(wsdlURL))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_WSDL_URL"));
+ }
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+
+ if (nameModifiedState != null && name != null)
+ {
+ ListElement nameListElement = (ListElement)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ boolean isModified = Boolean.valueOf(nameModifiedState).booleanValue();
+ if (isModified)
+ nameListElement = new ListElement(name);
+ else
+ name = (String)nameListElement.getObject();
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,nameListElement);
+ if (!Validator.validateString(name))
+ {
+ inputsValid = false;
+ formToolPI.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_INVALID_NAME"));
+ }
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+
+ Hashtable languageHash = new Hashtable();
+ if (descriptionModifiedStates != null && descriptionViewIds != null && descriptionLanguages != null && descriptions != null)
+ {
+ Vector oldDescriptionListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+ Vector newDescriptionListElementVector = new Vector();
+ String[] parameters = new String[2];
+ parameters[0] = uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION");
+ languageHash.clear();
+ for (int i=0;i<descriptions.length;i++)
+ {
+ parameters[1] = String.valueOf(i+1);
+ Description uddi4jDescription;
+ if (descriptionLanguages[i].length() > 0)
+ uddi4jDescription = new Description(descriptions[i],descriptionLanguages[i]);
+ else
+ {
+ uddi4jDescription = new Description(descriptions[i]);
+ if (i != 0)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_BLANK_LANGUAGE",parameters));
+ }
+ }
+ if (languageHash.get(descriptionLanguages[i]) != null)
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_DUPLICATE_LANGUAGE",parameters));
+ }
+ else
+ languageHash.put(descriptionLanguages[i],Boolean.TRUE);
+ if (!Validator.validateString(descriptions[i]))
+ {
+ inputsValid = false;
+ formToolPI.flagRowError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_ERROR_ROW_INVALID_TEXT",parameters));
+ }
+
+ int descriptionViewId = Integer.parseInt(descriptionViewIds[i]);
+ boolean isModified = Boolean.valueOf(descriptionModifiedStates[i]).booleanValue();
+
+ if (descriptionViewId == -1 || isModified)
+ newDescriptionListElementVector.addElement(new ListElement(uddi4jDescription));
+ else
+ newDescriptionListElementVector.addElement(oldDescriptionListElementVector.elementAt(descriptionViewId));
+ }
+ reindexListElementVector(newDescriptionListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,newDescriptionListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+
+ if (idModifiedStates != null && idViewIds != null && idTypes != null && idKeyNames != null && idKeyValues != null)
+ {
+ Vector oldIdListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ Vector newIdListElementVector = new Vector();
+ for (int i=0;i<idKeyNames.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(idKeyNames[i],idKeyValues[i],idTypes[i]);
+ int idViewId = Integer.parseInt(idViewIds[i]);
+ boolean isModified = Boolean.valueOf(idModifiedStates[i]).booleanValue();
+ if (idViewId == -1 || isModified)
+ newIdListElementVector.addElement(new ListElement(kr));
+ else
+ newIdListElementVector.addElement(oldIdListElementVector.elementAt(idViewId));
+ }
+ reindexListElementVector(newIdListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS,newIdListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+
+ if (catModifiedStates != null && catViewIds != null && catTypes != null && catKeyNames != null && catKeyValues != null)
+ {
+ Vector oldCatListElementVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ Vector newCatListElementVector = new Vector();
+ for (int i=0;i<catTypes.length;i++)
+ {
+ KeyedReference kr = new KeyedReference(catKeyNames[i],catKeyValues[i],catTypes[i]);
+ int catViewId = Integer.parseInt(catViewIds[i]);
+ boolean isModified = Boolean.valueOf(catModifiedStates[i]).booleanValue();
+ if (catViewId == -1 || isModified)
+ newCatListElementVector.addElement(new ListElement(kr));
+ else
+ newCatListElementVector.addElement(oldCatListElementVector.elementAt(catViewId));
+ }
+ reindexListElementVector(newCatListElementVector);
+ propertyTable_.put(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES,newCatListElementVector);
+ }
+ else
+ removeProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ return inputsValid;
+ }
+
+ public final boolean refreshFromRegistry()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ try
+ {
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY);
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ UDDIProxy proxy = regElement.getProxy();
+ TModelDetail tModelDetail = proxy.get_tModelDetail(uuidKey);
+ Vector tModelVector = tModelDetail.getTModelVector();
+ if (tModelVector.size() > 0)
+ {
+ propertyTable_.put(UDDIActionInputs.LATEST_OBJECT,tModelVector.elementAt(0));
+ return true;
+ }
+ }
+ catch (UDDIException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ catch (TransportException e)
+ {
+ // Feedback via Javascript popups.
+ }
+ isUpdate_ = false;
+ return false;
+ }
+
+ public final boolean run()
+ {
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ MessageQueue messageQueue = uddiPerspective.getMessageQueue();
+ try
+ {
+ String uuidKey = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY);
+ String publishURL = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+ ListElement wsdlURLListElement = (ListElement)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ ListElement nameListElement = (ListElement)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ Vector descriptionListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+ Vector idListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ Vector catListElementVector = (Vector)propertyTable_.get(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+
+ String wsdlURL = (String)wsdlURLListElement.getObject();
+
+ String name = (String)nameListElement.getObject();
+
+ Vector descriptionVector = null;
+ if (descriptionListElementVector != null)
+ {
+ descriptionVector = new Vector();
+ for (int i=0;i<descriptionListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionListElementVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ descriptionVector.addElement(description);
+ }
+ }
+
+ IdentifierBag idBag = null;
+ if (idListElementVector != null)
+ {
+ idBag = new IdentifierBag();
+ for (int i=0;i<idListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)idListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ idBag.add(kr);
+ }
+ }
+
+ CategoryBag catBag = null;
+ if (catListElementVector != null)
+ {
+ catBag = new CategoryBag();
+ for (int i=0;i<catListElementVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catListElementVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ catBag.add(kr);
+ }
+ }
+
+ TModel tModel = (new Uddi4jHelper()).newTModel(wsdlURL);
+ if (isUpdate_)
+ tModel.setTModelKey(uuidKey);
+ tModel.setName(name);
+ tModel.setDescriptionVector(descriptionVector);
+ tModel.setIdentifierBag(idBag);
+ tModel.setCategoryBag(catBag);
+
+ RegistryElement regElement = (RegistryElement)regNode_.getTreeElement();
+ if (!regElement.isLoggedIn())
+ regElement.performLogin(publishURL,userId,password);
+ UDDIProxy proxy = regElement.getProxy();
+ Vector tModelVector = new Vector();
+ tModelVector.add(tModel);
+ tModel = (TModel)proxy.save_tModel(regElement.getAuthInfoString(), tModelVector).getTModelVector().get(0);
+ refreshNode(tModel);
+ if (isUpdate_)
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACE_UPDATED",tModel.getNameString()));
+ else
+ messageQueue.addMessage(uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACE_PUBLISHED",tModel.getNameString()));
+ return true;
+ }
+ catch (WSDLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"WSDLException",e);
+ }
+ catch (TransportException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"TransportException",e);
+ }
+ catch (UDDIException e)
+ {
+ messageQueue.addMessage(uddiPerspective.getController().getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage("UDDIException");
+ messageQueue.addMessage(e.toString());
+ }
+ catch (MalformedURLException e)
+ {
+ handleUnexpectedException(uddiPerspective,messageQueue,"MalformedURLException",e);
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIActionInputs.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIActionInputs.java
new file mode 100644
index 000000000..2ee6dde85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIActionInputs.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * 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.constants;
+
+public class UDDIActionInputs
+{
+ // OpenRegistryAction
+ public static final String REGISTRY_NAME = "registryName";
+ public static final String INQUIRY_URL = "inquiryURL";
+ public static final String PUBLISH_URL = "publishURL";
+ public static final String REGISTRATION_URL = "registrationURL";
+ public static final String CHECK_USER_DEFINED_CATEGORIES = "checkUserDefinedCategories";
+ public static final String UDDI_USERNAME = "uddiUsername";
+ public static final String UDDI_PASSWORD = "uddiPassword";
+
+ // Fixed and user-defined categories
+ public static final String CATEGORIES_DIRECTORY = "categoriesDirectory";
+ public static final String CATEGORY_TMODEL_KEY = "categoryTModelKey";
+ public static final String CATEGORY_FILENAME = "categoryFileName";
+ public static final String USER_DEFINED_CATEGORIES = "userDefinedCategories";
+
+ // Discovery URL use type
+ public static final String DISCOVERY_URL_TYPE = "businessEntity";
+
+ // Results (NODEID)
+ public static final String NODEID_SERVICE_INTERFACE = "nodeId_ServiceInterface";
+ public static final String NODEID_SERVICE = "nodeId_Service";
+ public static final String NODEID_BUSINESS = "nodeId_Business";
+
+ // RegFind..Actions/RegPublish..Actions
+ public static final String QUERY_INPUT_OVERRIDE_ADD_QUERY_NODE = "overrideAddQueryNode";
+ public static final String QUERY_NAME = "queryName";
+ public static final String QUERY_ITEM = "queryItem";
+ public static final int QUERY_ITEM_QUERIES = -1;
+ public static final int QUERY_ITEM_BUSINESSES = 0;
+ public static final int QUERY_ITEM_SERVICES = 1;
+ public static final int QUERY_ITEM_SERVICE_INTERFACES = 2;
+ public static final int QUERY_STYLE_SIMPLE = 0;
+ public static final int QUERY_STYLE_ADVANCED = 1;
+ public static final int QUERY_STYLE_UUID = 2;
+ public static final String QUERY_INPUT_ADVANCED_OWNED = "advancedOwned";
+ public static final String QUERY_INPUT_ADVANCED_PUBLISH_URL = "advancedPublishURL";
+ public static final String QUERY_INPUT_ADVANCED_USERID = "advancedUserId";
+ public static final String QUERY_INPUT_ADVANCED_PASSWORD = "advancedPassword";
+ public static final String QUERY_INPUT_ADVANCED_NAME_LANGUAGE = "advancedNameLanguage";
+ public static final String QUERY_INPUT_ADVANCED_NAME = "advancedName";
+ public static final String QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE = "advancedIdentifierType";
+ public static final String QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME = "advancedIdentifierKeyName";
+ public static final String QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE = "advancedIdentifierKeyValue";
+ public static final String QUERY_INPUT_ADVANCED_CATEGORY_TYPE = "advancedCategoryType";
+ public static final String QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME = "advancedCategoryKeyName";
+ public static final String QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE = "advancedCategoryKeyValue";
+ public static final String QUERY_INPUT_ADVANCED_DISCOVERYURL = "advancedDiscoveryURL";
+ public static final String QUERY_INPUT_ADVANCED_FINDQUALIFIER = "advancedFindQualifier";
+ public static final String QUERY_INPUT_ADVANCED_SORT_BY_NAME = "advancedSortByName";
+ public static final String QUERY_INPUT_ADVANCED_SORT_BY_DATE = "advancedSortByDate";
+ public static final String QUERY_INPUT_ADVANCED_MAX_SEARCH_SET = "advancedMaxSearchSet";
+ public static final int QUERY_MAX_SEARCH_SET = 100;
+ public static final String QUERY_INPUT_ADVANCED_MAX_RESULTS = "advancedMaxResults";
+ public static final int QUERY_MAX_RESULTS = 10;
+
+ public static final String QUERY_STYLE_BUSINESSES = "queryStyleBusinesses";
+ public static final String QUERY_INPUT_SIMPLE_BUSINESS_NAME = "simpleBusinessName";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_OWNED = "advancedBusinessOwned";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_NAMES = "advancedBusinessNames";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS = "advancedBusinessIdentifiers";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES = "advancedBusinessCategories";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS = "advancedBusinessDiscoveryURLs";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES = "advancedBusinessServiceInterfaces";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES_COPY = "advancedBusinessServiceInterfacesCopy";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_TMODELBAG = "advancedBusinessTModelBag";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_FINDQUALIFIERS = "advancedBusinessFindQualifiers";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET = "advancedBusinessMaxSearchSet";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS = "advancedBusinessMaxResults";
+
+ public static final String QUERY_STYLE_SERVICES = "queryStyleServices";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_NAME = "simpleServiceName";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_OWNED = "advancedServiceOwned";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_BUSINESS = "advancedServiceBusiness";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY = "advancedServiceBusinessCopy";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_SERVICE_PROVIDER = "advancedServiceServiceProvider";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_NAMES = "advancedServiceNames";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES = "advancedServiceCategories";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES = "advancedServiceServiceInterfaces";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY = "advancedServiceServiceInterfacesCopy";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_TMODEL = "advancedServiceTModel";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_TMODELBAG = "advancedServiceTModelBag";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_FINDQUALIFIERS = "advancedServiceFindQualifiers";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET = "advancedServiceMaxSearchSet";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS = "advancedServiceMaxResults";
+
+ public static final String QUERY_STYLE_SERVICE_INTERFACES = "queryStyleServiceInterfaces";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME = "simpleServiceInterfaceName";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE = "advancedUseService";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE = "advancedServiceInterfaceService";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE_COPY = "advancedServiceInterfaceServiceCopy";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_BUSINESS_SERVICE = "advancedServiceInterfaceBusinessService";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_OWNED = "advancedServiceInterfaceOwned";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME = "advancedServiceInterfaceName";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS = "advancedServiceInterfaceIdentifiers";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES = "advancedServiceInterfaceCategories";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_FINDQUALIFIERS = "advancedServiceInterfaceFindQualifiers";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET = "advancedServiceInterfaceMaxSearchSet";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS = "advancedServiceInterfaceMaxResults";
+
+ public static final String QUERY_INPUT_ADVANCED_REGISTRY_NAME = "advancedRegistryName";
+
+ public static final String QUERY_INPUT_UUID_KEY = "uuidKey";
+ public static final String QUERY_INPUT_UUID_BUSINESS_KEY = "uuidBusinessKey";
+ public static final String QUERY_INPUT_UUID_SERVICE_KEY = "uuidServiceKey";
+ public static final String QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY = "uuidServiceInterfaceKey";
+
+ public static final String QUERY_OUTPUT_SAVED_TMODEL = "savedTModel";
+
+ // Sub Queries:
+ public static final String SUBQUERIES_PROPERTIES = "subQueriesProperties";
+ public static final String SUBQUERY_KEY = "subQueryKey";
+ public static final String NEW_SUBQUERY_INITIATED = "newSubQueryInitiated";
+ public static final String NEW_SUBQUERY_QUERY_ITEM = "newSubQueryQueryItem";
+ public static final String SELECTED_NODEIDS = "selectedNodeIds";
+ public static final String SUBQUERY_LIST_KEY = "subQueryListKey";
+ public static final String SUBQUERY_LIST_ITEMID = "subQueryListItemId";
+ public static final String SHOW_RESULTS_TARGET = "showResultsTarget";
+ public static final String SUBQUERY_GET = "subQueryGet";
+
+ // RegPublish..Actions (some constants from the RegFind...Actions will be reused.
+ public static final String QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION = "simpleBusinessDescription";
+
+ public static final String QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE = "advancedDescriptionLanguage";
+ public static final String QUERY_INPUT_ADVANCED_DESCRIPTION = "advancedDescription";
+ public static final String QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS = "advancedBusinessDescriptions";
+
+ public static final String QUERY_INPUT_WSDL_URL = "wsdlURL";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL = "simpleServiceInterfaceWSDLURL";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION = "simpleServiceInterfaceDescription";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL = "advancedServiceInterfaceWSDLURL";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS = "advancedServiceInterfaceDescriptions";
+
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_BUSINESS = "simpleServiceBusiness";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY = "simpleServiceBusinessCopy";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_SERVICE_PROVIDER = "simpleServiceServiceProvider";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL = "simpleServiceWSDLURL";
+ public static final String QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION = "simpleServiceDescription";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL = "advancedServiceWSDLURL";
+ public static final String QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS = "advancedServiceDescriptions";
+
+ // WSDL Browser
+ public static final String PROJECT = "project";
+ public static final String WSDL_TYPE = "wsdlType";
+ public static final int WSDL_TYPE_SERVICE_INTERFACE = 0;
+ public static final int WSDL_TYPE_SERVICE = 1;
+ public static final String QUERY_INPUT_WEBPROJECT_WSDL_URL = "webProjectWSDLURL";
+ public static final String QUERY_INPUT_FAVORITE_WSDL_URL = "favoriteWSDLURL";
+
+ // Details
+ public static final String LATEST_OBJECT = "latestObject";
+ public static final String DISCOVERYURL_MODIFIED = "discoveryURLModified";
+ public static final String DISCOVERYURL_VIEWID = "discoveryURLViewId";
+ public static final String NAME_MODIFIED = "nameModified";
+ public static final String NAME_VIEWID = "businessViewId";
+ public static final String DESCRIPTION_MODIFIED = "descriptionModified";
+ public static final String DESCRIPTION_VIEWID = "descriptionViewId";
+ public static final String IDENTIFIER_MODIFIED = "identifierModified";
+ public static final String IDENTIFIER_VIEWID = "identifierViewId";
+ public static final String CATEGORY_MODIFIED = "categoryModified";
+ public static final String CATEGORY_VIEWID = "categoryViewId";
+ public static final String WSDL_URL_MODIFIED = "wsdlURLModified";
+ public static final String PUBLISH_ACTION = "publishAction";
+ public static final String LATEST_BUSINESS = "latestBusiness";
+
+ // Refresh action
+ public static final String REFRESH_NODE = "refreshNode";
+
+ // Manage PublisherAssertions
+ // "To" means from another business to my owning business
+ public static final int DIRECTION_TO = 0;
+ // "From" means from my owning business to another business
+ public static final int DIRECTION_FROM = 1;
+ public static final String PUBLISHER_ASSERTIONS_VIEWID = "publisherAssertionsViewId";
+ public static final String PUBLISHER_ASSERTIONS_SELECTED_BUS_ID = "publisherAssertionsSelectedBusID";
+ public static final String PUBLISHER_ASSERTIONS_DIRECTION = "publisherAssertionsDirection";
+ public static final String QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS = "queryInputAddPublisherAssertions";
+ public static final String QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS_COPY = "queryInputAddPublisherAssertionsCopy";
+ public static final String QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS = "queryInputExistingPublisherAssertions";
+ public static final String PUBLISHER_ASSERTIONS_TYPE = "publisherAssertionsType";
+ public static final String PUBLISHER_ASSERTIONS_TYPE_PARENT_CHILD = "parent-child";
+ public static final String PUBLISHER_ASSERTIONS_TYPE_PEER_TO_PEER = "peer-peer";
+ public static final String PUBLISHER_ASSERTIONS_TYPE_IDENTITY = "identity";
+
+ // Manage Referenced Services
+ public static final String QUERY_INPUT_REFERENCED_SERVICES = "referencedServices";
+ public static final String QUERY_INPUT_SERVICES = "services";
+ public static final String MANAGE_REFERENCED_SERVICES_OPERATION = "managedReferencedServicesOperation";
+ public static final int MANAGE_REFERENCED_SERVICES_OPERATION_ADD = 0;
+ public static final int MANAGE_REFERENCED_SERVICES_OPERATION_REMOVE = 1;
+ public static final String REFERENCED_SERVICE_SELECT_STATE = "referencedServiceSelectState";
+
+ // ResizeUDDIFrameAction
+ public static final String FRAMESET_COLS_PERSPECTIVE_CONTENT = "framesetColsPerspectiveContent";
+ public static final String FRAMESET_ROWS_ACTIONS_CONTAINER = "framesetRowsActionsContainer";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIFrameNames.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIFrameNames.java
new file mode 100644
index 000000000..970fff747
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIFrameNames.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.constants;
+
+public class UDDIFrameNames
+{
+ public final static String NAVIGATOR_CONTAINER = "uddi_navigator_container";
+ public final static String NAVIGATOR_TOOLBAR = "uddi_navigator_toolbar";
+ public final static String NAVIGATOR_CONTENT = "uddi_navigator_content";
+ public final static String ACTIONS_CONTAINER = "uddi_actions_container";
+ public final static String PROPERTIES_CONTAINER = "uddi_properties_container";
+ public final static String PROPERTIES_TOOLBAR = "uddi_properties_toolbar";
+ public final static String PROPERTIES_CONTENT = "uddi_properties_content";
+ public final static String STATUS_CONTAINER = "uddi_status_container";
+ public final static String STATUS_TOOLBAR = "uddi_status_toolbar";
+ public final static String STATUS_CONTENT = "uddi_status_content";
+
+ public final static String CATEGORIES_WORKAREA = "categories_workarea";
+ public final static String CATEGORIES_TOOLBAR = "categories_toolbar";
+ public final static String CATEGORIES_CONTENT = "categories_content";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIModelConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIModelConstants.java
new file mode 100644
index 000000000..b344fe9c2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/constants/UDDIModelConstants.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.constants;
+
+public class UDDIModelConstants
+{
+ // Registries under UDDIMain.
+ public static final String REL_REGISTRIES = "registries";
+
+ // Executed Queries folder under a registry.
+ public static final String REL_QUERIES_PARENT = "queriesParent";
+
+ // Published Businesses folder under a registry.
+ public static final String REL_PUBLISHED_BUSINESSES_PARENT = "publishedBusinessesParent";
+
+ // Published Services folder under a registry.
+ public static final String REL_PUBLISHED_SERVICES_PARENT = "publishedServicesParent";
+
+ // Published Service interfaces folder under a registry.
+ public static final String REL_PUBLISHED_SERVICE_INTERFACES_PARENT = "publishedServiceInterfacesParent";
+
+ // Queries under the Queries folder.
+ public static final String REL_QUERIES = "queries";
+ public static final String INITIAL_RESULTS = "initialResults";
+ public static final String QUERY_TYPE = "queryType";
+ public static final String SUBQUERY_TRANSFER_TARGET = "subQueryTransferTarget";
+
+ // Objects under a Query node.
+ public static final String REL_QUERY_RESULTS = "queryResults";
+
+ // Categories
+ public static final String REL_SUBCATEGORIES = "subCategories";
+
+ // Published items inside the Published items folder.
+ public static final String REL_PUBLISHED_ITEMS = "publishedItems";
+
+ // Businesses
+ public static final String IS_BUSINESS_OWNED = "isBusinessOwned";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/AbstractUDDIElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/AbstractUDDIElement.java
new file mode 100644
index 000000000..09562fd8e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/AbstractUDDIElement.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.Model;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+
+import java.util.Enumeration;
+
+public abstract class AbstractUDDIElement extends TreeElement
+{
+ public AbstractUDDIElement(String name, Model model)
+ {
+ super(name, model);
+ }
+
+ public final TreeElement getParentElement()
+ {
+ return getParentElement(this);
+ }
+
+ public final TreeElement getParentElement(TreeElement child)
+ {
+ Enumeration e = child.getElements(ModelConstants.REL_OWNER);
+ if (e.hasMoreElements())
+ return (TreeElement)e.nextElement();
+ else
+ return null;
+ }
+
+ public final RegistryElement getRegistryElement()
+ {
+ if (this instanceof RegistryElement)
+ return (RegistryElement)this;
+ else
+ {
+ TreeElement childElement = this;
+ TreeElement parentElement = getParentElement(childElement);
+ while (parentElement != null && parentElement != childElement)
+ {
+ if (parentElement instanceof RegistryElement)
+ return (RegistryElement)parentElement;
+ childElement = parentElement;
+ parentElement = getParentElement(childElement);
+ }
+ return null;
+ }
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/BusinessElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/BusinessElement.java
new file mode 100644
index 000000000..b1d4ed233
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/BusinessElement.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+
+public class BusinessElement extends AbstractUDDIElement
+{
+ private BusinessEntity be_;
+ private ListManager publisherAssertions_;
+
+ public BusinessElement(BusinessEntity be,Model model)
+ {
+ super(be.getDefaultNameString(),model);
+ be_ = be;
+ setKey(be_.getBusinessKey());
+ publisherAssertions_ = null;
+ }
+
+ public final BusinessEntity getBusinessEntity()
+ {
+ return be_;
+ }
+
+ public final void setBusinessEntity(BusinessEntity be)
+ {
+ be_ = be;
+ setKey(be_.getBusinessKey());
+ }
+
+ public ListManager getPublisherAssertions()
+ {
+ return publisherAssertions_;
+ }
+
+ public void setPublisherAssertions(ListManager listManager)
+ {
+ publisherAssertions_ = listManager;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryElement.java
new file mode 100644
index 000000000..478c87fa9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryElement.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+
+import org.uddi4j.util.*;
+
+public class CategoryElement extends AbstractUDDIElement
+{
+ private KeyedReference category_;
+
+ public CategoryElement(String name,KeyedReference category,Model model)
+ {
+ super(name,model);
+ category_ = category;
+ saveCategoryProperties();
+ }
+
+ private final void saveCategoryProperties()
+ {
+ if (category_ != null)
+ {
+ String keyName = category_.getKeyName();
+ if (keyName != null)
+ setName(keyName);
+ }
+ }
+
+ public final KeyedReference getCategory()
+ {
+ return category_;
+ }
+
+ public final String getNameForTree()
+ {
+ StringBuffer nameForTree = new StringBuffer("[");
+ nameForTree.append(category_.getKeyValue()).append("] ").append(category_.getKeyName());
+ return nameForTree.toString();
+ }
+
+ public final void updateCategory(String keyName,String keyValue,String tModelKey)
+ {
+ category_.setKeyName(keyName);
+ category_.setKeyValue(keyValue);
+ category_.setTModelKey(tModelKey);
+ saveCategoryProperties();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryModel.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryModel.java
new file mode 100644
index 000000000..85a1ba396
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/CategoryModel.java
@@ -0,0 +1,532 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+
+import org.uddi4j.util.*;
+
+import java.util.*;
+import java.text.*;
+import java.io.*;
+
+import javax.servlet.ServletContext;
+
+public class CategoryModel extends BasicModel
+{
+ private ServletContext application_;
+ private String defaultDataFile_;
+ private Hashtable categoryElements_;
+ private String columnDelimiter_;
+ private String stringDelimiter_;
+ private String categoryKey_;
+ private boolean checked_;
+ private String displayName_;
+ private String tModelKey_;
+ private Throwable errorException_;
+
+ // Return codes for loading and saving category data.
+ public static final byte OPERATION_SUCCESSFUL = 0x00;
+ public static final byte ERROR_FILE = 0x01;
+ public static final byte ERROR_SECURITY = 0x02;
+ public static final byte ERROR_ENCODING = 0x03;
+ public static final byte ERROR_IO = 0x04;
+ public static final byte ERROR_CATEGORY_KEY = 0x05;
+
+ private final String defaultColumnDelimiter_ = "#";
+ private final String defaultStringDelimiter_ = "\"";
+
+ public CategoryModel()
+ {
+ super("categories");
+ application_ = null;
+ defaultDataFile_ = null;
+ columnDelimiter_ = defaultColumnDelimiter_;
+ stringDelimiter_ = defaultStringDelimiter_;
+ categoryElements_ = null;
+ categoryKey_ = null;
+ checked_ = true;
+ displayName_ = null;
+ tModelKey_ = null;
+ errorException_ = null;
+ }
+
+ /**
+ * CategoryModels load their data from the file named via the
+ * {@link #setDefaultDataFile(String)} method. The data file
+ * name is interpretted as either a physical pathname or a
+ * context-root relative pathname depending on whether the
+ * servlet context or "application" is null (default) or not.
+ * @param application The application context, null by default.
+ * Value can be the ServletContext of the WSExplorer or null.
+ */
+ public final void setServletContext(ServletContext application)
+ {
+ application_ = application;
+ }
+
+ public final void setDefaultDataFile(String defaultDataFile)
+ {
+ defaultDataFile_ = defaultDataFile;
+ }
+
+ public final void setCategoryKey(String categoryKey)
+ {
+ categoryKey_ = categoryKey;
+ }
+
+ public final String getCategoryKey()
+ {
+ return categoryKey_;
+ }
+
+ public final void setColumnDelimiter(String columnDelimiter)
+ {
+ columnDelimiter_ = columnDelimiter;
+ }
+
+ public final String getColumnDelimiter()
+ {
+ return columnDelimiter_;
+ }
+
+ public final void setStringDelimiter(String stringDelimiter)
+ {
+ stringDelimiter_ = stringDelimiter;
+ }
+
+ public final String getStringDelimiter()
+ {
+ return stringDelimiter_;
+ }
+
+ public final void enableChecked(boolean isChecked)
+ {
+ checked_ = isChecked;
+ }
+
+ public final boolean isChecked()
+ {
+ return checked_;
+ }
+
+ public final void setDisplayName(String displayName)
+ {
+ displayName_ = displayName;
+ }
+
+ public final String getDisplayName()
+ {
+ return displayName_;
+ }
+
+ public final void setTModelKey(String tModelKey)
+ {
+ tModelKey_ = tModelKey;
+ }
+
+ public final String getTModelKey()
+ {
+ return tModelKey_;
+ }
+
+ public final boolean isDataLoaded()
+ {
+ return (categoryElements_ != null);
+ }
+
+ public final Throwable getErrorException()
+ {
+ return errorException_;
+ }
+
+ private final boolean isEnclosedInQuotes(String string)
+ {
+ return string.startsWith("\"") && string.endsWith("\"");
+ }
+
+ public final byte loadFromDefaultDataFile()
+ {
+ try
+ {
+ if (defaultDataFile_ == null)
+ throw new FileNotFoundException();
+ BufferedReader br = null;
+ if (application_ == null)
+ br = new BufferedReader(new InputStreamReader(new FileInputStream(defaultDataFile_),HTMLUtils.UTF8_ENCODING));
+ else
+ br = new BufferedReader(new InputStreamReader(application_.getResourceAsStream(defaultDataFile_),HTMLUtils.UTF8_ENCODING));
+ return loadData(br);
+ }
+ catch (FileNotFoundException e)
+ {
+ errorException_ = e;
+ return ERROR_FILE;
+ }
+ catch (SecurityException e)
+ {
+ errorException_ = e;
+ return ERROR_SECURITY;
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ errorException_ = e;
+ return ERROR_ENCODING;
+ }
+ }
+
+ public final byte loadFromDelimiterFile()
+ {
+ // Get the associated .properties file and set the delimiters. The defaultDataFile_ is set to the delimiter file in this case.
+ // The properties file contains the following keys:
+ // wsad.dataFile - location of the category data file.
+ // wsad.checked - whether or not the category is checked.
+ // wsad.name - the display name of the category.
+ // column.delimiter - the delimiter character used for separating columns.
+ // string.delimiter - the delimiter character used to encapsulate data such that column delimiter characters are treated as data.
+ try
+ {
+ Properties p = new Properties();
+ InputStream fin = null;
+ if (application_ == null)
+ fin = new FileInputStream(defaultDataFile_);
+ else
+ fin = application_.getResourceAsStream(defaultDataFile_);
+ p.load(fin);
+ fin.close();
+ columnDelimiter_ = p.getProperty("column.delimiter");
+ stringDelimiter_ = p.getProperty("string.delimiter");
+ defaultDataFile_ = p.getProperty("wsad.dataFile");
+ return loadFromDefaultDataFile();
+ }
+ catch (FileNotFoundException e)
+ {
+ errorException_ = e;
+ return ERROR_FILE;
+ }
+ catch (SecurityException e)
+ {
+ errorException_ = e;
+ return ERROR_SECURITY;
+ }
+ catch (IOException e)
+ {
+ errorException_ = e;
+ return ERROR_IO;
+ }
+ }
+
+ public final byte loadData(BufferedReader br)
+ {
+ errorException_ = null;
+ CategoryElement rootElement = null;
+ categoryElements_ = new Hashtable();
+ byte returnCode = OPERATION_SUCCESSFUL;
+ String line = null;
+ int lineNumber = 0;
+ try
+ {
+ char columnDelimiterChar = columnDelimiter_.charAt(0);
+ char stringDelimiterChar = stringDelimiter_.charAt(0);
+ Vector values = new Vector();
+ while((line = br.readLine()) != null)
+ {
+ lineNumber++;
+ // Ignore blank lines.
+ if (line.trim().length() == 0)
+ continue;
+ int index = 0;
+ int tokenCount = 0;
+ int length = line.length();
+ boolean inStringDelimiters = false;
+ values.removeAllElements();
+ StringBuffer currentToken = new StringBuffer();
+ while (index < length)
+ {
+ char currentChar = line.charAt(index);
+ if (inStringDelimiters)
+ {
+ // In quote so ignoring delimiters
+ if (currentChar == stringDelimiterChar)
+ {
+ if (index < length - 1)
+ {
+ // currentChar could be a closing string delimiter or escape
+ // Need to look ahead to be sure...
+ char followingChar = line.charAt(index + 1);
+ if (followingChar == stringDelimiterChar)
+ {
+ // There is an escaped quote
+ currentToken.append(stringDelimiterChar);
+ // jump forward two characters.
+ index += 2;
+ }
+ else
+ {
+ // There was a closing string delimiter...jump forward to the next delimiter
+ inStringDelimiters = false;
+ //look for the next column delimiter character
+ int nextDelimiter = line.indexOf(columnDelimiterChar, index);
+ if (nextDelimiter == -1)
+ {
+ // There were no more delimiters so break out of the loop
+ break;
+ }
+ else
+ {
+ values.addElement(currentToken.toString());
+ //values[tokenCount++] = currentToken.toString();
+ currentToken.setLength(0);
+ inStringDelimiters = false;
+ index = nextDelimiter + 1;
+ }
+ }
+ }
+ else
+ {
+ // This is the last character and it's a closing string delimiter.
+ index++;
+ inStringDelimiters = false;
+ }
+ }
+ else
+ {
+ currentToken.append(currentChar);
+ index++;
+ }
+ }
+ else if (currentChar == columnDelimiterChar)
+ {
+ // There was a delimiter outside of quotes
+ values.addElement(currentToken.toString());
+ //values[tokenCount++] = currentToken.toString();
+ currentToken.setLength(0);
+ index++;
+ }
+ else if (currentChar == stringDelimiterChar)
+ {
+ // A quote appearing outside of quotes must be a opening quote
+ inStringDelimiters = true;
+ index++;
+ }
+ else
+ {
+ // There is a normal char outside of quotes
+ currentToken.append(currentChar);
+ index++;
+ }
+ }
+ // Expect token count to be values.length - 1 at this point if everything is ok
+ if (inStringDelimiters)
+ {
+ br.close();
+ throw new ParseException(line,lineNumber);
+ }
+
+ // Add the final token.
+ values.addElement(currentToken.toString());
+
+ // 3 columns format. From left to right, these are:
+ // 1) category's key value
+ // 2) category's key name
+ // 3) category's parent key value
+ // Convert to 4 columns format.
+ if (values.size() == 3)
+ {
+ if (categoryKey_ != null)
+ values.insertElementAt(categoryKey_, 0);
+ else
+ values.insertElementAt(tModelKey_, 0);
+ }
+
+ // 4 columns format. From left to right, these are:
+ // 1) type of category (categoryKey)
+ // 2) category's key value
+ // 3) category's key name
+ // 4) category's parent key value
+ if (values.size() == 4)
+ {
+ String categoryKey = (String)values.elementAt(0);
+ if (categoryKey_ == null)
+ categoryKey_ = categoryKey;
+ else if (!categoryKey_.equals(categoryKey))
+ throw new Exception(categoryKey);
+ String keyValue = (String)values.elementAt(1);
+ String keyName = (String)values.elementAt(2);
+ String parentKeyValue = (String)values.elementAt(3);
+ if (rootElement == null)
+ {
+ rootElement = new CategoryElement(displayName_,null,this);
+ setRootElement(rootElement);
+ }
+ if (isEnclosedInQuotes(keyName))
+ keyName = keyName.substring(1,keyName.length()-1);
+ // Check if the CategoryElement already exists. If it does, refresh the Category.
+ CategoryElement categoryElement = (CategoryElement)categoryElements_.get(keyValue);
+ if (categoryElement != null)
+ categoryElement.updateCategory(keyName,keyValue,tModelKey_);
+ else
+ categoryElement = new CategoryElement(keyName,new KeyedReference(keyName,keyValue,tModelKey_),this);
+ Element parentElement;
+ if (parentKeyValue.equals(keyValue))
+ parentElement = rootElement;
+ else
+ parentElement = (Element)categoryElements_.get(parentKeyValue);
+ if (parentElement == null)
+ {
+ parentElement = new CategoryElement("temp",new KeyedReference("",parentKeyValue,tModelKey_),this);
+ categoryElements_.put(parentKeyValue,parentElement);
+ }
+ else
+ parentElement.connect(categoryElement,UDDIModelConstants.REL_SUBCATEGORIES,ModelConstants.REL_OWNER);
+ categoryElements_.put(keyValue,categoryElement);
+ }
+ else
+ {
+ br.close();
+ throw new ParseException(line,lineNumber);
+ }
+ }
+ br.close();
+ return returnCode;
+ }
+ catch (IOException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_IO;
+ }
+ catch (ParseException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_FILE;
+ }
+ catch (Exception e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_CATEGORY_KEY;
+ }
+ categoryElements_ = null;
+ return returnCode;
+ }
+
+ private final void saveData(PrintWriter pw,CategoryElement categoryElement,CategoryElement parentElement,boolean isFirst)
+ {
+ // File format:
+ // <categoryKey>#<keyValue>#<keyName>#<parentKeyValue>
+ KeyedReference kr = categoryElement.getCategory();
+ // Check if this is not the root element.
+ if (kr != null)
+ {
+ String keyName = kr.getKeyName();
+ String keyValue = kr.getKeyValue();
+ String parentKeyValue;
+ if (parentElement == null)
+ parentKeyValue = keyValue;
+ else
+ {
+ KeyedReference parentKr = parentElement.getCategory();
+ // Check if the parent is the root element.
+ if (parentKr == null)
+ parentKeyValue = keyValue;
+ else
+ parentKeyValue = parentKr.getKeyValue();
+ }
+ if (!isFirst)
+ pw.println();
+ else
+ isFirst = false;
+ pw.print(mangle(categoryKey_));
+ pw.print(columnDelimiter_);
+ pw.print(mangle(keyValue));
+ pw.print(columnDelimiter_);
+ pw.print(mangle(keyName));
+ pw.print(columnDelimiter_);
+ pw.print(mangle(parentKeyValue));
+ }
+ Enumeration e = categoryElement.getElements(UDDIModelConstants.REL_SUBCATEGORIES);
+ if (e != null)
+ {
+ while (e.hasMoreElements())
+ saveData(pw,(CategoryElement)e.nextElement(),categoryElement,isFirst);
+ }
+ }
+
+ // Mangle an input string if it contains default column delimiter characters by surrounding it with the string delimiters.
+ private final String mangle(String input)
+ {
+ if (input != null && input.indexOf(columnDelimiter_) != -1)
+ {
+ StringBuffer s = new StringBuffer(input);
+ s.insert(0,stringDelimiter_).append(stringDelimiter_);
+ return s.toString();
+ }
+ return input;
+ }
+
+ public final byte saveData(String fileName)
+ {
+ // The fileName should already be URLEncoded.
+ byte returnCode = OPERATION_SUCCESSFUL;
+ errorException_ = null;
+ if (isDataLoaded())
+ {
+ try
+ {
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName),HTMLUtils.UTF8_ENCODING),true);
+ CategoryElement rootElement = (CategoryElement)getRootElement();
+ saveData(pw,rootElement,null,true);
+ pw.flush();
+ pw.close();
+ // Save the properties file.
+ Properties p = new Properties();
+ p.setProperty("wsad.dataFile",fileName);
+ p.setProperty("wsad.checked",String.valueOf(checked_));
+ p.setProperty("wsad.name",displayName_);
+ p.setProperty("column.delimiter",columnDelimiter_);
+ p.setProperty("string.delimiter",stringDelimiter_);
+ StringBuffer propertiesFileName = new StringBuffer(fileName.substring(0,fileName.lastIndexOf('.')));
+ propertiesFileName.append(".properties");
+ FileOutputStream fout = new FileOutputStream(propertiesFileName.toString());
+ p.store(fout,null);
+ fout.close();
+ }
+ catch (FileNotFoundException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_FILE;
+ }
+ catch (SecurityException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_SECURITY;
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_ENCODING;
+ }
+ catch (IOException e)
+ {
+ errorException_ = e;
+ returnCode = ERROR_IO;
+ }
+ }
+ return returnCode;
+ }
+
+ public String toString()
+ {
+ return displayName_;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublishedItemsElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublishedItemsElement.java
new file mode 100644
index 000000000..d49432492
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublishedItemsElement.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import java.util.*;
+
+public class PublishedItemsElement extends AbstractUDDIElement
+{
+ public PublishedItemsElement(int type,String name,Model model)
+ {
+ super(name,model);
+ setPropertyAsString(ModelConstants.REL_CHILDREN,UDDIModelConstants.REL_PUBLISHED_ITEMS);
+ setPropertyAsString(UDDIModelConstants.QUERY_TYPE,String.valueOf(type));
+ }
+
+ public final int getType()
+ {
+ return Integer.parseInt(getPropertyAsString(UDDIModelConstants.QUERY_TYPE));
+ }
+
+ public Enumeration getItems()
+ {
+ return getElements(UDDIModelConstants.REL_PUBLISHED_ITEMS);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublisherAssertionElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublisherAssertionElement.java
new file mode 100644
index 000000000..8580dd6f1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/PublisherAssertionElement.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel;
+
+import org.uddi4j.datatype.assertion.PublisherAssertion;
+import org.uddi4j.util.KeyedReference;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.ListElement;
+
+public class PublisherAssertionElement {
+
+ // owningBusinessKey_ is the key of the business element that owns this
+ // publisherAssertionElement
+ private String fromKey_;
+ private String toKey_;
+ private String owningBusinessKey_;
+
+ // the other business that the containing business is asserted from or to
+ private ListElement sp_;
+ private int subQueryItemId_;
+
+ // status of this publisherAssertion
+ private String status_;
+ private KeyedReference keyedReference_;
+
+ public PublisherAssertionElement(String fromKey, String toKey, String owningBusinessKey, ListElement sp, int subQueryItemId, String status, KeyedReference keyedRef) {
+ fromKey_ = fromKey;
+ toKey_ = toKey;
+ owningBusinessKey_ = owningBusinessKey;
+ sp_ = sp;
+ subQueryItemId_ = subQueryItemId;
+ status_ = status;
+ keyedReference_ = keyedRef;
+ }
+
+ public void setFromKey(String fromKey) {
+ fromKey_ = fromKey;
+ }
+
+ public String getFromKey() {
+ return fromKey_;
+ }
+
+ public void setToKey(String toKey) {
+ toKey_ = toKey;
+ }
+
+ public String getToKey() {
+ return toKey_;
+ }
+
+ public void setOwningBusinessKey(String key) {
+ owningBusinessKey_ = key;
+ }
+
+ public String getOwningBusinessKey() {
+ return owningBusinessKey_;
+ }
+
+ public void setServiceProvider(ListElement sp) {
+ sp_ = sp;
+ }
+
+ public ListElement getServiceProvider() {
+ return sp_;
+ }
+
+ public void setSubQueryItemId(int id) {
+ subQueryItemId_ = id;
+ }
+
+ public int getSubQueryItemId() {
+ return subQueryItemId_;
+ }
+
+ public void setStatus(String status) {
+ status_ = status;
+ }
+
+ public String getStatus() {
+ return status_;
+ }
+
+ public void setKeyedRef(KeyedReference keyedRef) {
+ keyedReference_ = keyedRef;
+ }
+
+ public KeyedReference getKeyedRef() {
+ return keyedReference_;
+ }
+
+ public PublisherAssertion getPublisherAssertion() {
+ if (fromKey_ == null ||
+ toKey_ == null ||
+ keyedReference_ == null) {
+ return null;
+ }
+
+ PublisherAssertion pubAssertion = new PublisherAssertion(fromKey_, toKey_, keyedReference_);
+ return pubAssertion;
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryElement.java
new file mode 100644
index 000000000..fdf824f48
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryElement.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.*;
+
+import java.util.*;
+
+public class QueryElement extends AbstractUDDIElement
+{
+ private final void initQueryProperties(int itemType,Object[] results)
+ {
+ Vector resultsVector = new Vector();
+ for (int i=0;i<results.length;i++)
+ resultsVector.addElement(results[i]);
+ setPropertyAsString(ModelConstants.REL_CHILDREN,UDDIModelConstants.REL_QUERY_RESULTS);
+ setPropertyAsObject(UDDIModelConstants.INITIAL_RESULTS,resultsVector);
+ setPropertyAsString(UDDIModelConstants.QUERY_TYPE,String.valueOf(itemType));
+ }
+
+ public QueryElement(BusinessEntity[] spList,String name,Model model)
+ {
+ super(name,model);
+ initQueryProperties(UDDIActionInputs.QUERY_ITEM_BUSINESSES,spList);
+ }
+
+ public QueryElement(BusinessService[] bsList,String name,Model model)
+ {
+ super(name,model);
+ initQueryProperties(UDDIActionInputs.QUERY_ITEM_SERVICES,bsList);
+ }
+
+ public QueryElement(TModel[] tModelList,String name,Model model)
+ {
+ super(name,model);
+ initQueryProperties(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,tModelList);
+ }
+
+ public int getQueryType()
+ {
+ return Integer.parseInt(getPropertyAsString(UDDIModelConstants.QUERY_TYPE));
+ }
+
+ public QueryParentElement getQueryParentElement()
+ {
+ return (QueryParentElement)getParentElement();
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryParentElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryParentElement.java
new file mode 100644
index 000000000..961485ba5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/QueryParentElement.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import java.util.*;
+
+public class QueryParentElement extends AbstractUDDIElement
+{
+ public QueryParentElement(String name,Model model)
+ {
+ super(name,model);
+ setPropertyAsString(ModelConstants.REL_CHILDREN,UDDIModelConstants.REL_QUERIES);
+ }
+
+ public Enumeration getQueries()
+ {
+ return getElements(UDDIModelConstants.REL_QUERIES);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/RegistryElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/RegistryElement.java
new file mode 100644
index 000000000..2949762db
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/RegistryElement.java
@@ -0,0 +1,228 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.parser.discovery.*;
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.response.AuthToken;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.datatype.service.*;
+import org.uddi4j.datatype.*;
+import java.util.*;
+import java.net.*;
+
+public class RegistryElement extends AbstractUDDIElement
+{
+ private final long AUTH_INFO_TIMEOUT = 3000000;
+ private UDDIProxy proxy_;
+ private long authTokenTimestamp_;
+ private AuthToken authToken_;
+ private String id_;
+ private String password_;
+ private String inquiryURL_;
+ private String publishURL_;
+ private String cachedPublishURL_;
+ private String registrationURL_;
+ private Hashtable userDefinedCategories_;
+ private boolean checkForUserDefinedCategories_;
+ private String categoriesDirectory_;
+
+ public RegistryElement(UDDIProxy proxy, String inquiryURL, String name, Model model)
+ {
+ super(name, model);
+ proxy_ = proxy;
+ inquiryURL_ = inquiryURL;
+ publishURL_ = null;
+ authTokenTimestamp_ = -1;
+ authToken_ = null;
+ id_ = null;
+ password_ = null;
+ cachedPublishURL_ = null;
+ registrationURL_ = null;
+ userDefinedCategories_ = null;
+ checkForUserDefinedCategories_ = false;
+ categoriesDirectory_ = null;
+ }
+
+ public final UDDIProxy getProxy()
+ {
+ return proxy_;
+ }
+
+ public final String getInquiryURL()
+ {
+ return inquiryURL_;
+ }
+
+ public final QueryParentElement getQueryParentElement()
+ {
+ return (QueryParentElement) (getElements(UDDIModelConstants.REL_QUERIES_PARENT).nextElement());
+ }
+
+ public final PublishedItemsElement getPublishedBusinessesElement()
+ {
+ return (PublishedItemsElement) (getElements(UDDIModelConstants.REL_PUBLISHED_BUSINESSES_PARENT).nextElement());
+ }
+
+ public final PublishedItemsElement getPublishedServicesElement()
+ {
+ return (PublishedItemsElement) (getElements(UDDIModelConstants.REL_PUBLISHED_SERVICES_PARENT).nextElement());
+ }
+
+ public final PublishedItemsElement getPublishedServiceInterfacesElement()
+ {
+ return (PublishedItemsElement) (getElements(UDDIModelConstants.REL_PUBLISHED_SERVICE_INTERFACES_PARENT).nextElement());
+ }
+
+ public final void performLogin(String publishURL, String userId, String password) throws TransportException, UDDIException, MalformedURLException
+ {
+ publishURL_ = publishURL;
+ proxy_.setPublishURL(NetUtils.createURL(publishURL));
+ authToken_ = proxy_.get_authToken(userId, password);
+ authTokenTimestamp_ = System.currentTimeMillis();
+ id_ = userId;
+ password_ = password;
+ }
+
+ public final String getAuthInfoString()
+ {
+ if (!isLoggedIn())
+ return null;
+ if ((System.currentTimeMillis() - authTokenTimestamp_) > AUTH_INFO_TIMEOUT)
+ {
+ try
+ {
+ authToken_ = proxy_.get_authToken(id_, password_);
+ authTokenTimestamp_ = System.currentTimeMillis();
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return authToken_.getAuthInfoString();
+ }
+
+ public final boolean isLoggedIn()
+ {
+ return authToken_ != null;
+ }
+
+ public final void setCachedPublishURL(String publishURL)
+ {
+ cachedPublishURL_ = publishURL;
+ }
+
+ public final String getPublishURL()
+ {
+ if (isLoggedIn() && publishURL_ != null)
+ return publishURL_;
+ return cachedPublishURL_;
+ }
+
+ public final void setRegistrationURL(String registrationURL)
+ {
+ registrationURL_ = registrationURL;
+ }
+
+ public final String getRegistrationURL()
+ {
+ return registrationURL_;
+ }
+
+ public final String getUserId()
+ {
+ return id_;
+ }
+
+ public final void setUserId(String userId)
+ {
+ id_ = userId;
+ }
+
+ public final String getCred()
+ {
+ return password_;
+ }
+
+ public final void setCred(String cred)
+ {
+ password_ = cred;
+ }
+
+ public final void setUserDefinedCategories(Hashtable userDefinedCategories)
+ {
+ userDefinedCategories_ = userDefinedCategories;
+ }
+
+ public final Enumeration getUserDefinedCategories()
+ {
+ if (userDefinedCategories_ != null)
+ return userDefinedCategories_.elements();
+ else
+ return null;
+ }
+
+ public final CategoryModel getUserDefinedCategory(String tModelKey)
+ {
+ return (CategoryModel) userDefinedCategories_.get(tModelKey);
+ }
+
+ // Special handler to be invoked before sending a message to the registry.
+ public final void handlePreInvocation(BusinessService busService)
+ {
+ // For XMethods, business services must contain a description of the form:
+ // IMPLEMENTATION: ibmws
+ if (getInquiryURL().equals("http://uddi.xmethods.net/inquire"))
+ {
+ Vector descriptionVector = busService.getDescriptionVector();
+ if (descriptionVector == null)
+ descriptionVector = new Vector();
+ boolean containsImplementationDescription = false;
+ for (int i = 0; i < descriptionVector.size(); i++)
+ {
+ Description description = (Description) descriptionVector.elementAt(i);
+ if (description.getText().startsWith("IMPLEMENTATION: "))
+ {
+ containsImplementationDescription = true;
+ break;
+ }
+ }
+ if (!containsImplementationDescription)
+ {
+ descriptionVector.addElement(new Description("IMPLEMENTATION: ibmws"));
+ busService.setDescriptionVector(descriptionVector);
+ }
+ }
+ }
+
+ public final void setCheckForUserDefinedCategories(boolean checkForUserDefinedCategories)
+ {
+ checkForUserDefinedCategories_ = checkForUserDefinedCategories;
+ }
+
+ public final boolean getCheckForUserDefinedCategories()
+ {
+ return checkForUserDefinedCategories_;
+ }
+
+ public final void setCategoriesDirectory(String directory)
+ {
+ categoriesDirectory_ = directory;
+ }
+
+ public final String getCategoriesDirectory()
+ {
+ return categoriesDirectory_;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceElement.java
new file mode 100644
index 000000000..62f559fcc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceElement.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+
+import org.uddi4j.datatype.service.BusinessService;
+
+public class ServiceElement extends AbstractUDDIElement
+{
+ private BusinessService bs_;
+
+ public ServiceElement(BusinessService bs,Model model)
+ {
+ super(bs.getDefaultNameString(),model);
+ setKey(bs.getServiceKey());
+ bs_ = bs;
+ }
+
+ public final BusinessService getBusinessService()
+ {
+ return bs_;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceInterfaceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceInterfaceElement.java
new file mode 100644
index 000000000..7eb9acfde
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/ServiceInterfaceElement.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+
+import org.uddi4j.datatype.tmodel.TModel;
+
+public class ServiceInterfaceElement extends AbstractUDDIElement
+{
+ private TModel tModel_;
+
+ public ServiceInterfaceElement(TModel tModel,Model model)
+ {
+ super(tModel.getNameString(),model);
+ tModel_ = tModel;
+ setKey(tModel.getTModelKey());
+ }
+
+ public final TModel getTModel()
+ {
+ return tModel_;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/UDDIMainElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/UDDIMainElement.java
new file mode 100644
index 000000000..1ba793ab5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/datamodel/UDDIMainElement.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+
+import java.util.*;
+
+public class UDDIMainElement extends TreeElement
+{
+ private Hashtable registryNames_;
+
+ public UDDIMainElement(String name,Model model)
+ {
+ super(name,model);
+ registryNames_ = new Hashtable();
+ }
+
+ public final boolean containsRegistryName(String name)
+ {
+ return (registryNames_.get(name) != null);
+ }
+
+ public final void addRegistryName(String name)
+ {
+ registryNames_.put(name,Boolean.TRUE);
+ }
+
+ public final void removeRegistryName(String name)
+ {
+ registryNames_.remove(name);
+ }
+
+ public final void clearRegistryNames()
+ {
+ registryNames_.clear();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/AddToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/AddToFavoritesTool.java
new file mode 100644
index 000000000..b94222ddd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/AddToFavoritesTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.AddToFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.SelectPropertiesToolAction;
+
+public class AddToFavoritesTool extends ActionTool {
+ public AddToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToFavoritesAction.getActionLink(selectedNode.getNodeId());
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusPublishServiceTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusPublishServiceTool.java
new file mode 100644
index 000000000..c45adcafd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusPublishServiceTool.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class BusPublishServiceTool extends FormTool implements MultipleFormToolPropertiesInterface
+{
+ private RegFindTool regFindTool_;
+
+ public BusPublishServiceTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"uddi/images/publish_service_enabled.gif","uddi/images/publish_service_highlighted.gif",alt);
+ regFindTool_ = new RegFindTool(new ToolManager(toolManager.getNode()), "");
+ }
+
+ protected final void initDefaultProperties()
+ {
+ UDDIPerspective uddiPerspective = toolManager_.getNode().getNodeManager().getController().getUDDIPerspective();
+
+ setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+
+ setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ String simpleStyleString = String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,simpleStyleString);
+
+ // RegPublishServiceSimpleAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION,"");
+
+ // RegPublishServiceAdvancedAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,"");
+ }
+
+ public final void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ regFindTool_.addAuthenticationProperties(regElement);
+ }
+
+ public final FormToolPropertiesInterface getFormToolProperties(Object subQueryKeyObject)
+ {
+ // Empty/Non-existent subquerykey implies publish form. All else implies query form.
+ String subQueryKey = (String)subQueryKeyObject;
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return this;
+ else
+ return regFindTool_.getFormToolProperties(subQueryKeyObject);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ String subQueryKey = (String)getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ return SelectFindToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),subQueryKey,forHistory);
+ }
+
+ public String getFormLink()
+ {
+ Object subQueryKeyObject = getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryKey = null;
+ if (subQueryKeyObject != null)
+ {
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = getFormToolProperties(subQueryKeyObject);
+ Object subQueryGetObject = subQueryProperties.getProperty(UDDIActionInputs.SUBQUERY_GET);
+ if (subQueryGetObject != null)
+ {
+ boolean isSubQueryGet = ((Boolean)subQueryGetObject).booleanValue();
+ if (isSubQueryGet)
+ return "uddi/forms/GetForm.jsp";
+ }
+ subQueryKey = (String)subQueryKeyObject;
+ }
+
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return "uddi/forms/BusPublishServiceForm.jsp";
+ else
+ return regFindTool_.getFormLink();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessDetailsTool.java
new file mode 100644
index 000000000..97ed102f8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessDetailsTool.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+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.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.util.*;
+
+import java.util.*;
+
+public class BusinessDetailsTool extends DetailsTool
+{
+ public BusinessDetailsTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt,ProxyLoadPageAction.getActionLink("uddi/forms/BusinessDetailsForm.jsp"));
+ }
+
+ public final void initDefaultProperties()
+ {
+ clearPropertyTable();
+ BusinessElement busElement = (BusinessElement)(toolManager_.getNode().getTreeElement());
+ BusinessEntity be = busElement.getBusinessEntity();
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,be.getBusinessKey());
+
+ Vector nameVector = new Vector();
+ copyIndexVector(be.getNameVector(),nameVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,nameVector);
+
+ Vector descriptionVector = new Vector();
+ copyIndexVector(be.getDescriptionVector(),descriptionVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,descriptionVector);
+
+ IdentifierBag idBag = be.getIdentifierBag();
+ if (idBag != null)
+ {
+ Vector idVector = new Vector();
+ copyIndexVector(idBag.getKeyedReferenceVector(),idVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS,idVector);
+ }
+
+ CategoryBag catBag = be.getCategoryBag();
+ if (catBag != null)
+ {
+ Vector catVector = new Vector();
+ copyIndexVector(catBag.getKeyedReferenceVector(),catVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES,catVector);
+ }
+
+ DiscoveryURLs discoveryURLs = be.getDiscoveryURLs();
+ if (discoveryURLs != null)
+ {
+ Vector discoveryURLVector = new Vector();
+ copyIndexVector(discoveryURLs.getDiscoveryURLVector(),discoveryURLVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,discoveryURLVector);
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessNode.java
new file mode 100644
index 000000000..307ffde27
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/BusinessNode.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+public class BusinessNode extends UDDINavigatorNode
+{
+ private DetailsTool detailsTool_;
+ private BusPublishServiceTool publishServiceTool_;
+ private ManagePublisherAssertionsTool managePublisherAssertionsTool_;
+ private ManageReferencedServicesTool manageReferencedServicesTool_;
+ private UnpublishTool unpublishTool_;
+
+ public BusinessNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"uddi/images/business_highlighted.gif");
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ detailsTool_ = new BusinessDetailsTool(toolManager_,uddiPerspective.getMessage("ALT_BUSINESS_DETAILS"));
+ new GetServicesTool(toolManager_,uddiPerspective.getMessage("ALT_GET_SERVICES"),BusinessGetServicesAction.getActionLink(nodeId_));
+ publishServiceTool_ = new BusPublishServiceTool(toolManager_,uddiPerspective.getMessage("ALT_PUBLISH_SERVICE"));
+ manageReferencedServicesTool_ = new ManageReferencedServicesTool(toolManager_,uddiPerspective.getMessage("ALT_MANAGE_REFERENCED_SERVICES"));
+ managePublisherAssertionsTool_ = new ManagePublisherAssertionsTool(toolManager_,uddiPerspective.getMessage("ALT_MANAGE_PUBLISHER_ASSERTIONS"));
+ new AddToFavoritesTool(toolManager_, uddiPerspective.getMessage("ALT_ADD_TO_FAVORITES"));
+ unpublishTool_ = new UnpublishTool(toolManager_,"uddi/images/unpublish_bus_enabled.gif","uddi/images/unpublish_bus_highlighted.gif",uddiPerspective.getMessage("ALT_UNPUBLISH_BUSINESS"));
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ detailsTool_.addAuthenticationProperties(regElement);
+ publishServiceTool_.addAuthenticationProperties(regElement);
+ manageReferencedServicesTool_.addAuthenticationProperties(regElement);
+ managePublisherAssertionsTool_.addAuthenticationProperties(regElement);
+ unpublishTool_.addAuthenticationProperties(regElement);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/CategoryNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/CategoryNode.java
new file mode 100644
index 000000000..dea0df097
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/CategoryNode.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class CategoryNode extends Node
+{
+ public CategoryNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"uddi/images/category.gif");
+ setVisibilityOfChildren(false);
+ }
+
+ public final void createChildren()
+ {
+ Enumeration children = element_.getElements(UDDIModelConstants.REL_SUBCATEGORIES);
+ if (children != null)
+ {
+ while (children.hasMoreElements())
+ {
+ CategoryElement categoryElement = (CategoryElement)children.nextElement();
+ CategoryNode categoryNode = new CategoryNode(categoryElement,nodeManager_,nodeDepth_+1);
+ addChild(categoryNode);
+ categoryNode.createChildren();
+ }
+ }
+ }
+
+ public final String getNodeName()
+ {
+ CategoryElement categoryElement = (CategoryElement)element_;
+ return categoryElement.getNameForTree();
+ }
+
+ protected final String getToggleNodeActionHref()
+ {
+ return ToggleCategoryNodeAction.getActionLink(getNodeManager().getController().getSessionId(),nodeId_,isOpen_);
+ }
+
+ protected final String getLinkActionHref()
+ {
+ return SelectCategoryNodeAction.getActionLink(getNodeManager().getController().getSessionId(),nodeId_);
+ }
+
+ protected final String getToggleNodeActionTarget()
+ {
+ return UDDIFrameNames.CATEGORIES_WORKAREA;
+ }
+
+ protected final String getLinkActionTarget()
+ {
+ return UDDIFrameNames.CATEGORIES_WORKAREA;
+ }
+
+ protected final void initTools()
+ {
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/DetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/DetailsTool.java
new file mode 100644
index 000000000..2f8cfcd63
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/DetailsTool.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class DetailsTool extends FormTool
+{
+ private String formLink_;
+
+ public DetailsTool(ToolManager toolManager,String alt,String formLink)
+ {
+ super(toolManager,"images/details_enabled.gif","images/details_highlighted.gif",alt);
+ formLink_ = formLink;
+ }
+
+ public void initDefaultProperties()
+ {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getFormLink()
+ {
+ return formLink_;
+ }
+
+ protected final void copyIndexVector(Vector source,Vector destination)
+ {
+ destination.removeAllElements();
+ for (int i=0;i<source.size();i++)
+ {
+ ListElement listElement = new ListElement(source.elementAt(i));
+ listElement.setViewId(i);
+ // The next item indicates that this element is to be in non-edit state.
+ listElement.setTargetViewToolInfo(-1,-1,i);
+ destination.addElement(listElement);
+ }
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetBusinessesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetBusinessesTool.java
new file mode 100644
index 000000000..4f4f3cf2e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetBusinessesTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class GetBusinessesTool extends ActionTool
+{
+ private String actionLink_;
+ public GetBusinessesTool(ToolManager toolManager,String enabledImagePath,String highlightedImagePath,String alt,String actionLink)
+ {
+ super(toolManager,enabledImagePath,highlightedImagePath,alt);
+ actionLink_ = actionLink;
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getActionLink()
+ {
+ return actionLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServiceInterfacesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServiceInterfacesTool.java
new file mode 100644
index 000000000..7ea5ac0d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServiceInterfacesTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class GetServiceInterfacesTool extends ActionTool
+{
+ private String actionLink_;
+ public GetServiceInterfacesTool(ToolManager toolManager,String alt,String actionLink)
+ {
+ super(toolManager,"uddi/images/service_interfaces_closed_enabled.gif","uddi/images/service_interfaces_closed_highlighted.gif",alt);
+ actionLink_ = actionLink;
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getActionLink()
+ {
+ return actionLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java
new file mode 100644
index 000000000..f2f034a3c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class GetServicesTool extends ActionTool
+{
+ private String actionLink_;
+ public GetServicesTool(ToolManager toolManager,String alt,String actionLink)
+ {
+ super(toolManager,"uddi/images/services_closed_enabled.gif","uddi/images/services_closed_highlighted.gif",alt);
+ actionLink_ = actionLink;
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getActionLink()
+ {
+ return actionLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ItemsSummaryTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ItemsSummaryTool.java
new file mode 100644
index 000000000..e8ef3ee1a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ItemsSummaryTool.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ProxyLoadPageAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.SelectPropertiesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+
+public class ItemsSummaryTool extends FormTool
+{
+ private String formLink_;
+
+ public ItemsSummaryTool(ToolManager toolManager,String enabledImage,String highlightedImage,String alt,int queryItem)
+ {
+ super(toolManager,enabledImage,highlightedImage,alt);
+ StringBuffer formLink = new StringBuffer("uddi/forms/ItemsSummaryForm.jsp?");
+ formLink.append(UDDIActionInputs.QUERY_ITEM).append('=').append(queryItem);
+ String encodedFormLink = URLUtils.encode(formLink.toString());
+ formLink_ = ProxyLoadPageAction.getActionLink(encodedFormLink);
+ }
+
+ public final void initDefaultProperties()
+ {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getFormLink()
+ {
+ return formLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManagePublisherAssertionsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManagePublisherAssertionsTool.java
new file mode 100644
index 000000000..95dc27934
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManagePublisherAssertionsTool.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class ManagePublisherAssertionsTool extends FormTool implements MultipleFormToolPropertiesInterface
+{
+ ToolManager invisibleToolManager_;
+ private RegFindTool regFindTool_;
+
+ public ManagePublisherAssertionsTool(ToolManager toolManager, String alt)
+ {
+ super(toolManager, "uddi/images/publisher_assertions_enabled.gif", "uddi/images/publisher_assertions_highlighted.gif", alt);
+ invisibleToolManager_ = new ToolManager(toolManager.getNode());
+ regFindTool_ = new RegFindTool(invisibleToolManager_,"");
+ }
+
+ protected final void initDefaultProperties()
+ {
+ setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+ setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ String simpleStyleString = String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE);
+ setProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,simpleStyleString);
+ }
+
+ public final FormToolPropertiesInterface getFormToolProperties(Object subQueryKeyObject)
+ {
+ // Empty/Non-existent subquerykey implies publish form. All else implies query form.
+ String subQueryKey = (String)subQueryKeyObject;
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return this;
+ else
+ return regFindTool_.getFormToolProperties(subQueryKeyObject);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ String subQueryKey = (String)getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ return SelectFindToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),subQueryKey,forHistory);
+ }
+
+ public final void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ regFindTool_.addAuthenticationProperties(regElement);
+ }
+
+ public String getFormLink()
+ {
+ Object subQueryKeyObject = getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryKey = null;
+ if (subQueryKeyObject != null)
+ {
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = getFormToolProperties(subQueryKeyObject);
+ Object subQueryGetObject = subQueryProperties.getProperty(UDDIActionInputs.SUBQUERY_GET);
+ if (subQueryGetObject != null)
+ {
+ boolean isSubQueryGet = ((Boolean)subQueryGetObject).booleanValue();
+ if (isSubQueryGet)
+ return "uddi/forms/GetForm.jsp";
+ }
+ subQueryKey = (String)subQueryKeyObject;
+ }
+
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return ProxyLoadPageAction.getActionLink("uddi/forms/ManagePublisherAssertionsForm.jsp");
+ else
+ return regFindTool_.getFormLink();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManageReferencedServicesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManageReferencedServicesTool.java
new file mode 100644
index 000000000..1faa92f11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ManageReferencedServicesTool.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class ManageReferencedServicesTool extends FormTool implements MultipleFormToolPropertiesInterface
+{
+ ToolManager invisibleToolManager_;
+ private RegFindTool regFindTool_;
+
+ public ManageReferencedServicesTool(ToolManager toolManager, String alt)
+ {
+ super(toolManager, "uddi/images/referenced_services_enabled.gif", "uddi/images/referenced_services_highlighted.gif", alt);
+ invisibleToolManager_ = new ToolManager(toolManager.getNode());
+ regFindTool_ = new RegFindTool(invisibleToolManager_,"");
+ }
+
+ protected final void initDefaultProperties()
+ {
+ setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+ setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES));
+ String simpleStyleString = String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE);
+ setProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,simpleStyleString);
+ }
+
+ public final FormToolPropertiesInterface getFormToolProperties(Object subQueryKeyObject)
+ {
+ // Empty/Non-existent subquerykey implies publish form. All else implies query form.
+ String subQueryKey = (String)subQueryKeyObject;
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return this;
+ else
+ return regFindTool_.getFormToolProperties(subQueryKeyObject);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ String subQueryKey = (String)getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ return SelectFindToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),subQueryKey,forHistory);
+ }
+
+ public final void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ regFindTool_.addAuthenticationProperties(regElement);
+ }
+
+ public String getFormLink()
+ {
+ Object subQueryKeyObject = getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryKey = null;
+ if (subQueryKeyObject != null)
+ {
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = getFormToolProperties(subQueryKeyObject);
+ Object subQueryGetObject = subQueryProperties.getProperty(UDDIActionInputs.SUBQUERY_GET);
+ if (subQueryGetObject != null)
+ {
+ boolean isSubQueryGet = ((Boolean)subQueryGetObject).booleanValue();
+ if (isSubQueryGet)
+ return "uddi/forms/GetForm.jsp";
+ }
+ subQueryKey = (String)subQueryKeyObject;
+ }
+
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return "uddi/forms/ManageReferencedServicesForm.jsp";
+ else
+ return regFindTool_.getFormLink();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/MultipleFormToolPropertiesInterface.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/MultipleFormToolPropertiesInterface.java
new file mode 100644
index 000000000..e3507e2c2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/MultipleFormToolPropertiesInterface.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public abstract interface MultipleFormToolPropertiesInterface
+{
+ public abstract FormToolPropertiesInterface getFormToolProperties(Object key);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java
new file mode 100644
index 000000000..1c3885877
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+
+import java.util.*;
+
+public class OpenRegistryTool extends FormTool
+{
+ private Controller controller_;
+
+ public OpenRegistryTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"uddi/images/open_registry_enabled.gif","uddi/images/open_registry_highlighted.gif",alt);
+ }
+
+ protected final void initDefaultProperties()
+ {
+ controller_ = toolManager_.getNode().getNodeManager().getController();
+ UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
+ setProperty(UDDIActionInputs.REGISTRY_NAME,uddiPerspective.getMessage("DEFAULT_REGISTRY_NAME"));
+ setProperty(UDDIActionInputs.INQUIRY_URL,uddiPerspective.getIBMPublicUDDITestRegistry().getInquiryURL());
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getFormLink()
+ {
+ return "uddi/forms/OpenRegistryForm.jsp";
+ }
+
+ public final Enumeration getFavoriteRegistryElements()
+ {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favoritesNodeManager = favPerspective.getNodeManager();
+ TreeElement favoritesMainElement = favoritesNodeManager.getRootNode().getTreeElement();
+ TreeElement favoriteRegistriesElement = (TreeElement)(favoritesMainElement.getElements(FavoritesModelConstants.REL_UDDI_REGISTRY_FOLDER_NODE).nextElement());
+ return favoriteRegistriesElement.getElements(FavoritesModelConstants.REL_UDDI_REGISTRY_NODE);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/PublishedItemsNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/PublishedItemsNode.java
new file mode 100644
index 000000000..c43146192
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/PublishedItemsNode.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.*;
+
+public class PublishedItemsNode extends UDDINavigatorFolderNode
+{
+ public PublishedItemsNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth);
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(UDDIModelConstants.REL_PUBLISHED_ITEMS))
+ {
+ TreeElement treeElement = (TreeElement)event.getParentElement();
+ createChildNode(treeElement);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement treeElement = null;
+ if (event.getInBoundRelName().equals(UDDIModelConstants.REL_PUBLISHED_ITEMS))
+ treeElement = (TreeElement)event.getInboundElement();
+ else if (event.getOutBoundRelName().equals(UDDIModelConstants.REL_PUBLISHED_ITEMS))
+ treeElement = (TreeElement)event.getOutBoundElement();
+
+ if (treeElement != null)
+ removeChildNode(treeElement);
+ }
+ });
+ }
+
+ private final void createChildNode(TreeElement element)
+ {
+ PublishedItemsElement publishedItemsElement = (PublishedItemsElement)element_;
+ Node childNode = null;
+ switch (publishedItemsElement.getType())
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ childNode = new BusinessNode(element,nodeManager_,nodeDepth_+1);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ childNode = new ServiceNode(element,nodeManager_,nodeDepth_+1);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ childNode = new ServiceInterfaceNode(element,nodeManager_,nodeDepth_+1);
+ }
+ if (childNode != null)
+ addChild(childNode);
+ }
+
+ protected final void initTools()
+ {
+ PublishedItemsElement publishedItemsElement = (PublishedItemsElement)element_;
+ UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective();
+ int publishedItemsType = publishedItemsElement.getType();
+ switch (publishedItemsType)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ new ItemsSummaryTool(toolManager_,"uddi/images/businesses_closed_enabled.gif","uddi/images/businesses_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_BUSINESSES"),publishedItemsType);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ new ItemsSummaryTool(toolManager_,"uddi/images/services_closed_enabled.gif","uddi/images/services_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_SERVICES"),publishedItemsType);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ new ItemsSummaryTool(toolManager_,"uddi/images/service_interfaces_closed_enabled.gif","uddi/images/service_interfaces_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_SERVICE_INTERFACES"),publishedItemsType);
+ }
+ }
+
+ public String getOpenImagePath()
+ {
+ PublishedItemsElement publishedItemsElement = (PublishedItemsElement)element_;
+ int publishedItemsType = publishedItemsElement.getType();
+ switch (publishedItemsType)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ return "uddi/images/businesses_open_highlighted.gif";
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ return "uddi/images/services_open_highlighted.gif";
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ return "uddi/images/service_interfaces_open_highlighted.gif";
+ }
+ return super.getOpenImagePath();
+ }
+
+ public String getClosedImagePath()
+ {
+ PublishedItemsElement publishedItemsElement = (PublishedItemsElement)element_;
+ int publishedItemsType = publishedItemsElement.getType();
+ switch (publishedItemsType)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ return "uddi/images/businesses_closed_highlighted.gif";
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ return "uddi/images/services_closed_highlighted.gif";
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ return "uddi/images/service_interfaces_closed_highlighted.gif";
+ }
+ return super.getClosedImagePath();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryNode.java
new file mode 100644
index 000000000..435046aa5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryNode.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+
+import java.util.*;
+
+public class QueryNode extends UDDINavigatorNode
+{
+ private FormTool regFindTool_;
+ private FindAction findAction_;
+ public QueryNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"uddi/images/query.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(UDDIModelConstants.REL_QUERY_RESULTS))
+ {
+ TreeElement treeElement = (TreeElement)event.getParentElement();
+ createChildNode(treeElement);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement treeElement = null;
+ if (event.getInBoundRelName().equals(UDDIModelConstants.REL_QUERY_RESULTS))
+ treeElement = (TreeElement)event.getInboundElement();
+ else if (event.getOutBoundRelName().equals(UDDIModelConstants.REL_QUERY_RESULTS))
+ treeElement = (TreeElement)event.getOutBoundElement();
+
+ if (treeElement != null)
+ removeChildNode(treeElement);
+ }
+ });
+ createChildren();
+ setVisibilityOfChildren(false);
+ findAction_ = null;
+ }
+
+ private final void createChildren()
+ {
+ Vector initialResults = (Vector)element_.getPropertyAsObject(UDDIModelConstants.INITIAL_RESULTS);
+ for (int i=0;i<initialResults.size();i++)
+ {
+ Object object = initialResults.elementAt(i);
+ TreeElement childElement = null;
+ if (object instanceof BusinessEntity)
+ childElement = new BusinessElement((BusinessEntity)object,element_.getModel());
+ else if (object instanceof BusinessService)
+ childElement = new ServiceElement((BusinessService)object,element_.getModel());
+ else if (object instanceof TModel)
+ childElement = new ServiceInterfaceElement((TModel)object,element_.getModel());
+ if (childElement != null)
+ element_.connect(childElement,UDDIModelConstants.REL_QUERY_RESULTS,ModelConstants.REL_OWNER);
+ }
+ }
+
+ private final void createChildNode(TreeElement element)
+ {
+ Node childNode = null;
+ if (element instanceof BusinessElement)
+ childNode = new BusinessNode(element,nodeManager_,nodeDepth_+1);
+ else if (element instanceof ServiceElement)
+ childNode = new ServiceNode(element,nodeManager_,nodeDepth_+1);
+ else if (element instanceof ServiceInterfaceElement)
+ childNode = new ServiceInterfaceNode(element,nodeManager_,nodeDepth_+1);
+ if (childNode != null)
+ addChild(childNode);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ new ResultsTool(toolManager_,controller.getMessage("ALT_RESULTS"));
+ regFindTool_ = new RegFindTool(toolManager_,uddiPerspective.getMessage("ALT_FIND"));
+ }
+
+ public final void setFindToolProperties(FindAction findAction)
+ {
+ findAction_ = findAction;
+ regFindTool_.updatePropertyTable(findAction.getPropertyTable());
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ ((RegFindTool)regFindTool_).addAuthenticationProperties(regElement);
+ Vector childNodes = getChildNodes();
+ for (int i=0;i<childNodes.size();i++)
+ {
+ UDDINavigatorNode navigatorNode = (UDDINavigatorNode)childNodes.elementAt(i);
+ navigatorNode.addAuthenticationProperties(regElement);
+ }
+ }
+
+ public final FindAction getFindAction()
+ {
+ return findAction_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryParentNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryParentNode.java
new file mode 100644
index 000000000..177189639
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/QueryParentNode.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.*;
+
+public class QueryParentNode extends UDDINavigatorFolderNode
+{
+ public QueryParentNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth);
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(UDDIModelConstants.REL_QUERIES))
+ {
+ QueryElement queryElement = (QueryElement)event.getParentElement();
+ createChildNode(queryElement);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ QueryElement queryElement = null;
+ if (event.getInBoundRelName().equals(UDDIModelConstants.REL_QUERIES))
+ queryElement = (QueryElement)event.getInboundElement();
+ else if (event.getOutBoundRelName().equals(UDDIModelConstants.REL_QUERIES))
+ queryElement = (QueryElement)event.getOutBoundElement();
+
+ if (queryElement != null)
+ removeChildNode(queryElement);
+ }
+ });
+ }
+
+ private final void createChildNode(QueryElement element)
+ {
+ QueryNode queryNode = new QueryNode(element,nodeManager_,nodeDepth_+1);
+ // Add registry authentication properties.
+ RegistryElement regElement = (RegistryElement)(getParent().getTreeElement());
+ queryNode.addAuthenticationProperties(regElement);
+ addChild(queryNode);
+ }
+
+ protected final void initTools()
+ {
+ UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective();
+ new ItemsSummaryTool(toolManager_,"uddi/images/queries_closed_enabled.gif","uddi/images/queries_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_QUERIES"),UDDIActionInputs.QUERY_ITEM_QUERIES);
+ new ItemsSummaryTool(toolManager_,"uddi/images/businesses_closed_enabled.gif","uddi/images/businesses_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_BUSINESSES"),UDDIActionInputs.QUERY_ITEM_BUSINESSES);
+ new ItemsSummaryTool(toolManager_,"uddi/images/services_closed_enabled.gif","uddi/images/services_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_SERVICES"),UDDIActionInputs.QUERY_ITEM_SERVICES);
+ new ItemsSummaryTool(toolManager_,"uddi/images/service_interfaces_closed_enabled.gif","uddi/images/service_interfaces_closed_highlighted.gif",uddiPerspective.getMessage("ALT_SUMMARY_SERVICE_INTERFACES"),UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES);
+ }
+
+ public String getOpenImagePath()
+ {
+ return "uddi/images/queries_open_highlighted.gif";
+ }
+
+ public String getClosedImagePath()
+ {
+ return "uddi/images/queries_closed_highlighted.gif";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RefreshTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RefreshTool.java
new file mode 100644
index 000000000..4e4b12793
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RefreshTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class RefreshTool extends ActionTool
+{
+ private String actionLink_;
+
+ public RefreshTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"images/refresh_enabled.gif","images/refresh_highlighted.gif",alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getActionLink()
+ {
+ return RefreshUDDINodeAction.getActionLink(toolManager_.getNode().getNodeId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegFindTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegFindTool.java
new file mode 100644
index 000000000..7db89c617
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegFindTool.java
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class RegFindTool extends FormTool implements MultipleFormToolPropertiesInterface
+{
+ public RegFindTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"uddi/images/find_enabled.gif","uddi/images/find_highlighted.gif",alt);
+ }
+
+ protected final void initDefaultProperties()
+ {
+ initDefaultProperties(this);
+ setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+ setProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES,new Hashtable());
+ UDDIPerspective uddiPerspective = toolManager_.getNode().getNodeManager().getController().getUDDIPerspective();
+ setProperty(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("DEFAULT_QUERY_NAME"));
+ }
+
+ private final void initDefaultProperties(FormToolPropertiesInterface formToolPI)
+ {
+ UDDIPerspective uddiPerspective = toolManager_.getNode().getNodeManager().getController().getUDDIPerspective();
+
+ formToolPI.setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ String simpleStyleString = String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES,simpleStyleString);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,simpleStyleString);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,simpleStyleString);
+
+ String maxSearchSet = String.valueOf(UDDIActionInputs.QUERY_MAX_SEARCH_SET);
+ String maxResults = String.valueOf(UDDIActionInputs.QUERY_MAX_RESULTS);
+
+ // RegFindBusinessesSimpleAction inputs
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME,"");
+
+ // RegFindBusinessesAdvancedAction inputs
+ // The authentication inputs must be added later as this method is called before we can get a valid handle
+ // to the RegistryElement in the case of a query node.
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET,maxSearchSet);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS,maxResults);
+
+ // RegFindServicesSimpleAction inputs
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME,"");
+
+ // RegFindServicesAdvancedAction inputs
+ // The authentication inputs must be added later as this method is called before we can get a valid handle
+ // to the RegistryElement in the case of a query node.
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET,maxSearchSet);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS,maxResults);
+
+ // RegFindServiceInterfacesSimpleAction inputs
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME,"");
+
+ // RegFindServiceInterfacesAdvancedAction inputs
+ // The authentication inputs must be added later as this method is called before we can get a valid handle
+ // to the RegistryElement in the case of a query node.
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,"");
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET,maxSearchSet);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS,maxResults);
+ }
+
+ public final void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+
+ public final FormToolPropertiesInterface getFormToolProperties(Object subQueryKeyObject)
+ {
+ String subQueryKey = (String)subQueryKeyObject;
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return this;
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = (FormToolPropertiesInterface)subQueriesProperties.get(subQueryKey);
+ if (subQueryProperties == null)
+ {
+ subQueryProperties = new FormToolProperties();
+ initDefaultProperties(subQueryProperties);
+ subQueriesProperties.put(subQueryKey,subQueryProperties);
+ }
+ return subQueryProperties;
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ String subQueryKey = (String)getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ return SelectFindToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),subQueryKey,forHistory);
+ }
+
+ public String getFormLink()
+ {
+ Object subQueryKeyObject = getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ if (subQueryKeyObject != null)
+ {
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = getFormToolProperties(subQueryKeyObject);
+ Object subQueryGetObject = subQueryProperties.getProperty(UDDIActionInputs.SUBQUERY_GET);
+ if (subQueryGetObject != null)
+ {
+ boolean isSubQueryGet = ((Boolean)subQueryGetObject).booleanValue();
+ if (isSubQueryGet)
+ return "uddi/forms/GetForm.jsp";
+ }
+ }
+ return "uddi/forms/RegFindForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegPublishTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegPublishTool.java
new file mode 100644
index 000000000..a8babd558
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegPublishTool.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class RegPublishTool extends FormTool implements MultipleFormToolPropertiesInterface
+{
+ ToolManager invisibleToolManager_;
+ private RegFindTool regFindTool_;
+ public RegPublishTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"uddi/images/publish_enabled.gif","uddi/images/publish_highlighted.gif",alt);
+ invisibleToolManager_ = new ToolManager(toolManager.getNode());
+ regFindTool_ = new RegFindTool(invisibleToolManager_,"");
+ }
+
+ protected final void initDefaultProperties()
+ {
+ UDDIPerspective uddiPerspective = toolManager_.getNode().getNodeManager().getController().getUDDIPerspective();
+
+ setProperty(UDDIActionInputs.SUBQUERY_KEY,"");
+
+ setProperty(UDDIActionInputs.QUERY_ITEM,String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES));
+ String simpleStyleString = String.valueOf(UDDIActionInputs.QUERY_STYLE_SIMPLE);
+ setProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICES,simpleStyleString);
+ setProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES,simpleStyleString);
+
+ // RegPublishBusinessSimpleAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION,"");
+
+ // RegPublishServiceSimpleAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION,"");
+
+ // RegPublishServiceAdvancedAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,"");
+
+ // RegPublishServiceInterfaceSimpleAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION,"");
+
+ // RegPublishServiceInterfaceAdvancedAction inputs
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL,"");
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,"");
+ }
+
+ public final void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ regFindTool_.addAuthenticationProperties(regElement);
+ }
+
+ public final FormToolPropertiesInterface getFormToolProperties(Object subQueryKeyObject)
+ {
+ // Empty/Non-existent subquerykey implies publish form. All else implies query form.
+ String subQueryKey = (String)subQueryKeyObject;
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return this;
+ else
+ return regFindTool_.getFormToolProperties(subQueryKeyObject);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ String subQueryKey = (String)getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ return SelectFindToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),subQueryKey,forHistory);
+ }
+
+ public String getFormLink()
+ {
+ Object subQueryKeyObject = getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryKey = null;
+ if (subQueryKeyObject != null)
+ {
+ Hashtable subQueriesProperties = (Hashtable)getProperty(UDDIActionInputs.SUBQUERIES_PROPERTIES);
+ FormToolPropertiesInterface subQueryProperties = getFormToolProperties(subQueryKeyObject);
+ Object subQueryGetObject = subQueryProperties.getProperty(UDDIActionInputs.SUBQUERY_GET);
+ if (subQueryGetObject != null)
+ {
+ boolean isSubQueryGet = ((Boolean)subQueryGetObject).booleanValue();
+ if (isSubQueryGet)
+ return "uddi/forms/GetForm.jsp";
+ }
+ subQueryKey = (String)subQueryKeyObject;
+ }
+
+ if (subQueryKey == null || subQueryKey.length() < 1)
+ return "uddi/forms/RegPublishForm.jsp";
+ else
+ return regFindTool_.getFormLink();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryDetailsTool.java
new file mode 100644
index 000000000..03c35fc54
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+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.*;
+
+public class RegistryDetailsTool extends DetailsTool
+{
+ public RegistryDetailsTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt,ProxyLoadPageAction.getActionLink("uddi/forms/RegDetailsForm.jsp"));
+ }
+
+ public final void initDefaultProperties()
+ {
+ clearPropertyTable();
+ Controller controller = toolManager_.getNode().getNodeManager().getController();
+ RegistryElement regElement = (RegistryElement)(toolManager_.getNode().getTreeElement());
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME,regElement.getName());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java
new file mode 100644
index 000000000..15bff92da
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+import java.util.*;
+
+public class RegistryNode extends UDDINavigatorNode
+{
+ private RegistryDetailsTool regDetailsTool_;
+ private RegPublishTool regPublishTool_;
+
+ public static final String IMAGE_PATH_STANDARD = "uddi/images/registry.gif";
+ public static final String IMAGE_PATH_WITH_USER_DEFINED_CATEGORIES = "uddi/images/regstrycat_obj.gif";
+
+ public RegistryNode(TreeElement element,NodeManager nodeManager,int nodeDepth,String imagePath)
+ {
+ super(element,nodeManager,nodeDepth,imagePath);
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(UDDIModelConstants.REL_QUERIES_PARENT))
+ {
+ QueryParentElement queryParentElement = (QueryParentElement)event.getParentElement();
+ createChildNode(queryParentElement);
+ }
+ else if (isPublishedItemsRel(rel))
+ {
+ PublishedItemsElement publishedItemsElement = (PublishedItemsElement)event.getParentElement();
+ createChildNode(publishedItemsElement);
+ }
+ }
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement childElement = null;
+ String inBoundRelName = event.getInBoundRelName();
+ String outBoundRelName = event.getOutBoundRelName();
+ if (inBoundRelName.equals(UDDIModelConstants.REL_QUERIES_PARENT) || isPublishedItemsRel(inBoundRelName))
+ childElement = (TreeElement)event.getInboundElement();
+ else if (outBoundRelName.equals(UDDIModelConstants.REL_QUERIES_PARENT) || isPublishedItemsRel(outBoundRelName))
+ childElement = (TreeElement)event.getOutBoundElement();
+
+ if (childElement != null)
+ removeChildNode(childElement);
+ }
+ });
+ UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective();
+ element.connect(new QueryParentElement(uddiPerspective.getMessage("NODE_NAME_QUERIES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_QUERIES_PARENT,ModelConstants.REL_OWNER);
+ element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_BUSINESSES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_BUSINESSES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_BUSINESSES_PARENT,ModelConstants.REL_OWNER);
+ element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_SERVICES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_SERVICES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_SERVICES_PARENT,ModelConstants.REL_OWNER);
+ element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_SERVICE_INTERFACES_PARENT,ModelConstants.REL_OWNER);
+ setVisibilityOfChildren(false);
+ }
+
+ private final boolean isPublishedItemsRel(String rel)
+ {
+ return rel.equals(UDDIModelConstants.REL_PUBLISHED_BUSINESSES_PARENT) || rel.equals(UDDIModelConstants.REL_PUBLISHED_SERVICES_PARENT) || rel.equals(UDDIModelConstants.REL_PUBLISHED_SERVICE_INTERFACES_PARENT);
+ }
+
+ private final void createChildNode(QueryParentElement queryParentElement)
+ {
+ QueryParentNode queryParentNode = new QueryParentNode(queryParentElement,nodeManager_,nodeDepth_+1);
+ addChild(queryParentNode);
+ }
+
+ private final void createChildNode(PublishedItemsElement publishedItemsElement)
+ {
+ PublishedItemsNode publishedItemsNode = new PublishedItemsNode(publishedItemsElement,nodeManager_,nodeDepth_+1);
+ addChild(publishedItemsNode);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective();
+ regDetailsTool_ = new RegistryDetailsTool(toolManager_ ,uddiPerspective.getMessage("ALT_REGISTRY_DETAILS"));
+ RegFindTool regFindTool = new RegFindTool(toolManager_,uddiPerspective.getMessage("ALT_FIND"));
+ regPublishTool_ = new RegPublishTool(toolManager_,uddiPerspective.getMessage("ALT_PUBLISH"));
+ new AddToFavoritesTool(toolManager_,uddiPerspective.getMessage("ALT_ADD_TO_FAVORITES"));
+ regFindTool.addAuthenticationProperties((RegistryElement)element_);
+ regPublishTool_.addAuthenticationProperties((RegistryElement)element_);
+ }
+
+ public final RegistryDetailsTool getRegDetailsTool()
+ {
+ return regDetailsTool_;
+ }
+
+ public final RegPublishTool getRegPublishTool()
+ {
+ return regPublishTool_;
+ }
+
+ private final void addDiscoveredNodes(Vector allNodes,Node queryParentNode,int queryType)
+ {
+ Vector queryNodes = queryParentNode.getChildNodes();
+ for (int i=0;i<queryNodes.size();i++)
+ {
+ QueryNode queryNode = (QueryNode)queryNodes.elementAt(i);
+ QueryElement queryElement = (QueryElement)queryNode.getTreeElement();
+ if (queryType == UDDIActionInputs.QUERY_ITEM_QUERIES)
+ allNodes.addElement(queryNode);
+ else if (queryElement.getQueryType() == queryType)
+ {
+ Vector discoveredNodes = queryNode.getChildNodes();
+ for (int j=0;j<discoveredNodes.size();j++)
+ allNodes.addElement(discoveredNodes.elementAt(j));
+ }
+ }
+ }
+
+ private final void addPublishedNodes(Vector allNodes,Node publishedItemsNode)
+ {
+ Vector itemNodes = publishedItemsNode.getChildNodes();
+ for (int i=0;i<itemNodes.size();i++)
+ allNodes.addElement(itemNodes.elementAt(i));
+ }
+
+ public final void getAllBusinessNodes(Vector allBusinessNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node queryParentNode = getChildNode(regElement.getQueryParentElement());
+ Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement());
+ addDiscoveredNodes(allBusinessNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_BUSINESSES);
+ addPublishedNodes(allBusinessNodes,publishedBusinessesNode);
+ }
+
+ public final void getAllServiceNodes(Vector allServicesNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node queryParentNode = getChildNode(regElement.getQueryParentElement());
+ Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement());
+ addDiscoveredNodes(allServicesNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_SERVICES);
+ addPublishedNodes(allServicesNodes,publishedServicesNode);
+ }
+
+ public final void getAllServiceInterfaceNodes(Vector allServiceInterfaceNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node queryParentNode = getChildNode(regElement.getQueryParentElement());
+ Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement());
+ addDiscoveredNodes(allServiceInterfaceNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES);
+ addPublishedNodes(allServiceInterfaceNodes,publishedServiceInterfacesNode);
+ }
+
+ public final void getPublishedBusinessNodes(Vector publishedBusinessNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement());
+ addPublishedNodes(publishedBusinessNodes,publishedBusinessesNode);
+ }
+
+ public final void getPublishedServiceNodes(Vector publishedServiceNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement());
+ addPublishedNodes(publishedServiceNodes,publishedServicesNode);
+ }
+
+ public final void getPublishedServiceInterfaceNodes(Vector publishedServiceInterfaceNodes)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement());
+ addPublishedNodes(publishedServiceInterfaceNodes,publishedServiceInterfacesNode);
+ }
+
+ public final void getDiscoveredNodes(Vector discoveredNodes,int queryItem)
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node queryParentNode = getChildNode(regElement.getQueryParentElement());
+ addDiscoveredNodes(discoveredNodes,queryParentNode,queryItem);
+ }
+
+ private final boolean hasQueryResults(Node queryParentNode,int queryType)
+ {
+ Vector queries = queryParentNode.getChildNodes();
+ for (int i=0;i<queries.size();i++)
+ {
+ QueryNode queryNode = (QueryNode)queries.elementAt(i);
+ if (queryNode.getChildNodes().size() > 0)
+ {
+ QueryElement queryElement = (QueryElement)queryNode.getTreeElement();
+ if (queryElement.getQueryType() == queryType)
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public final boolean hasBusiness()
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement());
+ if (publishedBusinessesNode.getChildNodes().size() > 0)
+ return true;
+ return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_BUSINESSES);
+ }
+
+ public final boolean hasService()
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement());
+ if (publishedServicesNode.getChildNodes().size() > 0)
+ return true;
+ return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_SERVICES);
+ }
+
+ public final boolean hasServiceInterface()
+ {
+ RegistryElement regElement = (RegistryElement)element_;
+ Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement());
+ if (publishedServiceInterfacesNode.getChildNodes().size() > 0)
+ return true;
+ return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ResultsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ResultsTool.java
new file mode 100644
index 000000000..a6340d0f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ResultsTool.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class ResultsTool extends FormTool
+{
+ private String formLink_;
+
+ public ResultsTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,"images/details_enabled.gif","images/details_highlighted.gif",alt);
+ formLink_ = ProxyLoadPageAction.getActionLink("uddi/forms/ResultsForm.jsp");
+ }
+
+ public final void initDefaultProperties()
+ {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public String getFormLink()
+ {
+ return formLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RootCategoryNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RootCategoryNode.java
new file mode 100644
index 000000000..5726ee673
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RootCategoryNode.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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 java.util.*;
+
+public class RootCategoryNode extends Node
+{
+ public RootCategoryNode(TreeElement element,NodeManager nodeManager)
+ {
+ super(element,nodeManager,1,"images/root_main.gif");
+ setVisibilityOfChildren(true);
+ }
+
+ public final void createChildren()
+ {
+ Enumeration children = element_.getElements(UDDIModelConstants.REL_SUBCATEGORIES);
+ if (children != null)
+ {
+ while (children.hasMoreElements())
+ {
+ CategoryElement categoryElement = (CategoryElement)children.nextElement();
+ CategoryNode categoryNode = new CategoryNode(categoryElement,nodeManager_,nodeDepth_+1);
+ addChild(categoryNode);
+ categoryNode.createChildren();
+ }
+ }
+ }
+
+ // Root node: no need for toggle action.
+ protected final String getToggleNodeActionHref()
+ {
+ return null;
+ }
+
+ // Text only node.
+ protected final String getLinkActionHref()
+ {
+ return null;
+ }
+
+ protected final void initTools()
+ {
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceDetailsTool.java
new file mode 100644
index 000000000..e714ac5d1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceDetailsTool.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+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.uddi4j.datatype.service.*;
+import org.uddi4j.util.*;
+
+import java.util.*;
+
+public class ServiceDetailsTool extends DetailsTool
+{
+ public ServiceDetailsTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt,ProxyLoadPageAction.getActionLink("uddi/forms/ServiceDetailsForm.jsp"));
+ }
+
+ public final void initDefaultProperties()
+ {
+ clearPropertyTable();
+ Controller controller = toolManager_.getNode().getNodeManager().getController();
+ ServiceElement serviceElement = (ServiceElement)(toolManager_.getNode().getTreeElement());
+ BusinessService busService = serviceElement.getBusinessService();
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,busService.getServiceKey());
+ setProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,busService.getBusinessKey());
+
+ Vector nameVector = new Vector();
+ copyIndexVector(busService.getNameVector(),nameVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,nameVector);
+
+ Vector descriptionVector = new Vector();
+ copyIndexVector(busService.getDescriptionVector(),descriptionVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,descriptionVector);
+
+ CategoryBag catBag = busService.getCategoryBag();
+ if (catBag != null)
+ {
+ Vector catVector = new Vector();
+ copyIndexVector(catBag.getKeyedReferenceVector(),catVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,catVector);
+ }
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceDetailsTool.java
new file mode 100644
index 000000000..5d4f1d970
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceDetailsTool.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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.uddi4j.datatype.tmodel.*;
+import org.uddi4j.util.*;
+
+import java.util.*;
+
+public class ServiceInterfaceDetailsTool extends DetailsTool
+{
+ public ServiceInterfaceDetailsTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt,ProxyLoadPageAction.getActionLink("uddi/forms/ServiceInterfaceDetailsForm.jsp"));
+ }
+
+ public final void initDefaultProperties()
+ {
+ clearPropertyTable();
+ Controller controller = toolManager_.getNode().getNodeManager().getController();
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)(toolManager_.getNode().getTreeElement());
+ TModel tModel = siElement.getTModel();
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,tModel.getTModelKey());
+ ListElement nameListElement = new ListElement(tModel.getNameString());
+ nameListElement.setTargetViewToolInfo(-1,-1,0);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME,nameListElement);
+
+ Vector descriptionVector = new Vector();
+ copyIndexVector(tModel.getDescriptionVector(),descriptionVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,descriptionVector);
+
+ IdentifierBag idBag = tModel.getIdentifierBag();
+ if (idBag != null)
+ {
+ Vector idVector = new Vector();
+ copyIndexVector(idBag.getKeyedReferenceVector(),idVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS,idVector);
+ }
+
+ CategoryBag catBag = tModel.getCategoryBag();
+ if (catBag != null)
+ {
+ Vector catVector = new Vector();
+ copyIndexVector(catBag.getKeyedReferenceVector(),catVector);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES,catVector);
+ }
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceNode.java
new file mode 100644
index 000000000..bddcad28d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceInterfaceNode.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+public class ServiceInterfaceNode extends UDDINavigatorNode
+{
+ private DetailsTool detailsTool_;
+ private UnpublishTool unpublishTool_;
+ public ServiceInterfaceNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"uddi/images/service_interface_highlighted.gif");
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ detailsTool_ = new ServiceInterfaceDetailsTool(toolManager_,uddiPerspective.getMessage("ALT_SERVICE_INTERFACE_DETAILS"));
+ new GetServicesTool(toolManager_,uddiPerspective.getMessage("ALT_GET_SERVICES"),ServiceInterfaceGetServicesAction.getActionLink(nodeId_));
+ new GetBusinessesTool(toolManager_,"uddi/images/businesses_closed_enabled.gif","uddi/images/businesses_closed_highlighted.gif",uddiPerspective.getMessage("ALT_GET_BUSINESSES"),ServiceInterfaceGetBusinessesAction.getActionLink(nodeId_));
+ new UDDIImportWSDLToWorkbenchTool(toolManager_,controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new UDDIImportWSDLToFileSystemTool(toolManager_,controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new UDDILaunchWebServiceWizardTool(toolManager_,controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new AddToFavoritesTool(toolManager_, uddiPerspective.getMessage("ALT_ADD_TO_FAVORITES"));
+ unpublishTool_ = new UnpublishTool(toolManager_,"uddi/images/unpublish_service_interface_enabled.gif","uddi/images/unpublish_service_interface_highlighted.gif",uddiPerspective.getMessage("ALT_UNPUBLISH_SERVICE_INTERFACE"));
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ detailsTool_.addAuthenticationProperties(regElement);
+ unpublishTool_.addAuthenticationProperties(regElement);
+ }
+
+ public String getWSDLURLFromDetailsTool()
+ {
+ ListElement wsdlURLListElement = (ListElement)detailsTool_.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ if (wsdlURLListElement != null)
+ return (String)wsdlURLListElement.getObject();
+ else
+ return "temp.wsdl";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceNode.java
new file mode 100644
index 000000000..d732b078d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/ServiceNode.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+public class ServiceNode extends UDDINavigatorNode
+{
+ private DetailsTool detailsTool_;
+ private UnpublishTool unpublishTool_;
+ public ServiceNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"uddi/images/service_highlighted.gif");
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ detailsTool_ = new ServiceDetailsTool(toolManager_,uddiPerspective.getMessage("ALT_SERVICE_DETAILS"));
+ new GetBusinessesTool(toolManager_,"uddi/images/business_enabled.gif","uddi/images/business_highlighted.gif",uddiPerspective.getMessage("ALT_GET_BUSINESS"),ServiceGetBusinessAction.getActionLink(nodeId_));
+ new GetServiceInterfacesTool(toolManager_,uddiPerspective.getMessage("ALT_GET_SERVICE_INTERFACES"),ServiceGetServiceInterfacesAction.getActionLink(nodeId_));
+ new UDDIImportWSDLToWorkbenchTool(toolManager_,controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new UDDIImportWSDLToFileSystemTool(toolManager_,controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new UDDILaunchWebServiceWizardTool(toolManager_,controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new UDDIAddToWSDLPerspectiveTool(toolManager_,uddiPerspective.getMessage("ALT_ADD_TO_WSDL_PERSPECTIVE"));
+ new AddToFavoritesTool(toolManager_,uddiPerspective.getMessage("ALT_ADD_TO_FAVORITES"));
+ unpublishTool_ = new UnpublishTool(toolManager_,"uddi/images/unpublish_service_enabled.gif","uddi/images/unpublish_service_highlighted.gif",uddiPerspective.getMessage("ALT_UNPUBLISH_SERVICE"));
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ detailsTool_.addAuthenticationProperties(regElement);
+ unpublishTool_.addAuthenticationProperties(regElement);
+ }
+
+ public String getWSDLURLFromDetailsTool()
+ {
+ ListElement wsdlURLListElement = (ListElement)detailsTool_.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ if (wsdlURLListElement != null)
+ return (String)wsdlURLListElement.getObject();
+ else
+ return "temp.wsdl";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryKeyProperty.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryKeyProperty.java
new file mode 100644
index 000000000..1c1154f26
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryKeyProperty.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+public class SubQueryKeyProperty
+{
+ private String subQueryKey_;
+
+ public SubQueryKeyProperty()
+ {
+ subQueryKey_ = "";
+ }
+
+ public final void setSubQueryKey(String subQueryKey)
+ {
+ subQueryKey_ = subQueryKey;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryTransferTarget.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryTransferTarget.java
new file mode 100644
index 000000000..74a8fac08
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/SubQueryTransferTarget.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.*;
+
+public class SubQueryTransferTarget
+{
+ private int nodeId_;
+ private int toolId_;
+ private int viewId_;
+ private int viewToolId_;
+ private String subQueryKey_;
+ private NodeManager nodeManager_;
+ Hashtable parentQueryData_;
+
+ public SubQueryTransferTarget(Node node,String subQueryKey,Hashtable parentQueryData)
+ {
+ nodeId_ = node.getNodeId();
+ toolId_ = node.getToolManager().getSelectedToolId();
+ viewId_ = node.getViewId();
+ viewToolId_ = node.getViewToolId();
+ subQueryKey_ = subQueryKey;
+ nodeManager_ = node.getNodeManager();
+ parentQueryData_ = parentQueryData;
+ }
+
+ public final int getNodeId()
+ {
+ return nodeId_;
+ }
+
+ public final int getToolId()
+ {
+ return toolId_;
+ }
+
+ public final int getViewId()
+ {
+ return viewId_;
+ }
+
+ public final int getViewToolId()
+ {
+ return viewToolId_;
+ }
+
+ public final String getSubQueryKey()
+ {
+ return subQueryKey_;
+ }
+
+ public final FormTool getTargetFormTool()
+ {
+ Node node = nodeManager_.getNode(nodeId_);
+ if (node == null)
+ return null;
+
+ Tool tool = node.getToolManager().getTool(toolId_);
+
+ if (viewId_ != ActionInputs.VIEWID_DEFAULT)
+ {
+ ViewTool viewTool = (ViewTool)tool;
+ ToolManager viewToolManager = viewTool.getToolManager(viewId_);
+ if (viewToolManager != null)
+ tool = viewToolManager.getTool(viewToolId_);
+ else
+ tool = null;
+ }
+ return (FormTool)tool;
+ }
+
+ public final Hashtable getParentQueryData()
+ {
+ return parentQueryData_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIAddToWSDLPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIAddToWSDLPerspectiveTool.java
new file mode 100644
index 000000000..d621f8e28
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIAddToWSDLPerspectiveTool.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class UDDIAddToWSDLPerspectiveTool extends AddToWSDLPerspectiveTool {
+ public UDDIAddToWSDLPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return UDDIAddToWSDLPerspectiveAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToFileSystemTool.java
new file mode 100644
index 000000000..fe9f7f802
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToFileSystemTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class UDDIImportWSDLToFileSystemTool extends ImportToFileSystemTool
+{
+ public UDDIImportWSDLToFileSystemTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt);
+ }
+
+ public final String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getActionLink()
+ {
+ Node node = toolManager_.getNode();
+ return UDDIImportWSDLToFileSystemAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToWorkbenchTool.java
new file mode 100644
index 000000000..2752ad811
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIImportWSDLToWorkbenchTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class UDDIImportWSDLToWorkbenchTool extends ImportToWorkbenchTool
+{
+ public UDDIImportWSDLToWorkbenchTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "uddi/forms/UDDIImportWSDLToWorkbenchForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDILaunchWebServiceWizardTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDILaunchWebServiceWizardTool.java
new file mode 100644
index 000000000..ee99d18f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDILaunchWebServiceWizardTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public class UDDILaunchWebServiceWizardTool extends LaunchWebServiceWizardTool
+{
+ public UDDILaunchWebServiceWizardTool(ToolManager toolManager,String alt)
+ {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "uddi/forms/UDDILaunchWebServiceWizardForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIMainNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIMainNode.java
new file mode 100644
index 000000000..a8773d3ee
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIMainNode.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+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 java.util.*;
+
+// Root node for the UDDI Navigator Tree View
+public class UDDIMainNode extends UDDINavigatorNode
+{
+ public UDDIMainNode(TreeElement element,NodeManager nodeManager)
+ {
+ super(element,nodeManager,1,"images/root_main.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(UDDIModelConstants.REL_REGISTRIES))
+ {
+ RegistryElement registryElement = (RegistryElement)event.getParentElement();
+ UDDIMainElement uddiMainElement = (UDDIMainElement)element_;
+ uddiMainElement.addRegistryName(registryElement.getName());
+ createChildNode(registryElement);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ RegistryElement childElement = null;
+ if (event.getInBoundRelName().equals(UDDIModelConstants.REL_REGISTRIES))
+ childElement = (RegistryElement)event.getInboundElement();
+ else if (event.getOutBoundRelName().equals(UDDIModelConstants.REL_REGISTRIES))
+ childElement = (RegistryElement)event.getOutBoundElement();
+
+ if (childElement != null)
+ {
+ UDDIMainElement uddiMainElement = (UDDIMainElement)element_;
+ uddiMainElement.removeRegistryName(childElement.getName());
+ removeChildNode(childElement);
+ }
+ }
+ });
+ }
+
+ private final void createChildNode(TreeElement element)
+ {
+ RegistryElement regElement = (RegistryElement)element;
+ Enumeration userDefinedCategories = regElement.getUserDefinedCategories();
+ String imagePath;
+ if (userDefinedCategories != null && userDefinedCategories.hasMoreElements())
+ imagePath = RegistryNode.IMAGE_PATH_WITH_USER_DEFINED_CATEGORIES;
+ else
+ imagePath = RegistryNode.IMAGE_PATH_STANDARD;
+
+ RegistryNode regNode = new RegistryNode(element,nodeManager_,nodeDepth_+1,imagePath);
+ addChild(regNode);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ new OpenRegistryTool(toolManager_,uddiPerspective.getMessage("ALT_OPEN_REGISTRY"));
+ }
+
+ // Given a node under a particular registry node, obtain the registry node.
+ public final RegistryNode getRegistryNode(Node currentNode)
+ {
+ RegistryNode regNode = null;
+ if (currentNode instanceof RegistryNode)
+ {
+ regNode = (RegistryNode)currentNode;
+ }
+ else if (currentNode instanceof QueryNode)
+ {
+ // Query -> Query folder -> Registry
+ regNode = (RegistryNode)(currentNode.getParent().getParent());
+ }
+ else if (currentNode instanceof QueryParentNode || currentNode instanceof PublishedItemsNode)
+ {
+ // Query folder -> Registry
+ regNode = (RegistryNode)(currentNode.getParent());
+ }
+ else if (currentNode instanceof BusinessNode || currentNode instanceof ServiceNode || currentNode instanceof ServiceInterfaceNode)
+ {
+ // itemNode -> Published Items folder -> Registry
+ // OR:
+ // itemNode -> QueryNode -> Query folder -> Registry
+ Node parentNode = currentNode.getParent();
+ if (parentNode instanceof QueryNode)
+ regNode = (RegistryNode)(parentNode.getParent().getParent());
+ else
+ regNode = (RegistryNode)parentNode.getParent();
+ }
+ return regNode;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorFolderNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorFolderNode.java
new file mode 100644
index 000000000..63f6a2bd8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorFolderNode.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+
+public abstract class UDDINavigatorFolderNode extends FolderNode
+{
+ public UDDINavigatorFolderNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth);
+ }
+
+ // uddi/actions/ToggleNavigatorNodeAction.jsp?nodeId=...
+ public final String getToggleNodeActionHref()
+ {
+ return ToggleNavigatorNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ // uddi/actions/SelectNavigatorNodeAction.jsp?nodeId=...
+ public final String getLinkActionHref()
+ {
+ return SelectNavigatorNodeAction.getActionLink(nodeId_,false);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorNode.java
new file mode 100644
index 000000000..2490287f7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDINavigatorNode.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+public abstract class UDDINavigatorNode extends Node
+{
+ public UDDINavigatorNode(TreeElement element,NodeManager nodeManager,int nodeDepth,String imagePath)
+ {
+ super(element,nodeManager,nodeDepth,imagePath);
+ }
+
+ // uddi/actions/ToggleNavigatorNodeAction.jsp?nodeId=...
+ public final String getToggleNodeActionHref()
+ {
+ return ToggleNavigatorNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ // uddi/actions/SelectNavigatorNodeAction.jsp?nodeId=...
+ public final String getLinkActionHref()
+ {
+ return SelectNavigatorNodeAction.getActionLink(nodeId_,false);
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java
new file mode 100644
index 000000000..222189502
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java
@@ -0,0 +1,506 @@
+/*******************************************************************************
+ * 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.perspective;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+import java.util.Vector;
+
+import javax.servlet.ServletContext;
+
+import org.eclipse.wst.ws.internal.datamodel.BasicModel;
+import org.eclipse.wst.ws.internal.datamodel.Model;
+import org.eclipse.wst.ws.internal.explorer.favorites.FavoritesRegistryTypeDefault;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.AddRegistryToUDDIPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesMainElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIRegistryElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesUDDIRegistryFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Perspective;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.OpenRegistryAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindServiceUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.SwitchPerspectiveFromUDDIAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.CategoryModel;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.UDDIMainElement;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.util.Validator;
+import org.eclipse.wst.ws.internal.parser.favorites.IFavoritesUDDIRegistry;
+import org.uddi4j.datatype.tmodel.TModel;
+
+public class UDDIPerspective extends Perspective
+{
+ private Hashtable knownRegistries_;
+ private IFavoritesUDDIRegistry ibmPublicUDDITestRegistry_;
+ private Model navigatorModel_;
+ private NodeManager navigatorManager_;
+ private int wsdlType_;
+ private Hashtable categoryManagers_;
+ String categoryTModelKey_;
+
+ // Window sizes
+ private String perspectiveContentFramesetCols_;
+ private String savedPerspectiveContentFramesetCols_;
+ private String actionsContainerFramesetRows_;
+ private String savedActionsContainerFramesetRows_;
+
+ private final String IBM_TEST_REG_INQUIRY_URL = "http://uddi.ibm.com/testregistry/inquiryapi";
+ private final String IBM_TEST_REG_PUBLISH_URL = "https://uddi.ibm.com/testregistry/publishapi";
+
+ public UDDIPerspective(Controller controller)
+ {
+ super("uddi",controller);
+ }
+
+ public final void initPerspective(ServletContext application)
+ {
+ String defaultFavorites = controller_.getDefaultFavoritesLocation();
+ FavoritesRegistryTypeDefault favRegTypeDefault = new FavoritesRegistryTypeDefault(defaultFavorites);
+ IFavoritesUDDIRegistry[] favRegistriesDefault = favRegTypeDefault.getFavoritesUDDIRegistries();
+ knownRegistries_ = new Hashtable();
+ for (int i=0;i<favRegistriesDefault.length;i++)
+ {
+ if (favRegistriesDefault[i].getInquiryURL().equals(IBM_TEST_REG_INQUIRY_URL) && favRegistriesDefault[i].getPublishURL().equals(IBM_TEST_REG_PUBLISH_URL))
+ ibmPublicUDDITestRegistry_ = favRegistriesDefault[i];
+ knownRegistries_.put(favRegistriesDefault[i].getInquiryURL(),favRegistriesDefault[i]);
+ }
+ if (ibmPublicUDDITestRegistry_ == null && favRegistriesDefault.length > 0)
+ ibmPublicUDDITestRegistry_ = favRegistriesDefault[0];
+
+ navigatorModel_ = new BasicModel("uddiModel");
+ UDDIMainElement uddiMainElement = new UDDIMainElement(getMessage("NODE_NAME_UDDI_MAIN"),navigatorModel_);
+ navigatorModel_.setRootElement(uddiMainElement);
+ navigatorManager_ = new NodeManager(controller_);
+ UDDIMainNode uddiMainNode = new UDDIMainNode(uddiMainElement,navigatorManager_);
+ navigatorManager_.setRootNode(uddiMainNode);
+
+ wsdlType_ = UDDIActionInputs.WSDL_TYPE_SERVICE_INTERFACE;
+ categoryManagers_ = new Hashtable();
+
+ // Initialize the default category models.
+ if (application.getAttribute("commonCategoryModels") == null)
+ {
+ synchronized (application)
+ {
+ if (application.getAttribute("commonCategoryModels") == null)
+ {
+ Hashtable commonCategoryModels = new Hashtable();
+
+ CategoryModel naicsModel = new CategoryModel();
+ naicsModel.setServletContext(application);
+ naicsModel.setDefaultDataFile("/uddi/data/naics-data.txt");
+ naicsModel.setDisplayName(getMessage("FORM_OPTION_CATEGORY_NAICS"));
+ naicsModel.setTModelKey(TModel.NAICS_TMODEL_KEY);
+ commonCategoryModels.put(TModel.NAICS_TMODEL_KEY,naicsModel);
+
+ CategoryModel unspscModel = new CategoryModel();
+ unspscModel.setServletContext(application);
+ unspscModel.setDefaultDataFile("/uddi/data/unspsc-data.txt");
+ unspscModel.setDisplayName(getMessage("FORM_OPTION_CATEGORY_UNSPSC_73"));
+ unspscModel.setTModelKey(TModel.UNSPSC_73_TMODEL_KEY);
+ commonCategoryModels.put(TModel.UNSPSC_73_TMODEL_KEY,unspscModel);
+
+ CategoryModel geoModel = new CategoryModel();
+ geoModel.setServletContext(application);
+ geoModel.setDefaultDataFile("/uddi/data/geo-data.txt");
+ geoModel.setDisplayName(getMessage("FORM_OPTION_CATEGORY_GEO"));
+ geoModel.setTModelKey(TModel.ISO_CH_TMODEL_KEY);
+ commonCategoryModels.put(TModel.ISO_CH_TMODEL_KEY,geoModel);
+
+ CategoryModel dWCommunityModel = new CategoryModel();
+ dWCommunityModel.setServletContext(application);
+ dWCommunityModel.setDefaultDataFile("/uddi/data/dWCommunity-data.txt");
+ dWCommunityModel.setDisplayName(getMessage("FORM_OPTION_CATEGORY_DWCOMMUNITY"));
+ dWCommunityModel.setTModelKey("UUID:8F497C50-EB05-11D6-B618-000629DC0A53");
+ commonCategoryModels.put("UUID:8F497C50-EB05-11D6-B618-000629DC0A53",dWCommunityModel);
+
+ application.setAttribute("commonCategoryModels",commonCategoryModels);
+ }
+ }
+ }
+ categoryTModelKey_ = null;
+
+ // Starting frameset sizes.
+ perspectiveContentFramesetCols_ = "30%,*";
+ savedPerspectiveContentFramesetCols_ = perspectiveContentFramesetCols_;
+ actionsContainerFramesetRows_ = "75%,*";
+ savedActionsContainerFramesetRows_ = actionsContainerFramesetRows_;
+ }
+
+ public final Hashtable getKnownRegistries()
+ {
+ // We must always query the favorites to see if additional registries were added over time. This property cannot be cached.
+ FavoritesMainElement favMainElement = (FavoritesMainElement)(controller_.getFavoritesPerspective().getNodeManager().getRootNode().getTreeElement());
+ FavoritesUDDIRegistryFolderElement favRegFolderElement = favMainElement.getFavoritesUDDIRegistryFolderElement();
+ Enumeration e = favRegFolderElement.getAllFavorites();
+ while (e.hasMoreElements())
+ {
+ FavoritesUDDIRegistryElement favRegElement = (FavoritesUDDIRegistryElement)e.nextElement();
+ String inquiryURL = favRegElement.getInquiryURL();
+ if (knownRegistries_.get(inquiryURL) == null)
+ knownRegistries_.put(inquiryURL,favRegElement.getIFavoritesUDDIRegistryInterface());
+ }
+ return knownRegistries_;
+ }
+
+ public final String getKnownRegistryPublishURL(String inquiryURL)
+ {
+ IFavoritesUDDIRegistry knownRegistry = (IFavoritesUDDIRegistry)getKnownRegistries().get(inquiryURL);
+ if (knownRegistry != null)
+ {
+ String publishURL = knownRegistry.getPublishURL();
+ if (Validator.validateURL(publishURL))
+ return publishURL;
+ }
+ return null;
+ }
+
+ public final String getKnownRegistryRegistrationURL(String inquiryURL)
+ {
+ IFavoritesUDDIRegistry knownRegistry = (IFavoritesUDDIRegistry)getKnownRegistries().get(inquiryURL);
+ if (knownRegistry != null)
+ {
+ String registrationURL = knownRegistry.getRegistrationURL();
+ if (Validator.validateURL(registrationURL))
+ return registrationURL;
+ }
+ return null;
+ }
+
+ public final IFavoritesUDDIRegistry getIBMPublicUDDITestRegistry()
+ {
+ return ibmPublicUDDITestRegistry_;
+ }
+
+ public final void preloadUDDIRegistries(String[] inquiryURLs, String[] publishURLs)
+ {
+ if (inquiryURLs != null)
+ {
+ Hashtable knownRegistries = getKnownRegistries();
+ StringBuffer directoryBuffer = new StringBuffer();
+ for (int i = 0; i < inquiryURLs.length; i++)
+ {
+ String inquiryURL = URLUtils.decode(inquiryURLs[i]);
+ String publishURL = null;
+ String regName = null;
+ String registrationURL = null;
+ // continue to the next registry if inquiryURL does not exist
+ if (!Validator.validateURL(inquiryURL))
+ continue;
+ // populate and run an OpenRegistryAction
+ OpenRegistryAction action = new OpenRegistryAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ IFavoritesUDDIRegistry knownRegistry = (IFavoritesUDDIRegistry)knownRegistries.get(inquiryURL);
+ boolean checkForUserDefinedCategories = false;
+ File directoryFile = null;
+ if (knownRegistry != null)
+ {
+ publishURL = knownRegistry.getPublishURL();
+ regName = knownRegistry.getName();
+ registrationURL = knownRegistry.getRegistrationURL();
+ directoryBuffer.setLength(0);
+ FavoritesUDDIRegistryFolderElement.formCategoriesDirectory(directoryBuffer,controller_.getServletEngineStateLocation(),regName);
+ directoryFile = new File(directoryBuffer.toString());
+ if (directoryFile.exists() && directoryFile.listFiles().length > 0)
+ checkForUserDefinedCategories = true;
+ }
+ if (regName == null)
+ regName = inquiryURL;
+ if (publishURL == null && publishURLs != null && i < publishURLs.length && publishURLs[i] != null) {
+ publishURL = URLUtils.decode(publishURLs[i]);
+ }
+ // populate the action
+ propertyTable.put(UDDIActionInputs.INQUIRY_URL, inquiryURL);
+ propertyTable.put(UDDIActionInputs.REGISTRY_NAME, regName);
+ if (Validator.validateURL(publishURL))
+ propertyTable.put(UDDIActionInputs.PUBLISH_URL, publishURL);
+ if (Validator.validateURL(registrationURL))
+ propertyTable.put(UDDIActionInputs.REGISTRATION_URL, registrationURL);
+
+ // Check if private registry category information is available for this registry.
+ directoryBuffer.setLength(0);
+ String encodedInquiryURL = URLUtils.encode(inquiryURL);
+ directoryBuffer.append(controller_.getServletEngineStateLocation()).append(encodedInquiryURL).append(".properties");
+ directoryFile = new File(directoryBuffer.toString());
+ if (directoryFile.exists())
+ {
+ try
+ {
+ Properties p = new Properties();
+ FileInputStream fin = new FileInputStream(directoryFile);
+ p.load(fin);
+ fin.close();
+ directoryFile.delete();
+ String dataDirectory = p.getProperty(UDDIActionInputs.CATEGORIES_DIRECTORY);
+ if (dataDirectory != null)
+ propertyTable.put(UDDIActionInputs.CATEGORIES_DIRECTORY,dataDirectory);
+ checkForUserDefinedCategories = true;
+ }
+ catch (IOException e)
+ {
+ checkForUserDefinedCategories = false;
+ }
+ }
+
+ if (checkForUserDefinedCategories)
+ propertyTable.put(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES,Boolean.TRUE);
+ else
+ propertyTable.remove(UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES);
+
+ // run the action
+ action.run();
+
+ RegistryElement regElement = (RegistryElement)(navigatorManager_.getSelectedNode().getTreeElement());
+ Enumeration userDefinedCategories = regElement.getUserDefinedCategories();
+ if (userDefinedCategories != null && userDefinedCategories.hasMoreElements())
+ {
+ AddRegistryToUDDIPerspectiveAction action2 = new AddRegistryToUDDIPerspectiveAction(controller_);
+ String categoriesDirectory = regElement.getCategoriesDirectory();
+ if (categoriesDirectory != null)
+ action2.linkCategoryModelsWithSavedData(userDefinedCategories,categoriesDirectory);
+ else
+ action2.linkCategoryModelsWithSavedData(regElement.getName(),userDefinedCategories);
+ }
+ }
+ if (inquiryURLs.length > 0)
+ controller_.setCurrentPerspective(ActionInputs.PERSPECTIVE_UDDI);
+ }
+ }
+
+ // Preconditions:
+ // serviceNames and serviceKeys have length >= 1.
+ // regNode != null
+ private final void preloadServicesForRegistry(RegistryNode regNode,String[] serviceNames,String[] serviceKeys)
+ {
+ int regNodeId = regNode.getNodeId();
+ for (int i=0;i<serviceKeys.length;i++)
+ {
+ navigatorManager_.setSelectedNodeId(regNodeId);
+ RegFindServiceUUIDAction action = new RegFindServiceUUIDAction(controller_);
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_NAME,serviceNames[i]);
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,serviceKeys[i]);
+ action.run();
+ navigatorManager_.makeSelectedNodeVisible();
+ }
+ }
+
+ public final void preloadServices(String[] inquiryURLs,String[] serviceNames,String[] serviceKeys)
+ {
+ // The algorithm will search for each service key in each inquiry URL.
+ if (serviceKeys != null && serviceNames != null && serviceNames.length == serviceKeys.length)
+ {
+ for (int i=0;i<serviceKeys.length;i++)
+ {
+ if (inquiryURLs != null)
+ {
+ // Eliminate duplicate inquiry URLs.
+ Hashtable inquiryURLsHash = new Hashtable();
+ for (int j=0;j<inquiryURLs.length;j++)
+ inquiryURLsHash.put(inquiryURLs[j],Boolean.TRUE);
+ // Loop through all the available registries and use them if possible.
+ Node uddiMainNode = navigatorManager_.getRootNode();
+ Vector registryNodes = uddiMainNode.getChildNodes();
+ for (int k=0;k<registryNodes.size();k++)
+ {
+ RegistryNode regNode = (RegistryNode)registryNodes.elementAt(k);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+ String existingRegistryInquiryURL = regElement.getInquiryURL();
+ if (inquiryURLsHash.get(existingRegistryInquiryURL) != null)
+ {
+ preloadServicesForRegistry(regNode,serviceNames,serviceKeys);
+ inquiryURLsHash.remove(existingRegistryInquiryURL);
+ }
+ }
+ Enumeration inquiryURLsEnum = inquiryURLsHash.keys();
+ while (inquiryURLsEnum.hasMoreElements())
+ {
+ String inquiryURL = (String)inquiryURLsEnum.nextElement();
+ preloadUDDIRegistries(new String[] {inquiryURL},null);
+ RegistryNode regNode = (RegistryNode)navigatorManager_.getSelectedNode();
+ preloadServicesForRegistry(regNode,serviceNames,serviceKeys);
+ }
+ }
+ }
+ }
+ }
+
+ public final void setCategoryTModelKey(String categoryTModelKey)
+ {
+ categoryTModelKey_ = categoryTModelKey;
+ }
+
+ public final String getCategoryTModelKey()
+ {
+ return categoryTModelKey_;
+ }
+
+ private final void initCategoryBrowser(CategoryModel categoryModel,NodeManager nodeManager)
+ {
+ TreeElement categoryRootElement = (TreeElement)categoryModel.getRootElement();
+ RootCategoryNode rootCategoryNode = new RootCategoryNode(categoryRootElement,nodeManager);
+ nodeManager.setRootNode(rootCategoryNode);
+ rootCategoryNode.createChildren();
+ }
+
+ public final NodeManager getCategoryManager()
+ {
+ return (NodeManager)categoryManagers_.get(categoryTModelKey_);
+ }
+
+ public final NodeManager getCategoryManager(CategoryModel categoryModel)
+ {
+ String tModelKey = categoryModel.getTModelKey();
+ NodeManager categoryManager = (NodeManager)categoryManagers_.get(tModelKey);
+ if (categoryManager == null)
+ {
+ categoryManager = new NodeManager(controller_);
+ initCategoryBrowser(categoryModel,categoryManager);
+ categoryManagers_.put(tModelKey,categoryManager);
+ }
+ return categoryManager;
+ }
+
+ public final NodeManager getNavigatorManager()
+ {
+ return navigatorManager_;
+ }
+
+ public final NodeManager getNodeManager()
+ {
+ return getNavigatorManager();
+ }
+
+ public final void setWSDLType(int wsdlType)
+ {
+ wsdlType_ = wsdlType;
+ }
+
+ public final int getWSDLType()
+ {
+ return wsdlType_;
+ }
+
+ public final String getPerspectiveContentPage()
+ {
+ return "uddi/uddi_perspective_content.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_UDDI;
+ }
+
+ public final String getFramesetsFile()
+ {
+ return "uddi/scripts/uddiframesets.jsp";
+ }
+
+ public final String getProcessFramesetsForm()
+ {
+ return "uddi/forms/ProcessUDDIFramesetsForm.jsp";
+ }
+
+ public final String getPanesFile()
+ {
+ return "uddi/scripts/uddipanes.jsp";
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "navigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "uddi/navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "propertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "uddi/properties_container.jsp";
+ }
+
+ public final String getStatusContentVar()
+ {
+ return "statusContent";
+ }
+
+ public final String getStatusContentPage()
+ {
+ return "uddi/status_content.jsp";
+ }
+
+ public final String getSavePerspectiveActionLink()
+ {
+ //return SaveUDDIPerspectiveAction.getActionLink();
+ return "";
+ }
+
+ public final String getPerspectiveContentFramesetCols()
+ {
+ return perspectiveContentFramesetCols_;
+ }
+
+ public final void setPerspectiveContentFramesetCols(String cols)
+ {
+ perspectiveContentFramesetCols_ = cols;
+ }
+
+ public final void setSavedPerspectiveContentFramesetCols(String cols)
+ {
+ savedPerspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getSavedPerspectiveContentFramesetCols()
+ {
+ return savedPerspectiveContentFramesetCols_;
+ }
+
+ public final String getActionsContainerFramesetRows()
+ {
+ return actionsContainerFramesetRows_;
+ }
+
+ public final void setActionsContainerFramesetRows(String rows)
+ {
+ actionsContainerFramesetRows_ = rows;
+ }
+
+ public final void setSavedActionsContainerFramesetRows(String rows)
+ {
+ savedActionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSavedActionsContainerFramesetRows()
+ {
+ return savedActionsContainerFramesetRows_;
+ }
+
+ public final String getSwitchPerspectiveFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ return SwitchPerspectiveFromUDDIAction.getFormActionLink(targetPerspectiveId,forHistory);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UnpublishTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UnpublishTool.java
new file mode 100644
index 000000000..a0dd6ae3e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UnpublishTool.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*;
+
+public class UnpublishTool extends FormTool
+{
+ public UnpublishTool(ToolManager toolManager, String enableImage, String highlightImage, String alt)
+ {
+ super(toolManager, enableImage, highlightImage, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node node = toolManager_.getNode();
+ return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public void addAuthenticationProperties(RegistryElement regElement)
+ {
+ String publishURL = regElement.getPublishURL();
+ String userId = regElement.getUserId();
+ String password = regElement.getCred();
+
+ if (publishURL == null)
+ publishURL = "";
+ if (userId == null)
+ userId = "";
+ if (password == null)
+ password = "";
+
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL,publishURL);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID,userId);
+ setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD,password);
+ }
+
+ public String getFormLink()
+ {
+ return "uddi/forms/UnpublishForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/util/Uddi4jHelper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/util/Uddi4jHelper.java
new file mode 100644
index 000000000..5dfca9ebe
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/util/Uddi4jHelper.java
@@ -0,0 +1,398 @@
+/*******************************************************************************
+ * 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.util;
+
+import java.util.Hashtable;
+import java.util.Vector;
+import java.util.List;
+import java.util.Iterator;
+import javax.wsdl.Definition;
+import javax.wsdl.Service;
+import javax.wsdl.Port;
+import javax.wsdl.Binding;
+import javax.wsdl.PortType;
+import javax.wsdl.Message;
+import javax.wsdl.Import;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.http.HTTPAddress;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.CharacterData;
+import org.uddi4j.UDDIException;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.binding.AccessPoint;
+import org.uddi4j.datatype.binding.BindingTemplate;
+import org.uddi4j.datatype.binding.BindingTemplates;
+import org.uddi4j.datatype.binding.InstanceDetails;
+import org.uddi4j.datatype.binding.TModelInstanceDetails;
+import org.uddi4j.datatype.binding.TModelInstanceInfo;
+import org.uddi4j.datatype.service.BusinessService;
+import org.uddi4j.datatype.tmodel.TModel;
+import org.uddi4j.datatype.OverviewDoc;
+import org.uddi4j.datatype.OverviewURL;
+import org.uddi4j.response.TModelDetail;
+import org.uddi4j.transport.TransportException;
+import org.uddi4j.util.CategoryBag;
+import org.uddi4j.util.KeyedReference;
+
+import org.eclipse.wst.ws.internal.parser.discovery.WebServicesParserExt;
+
+public class Uddi4jHelper
+{
+ public final KeyedReference getWSDLKeyedReference()
+ {
+ KeyedReference keyRef = new KeyedReference("types", "wsdlSpec");
+ keyRef.setTModelKey("UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4");
+ return keyRef;
+ }
+
+ public final TModel newTModel(String wsdlUrl) throws WSDLException
+ {
+ return newTModel(wsdlUrl, getWSDLDefinition(wsdlUrl));
+ }
+
+ public final TModel newTModel(String wsdlUrl, Definition def) throws WSDLException
+ {
+ TModel tModel = new TModel();
+ tModel.setTModelKey("");
+ tModel.setName(def.getTargetNamespace());
+ tModel.setDefaultDescriptionString("");
+ OverviewDoc overviewDoc = new OverviewDoc();
+ overviewDoc.setOverviewURL(wsdlUrl);
+ tModel.setOverviewDoc(overviewDoc);
+ CategoryBag catBag = new CategoryBag();
+ Vector keyRefVector = new Vector();
+ keyRefVector.add(getWSDLKeyedReference());
+ catBag.setKeyedReferenceVector(keyRefVector);
+ tModel.setCategoryBag(catBag);
+ return tModel;
+ }
+
+ public final BusinessService newBusinessService(String wsdlUrl, Hashtable tModelsTable) throws WSDLException
+ {
+ return newBusinessService(wsdlUrl, getWSDLDefinition(wsdlUrl), tModelsTable);
+ }
+
+ public final BusinessService newBusinessService(String wsdlUrl, Definition def, Hashtable tModelsTable) throws WSDLException
+ {
+ BusinessService bs = new BusinessService();
+ bs.setServiceKey("");
+ BindingTemplates bindingTemplates = new BindingTemplates();
+ Vector bindingTemplateVector = new Vector();
+ Service[] services = (Service[])def.getServices().values().toArray(new Service[0]);
+ if (services.length > 0)
+ {
+ Port[] ports = (Port[])services[0].getPorts().values().toArray(new Port[0]);
+ for (int i = 0; i < ports.length; i++)
+ {
+ TModelInstanceDetails tModelDetails = new TModelInstanceDetails();
+ Vector tModelInfoVector = new Vector();
+ TModel tModel = (TModel)tModelsTable.get(ports[i].getBinding().getPortType().getQName().getNamespaceURI());
+ tModelInfoVector.add(createTModelInstanceInfo(wsdlUrl, ports[i], tModel.getTModelKey()));
+ tModelDetails.setTModelInstanceInfoVector(tModelInfoVector);
+ BindingTemplate bindingTemplate = new BindingTemplate();
+ bindingTemplate.setDefaultDescriptionString(createDescription(ports[i]));
+ bindingTemplate.setAccessPoint(createAccessPoint(ports[i]));
+ bindingTemplate.setTModelInstanceDetails(tModelDetails);
+ bindingTemplate.setBindingKey("");
+ bindingTemplateVector.add(bindingTemplate);
+ }
+ }
+ bindingTemplates.setBindingTemplateVector(bindingTemplateVector);
+ bs.setBindingTemplates(bindingTemplates);
+ return bs;
+ }
+
+ public final BusinessService newBusinessService(String wsdlUrl, Definition def, TModel[] tModels) throws WSDLException
+ {
+ BusinessService bs = new BusinessService();
+ bs.setServiceKey("");
+ BindingTemplates bindingTemplates = new BindingTemplates();
+ Vector bindingTemplateVector = new Vector();
+ Service[] services = (Service[])def.getServices().values().toArray(new Service[0]);
+ if (services.length > 0)
+ {
+ Port[] ports = (Port[])services[0].getPorts().values().toArray(new Port[0]);
+ for (int i = 0; i < ports.length; i++)
+ {
+ for (int j = 0; j < tModels.length; j++)
+ {
+ TModelInstanceDetails tModelDetails = new TModelInstanceDetails();
+ Vector tModelInfoVector = new Vector();
+ tModelInfoVector.add(createTModelInstanceInfo(wsdlUrl, ports[i], tModels[j].getTModelKey()));
+ tModelDetails.setTModelInstanceInfoVector(tModelInfoVector);
+ BindingTemplate bindingTemplate = new BindingTemplate();
+ bindingTemplate.setDefaultDescriptionString(createDescription(ports[i]));
+ bindingTemplate.setAccessPoint(createAccessPoint(ports[i]));
+ bindingTemplate.setTModelInstanceDetails(tModelDetails);
+ bindingTemplate.setBindingKey("");
+ bindingTemplateVector.add(bindingTemplate);
+ }
+ }
+ }
+ bindingTemplates.setBindingTemplateVector(bindingTemplateVector);
+ bs.setBindingTemplates(bindingTemplates);
+ return bs;
+ }
+
+ public Definition getWSDLDefinition(String wsdlUrl) throws WSDLException
+ {
+ try
+ {
+ WebServicesParserExt parser = new WebServicesParserExt();
+ String proxySet = System.getProperty("http.proxySet");
+ if (proxySet != null && proxySet.equals("true"))
+ {
+ parser.setHTTPBasicAuthUsername(System.getProperty("http.proxyUserName"));
+ parser.setHTTPBasicAuthPassword(System.getProperty("http.proxyPassword"));
+ }
+ return parser.getWSDLDefinitionVerbose(wsdlUrl);
+ }
+ catch (Exception e)
+ {
+ throw new WSDLException(WSDLException.PARSER_ERROR, e.getMessage(), e);
+ }
+ }
+
+ private final String createDescription(Port port)
+ {
+ String desc = null;
+ Element e = port.getDocumentationElement();
+ if (e != null)
+ {
+ Node node = e.getFirstChild();
+ StringBuffer sb = new StringBuffer();
+ while (node != null)
+ {
+ switch (node.getNodeType())
+ {
+ case Node.TEXT_NODE:
+ case Node.CDATA_SECTION_NODE:
+ sb.append(((CharacterData)node).getData());
+ default:
+ node = node.getNextSibling();
+ break;
+ }
+ }
+ desc = sb.toString();
+ }
+ return desc;
+ }
+
+ private final TModelInstanceInfo createTModelInstanceInfo(String wsdlUrl, Port port, String tModelKey)
+ {
+ InstanceDetails details = new InstanceDetails();
+ OverviewDoc overviewDoc = new OverviewDoc();
+ TModelInstanceInfo tModelInfo = new TModelInstanceInfo();
+ StringBuffer overviewURLString = new StringBuffer(wsdlUrl);
+ String portName = port.getName();
+ if (portName != null)
+ {
+ overviewURLString.append("#");
+ overviewURLString.append(portName);
+ }
+ overviewDoc.setOverviewURL(new OverviewURL(overviewURLString.toString()));
+ details.setOverviewDoc(overviewDoc);
+ tModelInfo.setInstanceDetails(details);
+ if (tModelKey != null)
+ tModelInfo.setTModelKey(tModelKey);
+ return tModelInfo;
+ }
+
+ private final AccessPoint createAccessPoint(Port port)
+ {
+ AccessPoint accessPoint = null;
+ List list = port.getExtensibilityElements();
+ for (int j = 0; j < list.size(); j++)
+ {
+ ExtensibilityElement extElement = (ExtensibilityElement)list.get(j);
+ if (extElement instanceof SOAPAddress)
+ {
+ String locationURI = ((SOAPAddress)extElement).getLocationURI();
+ accessPoint = new AccessPoint(locationURI, getURLType(locationURI));
+ break;
+ }
+ else if (extElement instanceof HTTPAddress)
+ {
+ String locationURI = ((HTTPAddress)extElement).getLocationURI();
+ accessPoint = new AccessPoint(locationURI, getURLType(locationURI));
+ break;
+ }
+ }
+ return accessPoint;
+ }
+
+ private final String URL_TYPE_OTHER = "other";
+ private final String URL_TYPES = "http https mail ftp fax phone other";
+
+ private final String getURLType(String url)
+ {
+ int i = url.indexOf(":");
+ String type;
+ if (i == -1)
+ type = URL_TYPE_OTHER;
+ else
+ {
+ type = url.substring(0, i);
+ if (type.equals("") || URL_TYPES.indexOf(type) == -1)
+ type = URL_TYPE_OTHER;
+ }
+ return type;
+ }
+
+ public boolean isMonolithicWSDL(Definition def)
+ {
+ return hasMessage(def) && hasPortType(def) && hasBinding(def) && hasService(def);
+ }
+
+ public boolean isServiceImplement(Definition def)
+ {
+ return hasImport(def) && hasService(def);
+ }
+
+ public boolean isServiceInterface(Definition def)
+ {
+ return hasMessage(def) && hasPortType(def) && hasBinding(def);
+ }
+
+ public boolean isServiceInterfaceWithBindingsOnly(Definition def)
+ {
+ return !hasService(def) && hasBinding(def);
+ }
+
+ private boolean hasMessage(Definition def)
+ {
+ for(Iterator it = def.getMessages().values().iterator(); it.hasNext();)
+ if (!((Message)it.next()).isUndefined())
+ return true;
+ return false;
+ }
+
+ private boolean hasPortType(Definition def)
+ {
+ for(Iterator it = def.getPortTypes().values().iterator(); it.hasNext();)
+ if (!((PortType)it.next()).isUndefined())
+ return true;
+ return false;
+ }
+
+ private boolean hasBinding(Definition def)
+ {
+ for(Iterator it = def.getBindings().values().iterator(); it.hasNext();)
+ if (!((Binding)it.next()).isUndefined())
+ return true;
+ return false;
+ }
+
+ private boolean hasService(Definition def)
+ {
+ return !def.getServices().isEmpty();
+ }
+
+ private boolean hasImport(Definition def)
+ {
+ return !def.getImports().isEmpty();
+ }
+
+ public String[] getImports(Definition def, String wsdlUrl)
+ {
+ Import[] imports = (Import [])def.getImports().values().toArray(new Import[0]);
+ String[] importStrings = new String[imports.length];
+ String s;
+ if (wsdlUrl != null && wsdlUrl.indexOf('/') != -1)
+ s = wsdlUrl.substring(0, wsdlUrl.lastIndexOf('/')+1);
+ else
+ s = "";
+ for (int i = 0; i < importStrings.length; i++)
+ {
+ StringBuffer sb = new StringBuffer();
+ String locationURI = imports[i].getLocationURI();
+ if (locationURI.indexOf(':') != -1)
+ sb.append(locationURI);
+ else
+ sb.append(s).append(locationURI);
+ importStrings[i] = sb.toString();
+ }
+ return importStrings;
+ }
+
+ public String getWSDL(BusinessService bs, UDDIProxy proxy)
+ {
+ Vector bindingTemplateVector = bs.getBindingTemplates().getBindingTemplateVector();
+ if (bindingTemplateVector.size() > 0)
+ {
+ BindingTemplate bt = (BindingTemplate)bindingTemplateVector.get(0);
+ TModelInstanceDetails tModelDetails = bt.getTModelInstanceDetails();
+ if (tModelDetails != null)
+ {
+ Vector tModelInfoVector = tModelDetails.getTModelInstanceInfoVector();
+ if (tModelInfoVector.size() > 0)
+ {
+ TModelInstanceInfo tModelInfo = (TModelInstanceInfo)tModelInfoVector.get(0);
+ InstanceDetails details = tModelInfo.getInstanceDetails();
+ if (details != null)
+ {
+ OverviewDoc overviewDoc = details.getOverviewDoc();
+ if (overviewDoc != null)
+ return parse(overviewDoc.getOverviewURLString());
+ }
+ else if (proxy != null)
+ {
+ String tModelKey = tModelInfo.getTModelKey();
+ if (tModelKey != null)
+ {
+ try
+ {
+ TModelDetail t = proxy.get_tModelDetail(tModelKey);
+ if (t != null)
+ {
+ Vector tModelVector = t.getTModelVector();
+ if (tModelVector != null && tModelVector.size() > 0)
+ return getWSDL((TModel)tModelVector.get(0));
+ }
+ }
+ catch (UDDIException uddie)
+ {
+ }
+ catch (TransportException te)
+ {
+ }
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public String getWSDL(TModel tModel)
+ {
+ OverviewDoc overviewDoc = tModel.getOverviewDoc();
+ if (overviewDoc != null)
+ return parse(overviewDoc.getOverviewURLString());
+ else
+ return null;
+ }
+
+ private String parse(String s)
+ {
+ if (s != null && s.length() > 0)
+ {
+ int index = s.indexOf('#');
+ if (index != -1)
+ return s.substring(0, index);
+ }
+ return s;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/CharArrayWrapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/CharArrayWrapper.java
new file mode 100644
index 000000000..ff74f6717
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/CharArrayWrapper.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+import javax.servlet.http.*;
+
+import java.io.*;
+
+public class CharArrayWrapper extends HttpServletResponseWrapper
+{
+ private CharArrayWriter charArrayWriter_;
+
+ public CharArrayWrapper(HttpServletResponse response)
+ {
+ super(response);
+ charArrayWriter_ = new CharArrayWriter();
+ }
+
+ public PrintWriter getWriter()
+ {
+ return new PrintWriter(charArrayWriter_);
+ }
+
+ public String toString()
+ {
+ return charArrayWriter_.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java
new file mode 100644
index 000000000..e2af06ba3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+import javax.servlet.http.*;
+import java.util.*;
+
+public final class HTMLUtils
+{
+ public static final String UTF8_ENCODING = "UTF-8";
+ public static final String LINE_BREAK = "<br>";
+ public static final String LINE_SEPARATOR = System.getProperties().getProperty("line.separator");
+
+ /**
+ * Get the HTML tag for an image.
+ * @return String The HTML tag for this image.
+ * @param HttpServletResponse To encode the src attribute.
+ * @param String src attribute defining the path to the image file. This must include the context path.
+ * @param String Optional alt text to be displayed with the image. Set this to null to disable the attribute.
+ * @param String Optional width of the rendered image. Set this to null to disable the attribute.
+ * @param String Optional height of the rendered imag. Set this to null to disable the attribute.
+ * @param Hashtable Optional key-value pairs of additional strings to be added as-is to the tag. Set this to null to disable.
+ * @return String The image tag.
+ */
+ public static final String getHTMLImageTag(HttpServletResponse response,String src,String alt,String width,String height,Hashtable additionalAttributes)
+ {
+ StringBuffer tag = new StringBuffer("<img src=\"");
+ tag.append(response.encodeURL(src)).append('\"');
+ if (alt != null)
+ tag.append(" alt=\"").append(alt).append('\"');
+ if (width != null)
+ tag.append(" width=").append(width);
+ if (height != null)
+ tag.append(" height=").append(height);
+ tag.append(" border=0");
+ if (additionalAttributes != null)
+ {
+ Enumeration keys = additionalAttributes.keys();
+ while (keys.hasMoreElements())
+ {
+ String key = (String)keys.nextElement();
+ tag.append(' ').append(key).append("=\"").append((String)additionalAttributes.get(key)).append('\"');
+ }
+ }
+ tag.append('>');
+ return tag.toString();
+ }
+
+ /**
+ * Get the HTML tag for this link. The complete tag consists of the open tag <a> followed by a subelement and, finally, by an end tag </a>.
+ * @return String The HTML tag of the link.
+ * @param HttpServletResponse To encode the href attribute.
+ * @param String The href attribute of the link. This must include the context path.
+ * @param String target Optional target attribute for the link. Set this to null to disable the attribute.
+ * @param String Optional name for the link. Set this to null to disable the attribute.
+ * @param String The label which acts as the subelement. i.e. <a>label</a>.
+ * @param Hashtable Optional key-value pairs of additional string attributes to be added as-is to the open tag. Set this to null to disable.
+ */
+ public static final String getHTMLLinkTag(HttpServletResponse response,String href,String target,String name,String label,Hashtable additionalAttributes)
+ {
+ StringBuffer tag = new StringBuffer("<a href=\"");
+ tag.append(response.encodeURL(href)).append('\"');
+ if (target != null)
+ tag.append(" target=\"").append(target).append('\"');
+ if (name != null)
+ tag.append(" name=\"").append(name).append('\"');
+ if (additionalAttributes != null)
+ {
+ Enumeration keys = additionalAttributes.keys();
+ while (keys.hasMoreElements())
+ {
+ String key = (String)keys.nextElement();
+ tag.append(' ').append(key).append("=\"").append((String)additionalAttributes.get(key)).append('\"');
+ }
+ }
+ tag.append('>');
+ tag.append(label);
+ tag.append("</a>");
+ return tag.toString();
+ }
+
+ /**
+ * Get the HTML tag for a red asterist.
+ * @return String The HTML tag for the red asterisk.
+ */
+ public static final String redAsterisk()
+ {
+ return "<font color=\"#ff0000\">*</font>";
+ }
+
+ /**
+ * Get the Javascript mangled version of a given input String.
+ * @return String The Javascript mangled String.
+ */
+ public static final String JSMangle(String input)
+ {
+ if (input == null)
+ return "";
+
+ StringBuffer mangledOutput = new StringBuffer();
+ for (int i=0;i<input.length();i++)
+ {
+ char c = input.charAt(i);
+ switch (c)
+ {
+ case '\n':
+ mangledOutput.append("\\n");
+ break;
+ case '\r':
+ mangledOutput.append("\\r");
+ break;
+ case '\\':
+ case '\"':
+ case '\'':
+ mangledOutput.append('\\');
+ default:
+ mangledOutput.append(c);
+ }
+ }
+ return mangledOutput.toString();
+ }
+
+ private static final String LESS_THAN = "<";
+ private static final String LESS_THAN_HTML_ENTITY = "&lt;";
+ private static final String GREATER_THAN = ">";
+ private static final String GREATER_THAN_HTML_ENTITY = "&gt;";
+ private static final String SPACE = " ";
+ private static final String SPACE_HTML_ENTITY = "&nbsp;";
+ private static final String AMPERSAND = "&";
+ private static final String AMPERSAND_HTML_ENTITY = "&amp;";
+ private static final String QUOTATION = "\"";
+ private static final String QUOTATION_HTML_ENTITY = "&quot;";
+
+ /**
+ * Replace special characters with HTML entities representing these characters.
+ * @return String The converted String. Note: Order is important so that corrected entity references are not re-mangled.
+ */
+ public static final String charactersToHTMLEntities(String s) {
+ s = stringReplace(s, AMPERSAND, AMPERSAND_HTML_ENTITY);
+ s = stringReplace(s, LESS_THAN, LESS_THAN_HTML_ENTITY);
+ s = stringReplace(s, GREATER_THAN, GREATER_THAN_HTML_ENTITY);
+ s = stringReplace(s, SPACE, SPACE_HTML_ENTITY);
+ s = stringReplace(s, QUOTATION, QUOTATION_HTML_ENTITY);
+ return s;
+ }
+
+ /**
+ * Replace HTML character entities with their associated characters.
+ * @return String The converted String.
+ */
+ public static final String htmlEntitiesToCharacters(String s) {
+ s = stringReplace(s, LESS_THAN_HTML_ENTITY, LESS_THAN);
+ s = stringReplace(s, GREATER_THAN_HTML_ENTITY, GREATER_THAN);
+ s = stringReplace(s, SPACE_HTML_ENTITY, SPACE);
+ s = stringReplace(s, AMPERSAND_HTML_ENTITY, AMPERSAND);
+ s = stringReplace(s, QUOTATION_HTML_ENTITY, QUOTATION);
+ return s;
+ }
+
+ private static final String stringReplace(String s, String oldString, String newString) {
+ String sCopy = s;
+ int fromIndex = 0;
+ int oldStringIndex = sCopy.indexOf(oldString, fromIndex);
+ StringBuffer sb = new StringBuffer();
+ while (oldStringIndex != -1) {
+ sb.setLength(0);
+ sb.append(sCopy.substring(0, oldStringIndex));
+ sb.append(newString);
+ sb.append(sCopy.substring(oldStringIndex + oldString.length(), sCopy.length()));
+ sCopy = sb.toString();
+ fromIndex = oldStringIndex + newString.length();
+ oldStringIndex = sCopy.indexOf(oldString, fromIndex);
+ }
+ return sCopy;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataException.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataException.java
new file mode 100644
index 000000000..39008b18c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataException.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+public final class MultipartFormDataException extends Throwable
+{
+ /**
+ * Comment for <code>serialVersionUID</code>
+ */
+ private static final long serialVersionUID = 3257845472227110961L;
+
+public MultipartFormDataException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataParser.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataParser.java
new file mode 100644
index 000000000..d442218ec
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/MultipartFormDataParser.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * 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.util;
+
+import java.io.*;
+import java.util.*;
+
+import javax.servlet.http.*;
+
+public final class MultipartFormDataParser
+{
+ private Hashtable paramTable_;
+
+ private static final String HEADER_CONTENT_TYPE = "Content-Type";
+ private static final String HEADER_MULTIPART = "multipart";
+ private static final String HEADER_BOUNDARY = "boundary=";
+ private static final String HEADER_CONTENT_DISPOSITION = "Content-Disposition: form-data";
+ private static final String HEADER_NAME = "name=\"";
+
+ private static final byte PARSER_STATE_INITIAL = 0;
+ private static final byte PARSER_STATE_BOUNDARY = 1;
+ private static final byte PARSER_STATE_PARAMETER = 2;
+ private static final byte PARSER_STATE_BLANK = 3;
+ private static final byte PARSER_STATE_DATA = 4;
+
+ private static String parserStates[] = {"initial","boundary","parameter name","blank line","data"};
+
+ public MultipartFormDataParser()
+ {
+ }
+
+ public MultipartFormDataParser(Hashtable parameters)
+ {
+ paramTable_ = new Hashtable();
+ for (Iterator it = parameters.keySet().iterator(); it.hasNext();)
+ {
+ Object key = it.next();
+ Object value = parameters.get(key);
+ if (value instanceof List)
+ {
+ List list = (List)value;
+ for (Iterator it2 = list.iterator(); it2.hasNext();)
+ saveData(key.toString(), it2.next().toString());
+ }
+ else if (value.getClass().isArray())
+ {
+ Object[] array = (Object[])value;
+ for (int i = 0; i < array.length; i++)
+ saveData(key.toString(), array[i].toString());
+ }
+ else
+ {
+ saveData(key.toString(), value.toString());
+ }
+ }
+ }
+
+ /**
+ * Parse a multipart/form-data encoded post request with a given encoding.
+ * If the encoding is null, use the system default encoding. utf-8 is not a
+ * bad choice for the encoding.
+ */
+ public final void parseRequest(HttpServletRequest request,String encoding) throws MultipartFormDataException
+ {
+ // Content-Type header should have the form:
+ // multipart/form-data; boundary=...
+ //
+ // RFC2046 5.1.1 page 19, paragraph 2:
+ // The Content-Type field for multipart entities requires one parameter, "boundary" (no quotes)
+ String contentType = request.getHeader(HEADER_CONTENT_TYPE);
+ if (contentType == null || !contentType.startsWith(HEADER_MULTIPART) || contentType.indexOf(HEADER_BOUNDARY) == -1)
+ throw new MultipartFormDataException("Content-Type is not multipart/form-data");
+
+ // RFC2046 5.1.1 page 19, paragraph 4:
+ // The boundary value may be enclosed in double quotes. Strip these if they are present.
+ String boundary = contentType.substring(contentType.indexOf(HEADER_BOUNDARY)+HEADER_BOUNDARY.length(),contentType.length());
+ if (boundary.charAt(0) == '\"' && boundary.charAt(boundary.length()-1) == '\"')
+ boundary = boundary.substring(1,boundary.length()-1);
+
+ // RFC2046 5.1.1 page 19, paragraph 2:
+ // The boundary delimiter line is then defined as a line consisting entirely
+ // of two hyphen characters.
+ String delimiter = "--"+boundary;
+
+ if (paramTable_ == null)
+ paramTable_ = new Hashtable();
+ else
+ paramTable_.clear();
+
+ try
+ {
+ BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),encoding));
+ String line = null;
+ String parameterName = null;
+ StringBuffer parameterValue = new StringBuffer();
+ byte currentParserState = PARSER_STATE_INITIAL;
+ while ((line = br.readLine()) != null)
+ {
+ // Lines appear in the following sequence.
+ // 1) boundary indicating the start of a new parameter and end of a data segment.
+ // 2) Content-Disposition: form-data; name="..." - the name of a new parameter.
+ // 3) a blank line
+ // 4) data
+ //
+ // For each parameter, the sequence is repeated.
+ if (line.startsWith(delimiter))
+ {
+ byte[] expectedParserStates = {PARSER_STATE_INITIAL,PARSER_STATE_DATA};
+ if (isValidParserState(currentParserState,expectedParserStates))
+ {
+ // Save any current data and prepare for a new parameter name.
+ if (parameterName != null)
+ {
+ saveData(parameterName,parameterValue.toString());
+ parameterName = null;
+ parameterValue.setLength(0);
+ }
+ currentParserState = PARSER_STATE_BOUNDARY;
+ }
+ else
+ throw new MultipartFormDataException(getParserExceptionMessage(currentParserState,expectedParserStates));
+ }
+ else if (line.startsWith(HEADER_CONTENT_DISPOSITION))
+ {
+ byte[] expectedParserStates = {PARSER_STATE_BOUNDARY};
+ if (isValidParserState(currentParserState,expectedParserStates))
+ {
+ // Obtain the parameter name without the surrounding double quotes. Accounts for RFC 1867 too.
+ int parameterNameStartingPosition = line.indexOf(HEADER_NAME)+HEADER_NAME.length();
+ parameterName = line.substring(parameterNameStartingPosition,+parameterNameStartingPosition+line.substring(parameterNameStartingPosition).indexOf('\"'));
+ currentParserState = PARSER_STATE_PARAMETER;
+ }
+ }
+ else if (currentParserState == PARSER_STATE_PARAMETER)
+ {
+ // A blank line should follow the PARAMETER. Discard the line and move on.
+ currentParserState = PARSER_STATE_BLANK;
+ }
+ else
+ {
+ // Expect the line to contain data.
+ if (parameterValue.length() > 0)
+ parameterValue.append('\n');
+ parameterValue.append(line);
+ currentParserState = PARSER_STATE_DATA;
+ }
+ }
+ }
+ catch (Throwable t)
+ {
+ throw new MultipartFormDataException(t.getMessage());
+ }
+ //dumpParamTable();
+ }
+
+ /**
+ * Returns the value of a request parameter as a String, or null if the parameter does not exist.
+ * If the parameter has multiple values, only the first value is returned. Use getParameterValues()
+ * for parameters with multiple values.
+ */
+ public final String getParameter(String parameter) throws MultipartFormDataException
+ {
+ if (paramTable_ == null)
+ throw new MultipartFormDataException("Parser contains no parsed data");
+ Vector values = (Vector)paramTable_.get(parameter);
+ return ((values != null)?((String)values.elementAt(0)):null);
+ }
+
+ public final String[] getParameterValues(String parameter) throws MultipartFormDataException
+ {
+ if (paramTable_ == null)
+ throw new MultipartFormDataException("Parser contains no parsed data");
+ Vector valuesVector = (Vector)paramTable_.get(parameter);
+ if (valuesVector == null)
+ return null;
+ String[] valuesArray = new String[valuesVector.size()];
+ for (int i=0;i<valuesArray.length;i++)
+ valuesArray[i] = (String)valuesVector.elementAt(i);
+ return valuesArray;
+ }
+
+ public final String[] getParameterNames() throws MultipartFormDataException
+ {
+ if (paramTable_ == null)
+ throw new MultipartFormDataException("Parser contains no parsed data");
+
+ int size = paramTable_.size();
+ if (size == 0)
+ return null;
+ String[] names = new String[size];
+ Enumeration keys = paramTable_.keys();
+ for (int i=0;i<size;i++)
+ names[i] = (String)keys.nextElement();
+ return names;
+ }
+
+ private final void saveData(String parameterName,String parameterValue)
+ {
+ Vector values = (Vector)paramTable_.get(parameterName);
+ if (values == null)
+ values = new Vector();
+ values.addElement(parameterValue);
+ paramTable_.put(parameterName,values);
+ }
+
+ private final boolean isValidParserState(byte currentState,byte[] expectedStates)
+ {
+ boolean validity = false;
+ for (int i=0;i<expectedStates.length;i++)
+ {
+ if (currentState == expectedStates[i])
+ {
+ validity = true;
+ break;
+ }
+ }
+ return validity;
+ }
+
+ private final String getParserExceptionMessage(byte currentState,byte[] expectedStates)
+ {
+ StringBuffer msg = new StringBuffer("Parser state inconsistency!");
+ msg.append('\n');
+ msg.append("Current state : ").append(parserStates[currentState]).append('\n');
+ msg.append("Expected state(s): ");
+ for (int i=0;i<expectedStates.length;i++)
+ {
+ msg.append(parserStates[expectedStates[i]]);
+ if (i != expectedStates.length-1)
+ msg.append(", ");
+ }
+ msg.append('\n');
+ return msg.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java
new file mode 100644
index 000000000..085151316
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+import java.text.*;
+import java.util.Vector;
+
+public class QuickSort
+{
+ public static final void sort(Object[] a,int lo,int hi)
+ {
+ Object tmp;
+ int i = lo;
+ int j = hi;
+ Object x = a[(lo+hi)/2];
+ Collator collator = Collator.getInstance();
+
+ do
+ {
+ while (collator.compare(a[i].toString(),x.toString()) < 0) i++;
+ while (collator.compare(a[j].toString(),x.toString()) > 0) j--;
+ if (i <= j)
+ {
+ tmp = a[i];
+ a[i] = a[j];
+ a[j] = tmp;
+ i++;
+ j--;
+ }
+ } while (i <= j);
+
+ if (lo < j)
+ sort(a,lo,j);
+ if (i < hi)
+ sort(a,i,hi);
+ }
+
+ /*
+ * This method will use the same algorithm as above
+ * with the exception that any nulls will be attached
+ * at the end
+ */
+ public static final void sort(Vector v)
+ {
+ // do not sort if vector contains less than 2 elements
+ if (v.size() < 2)
+ return;
+
+ // pulls out the nulls
+ Vector nulls = new Vector();
+ for (int i = 0; i < v.size(); i++) {
+ Object obj = v.elementAt(i);
+ if (obj == null || obj.toString() == null) {
+ nulls.add(obj);
+ v.remove(i);
+ i--;
+ }
+ }
+
+ // sort the not null objects
+ Object[] objs = v.toArray();
+ // do not sort if array contains less than 2 objects
+ if (objs.length >= 2)
+ sort(objs, 0, objs.length-1);
+
+ // re-construct the vector from the sorted objects, then the nulls
+ v.clear();
+ for (int j = 0; j < objs.length; j++) {
+ v.add(objs[j]);
+ }
+ v.addAll(nulls);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/TrimFilter.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/TrimFilter.java
new file mode 100644
index 000000000..3f3fc03d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/TrimFilter.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+import javax.servlet.http.*;
+import javax.servlet.*;
+
+import java.io.*;
+
+public class TrimFilter implements Filter
+{
+
+ /* (non-Javadoc)
+ * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
+ */
+ public void init(FilterConfig arg0) throws ServletException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
+ */
+ public void doFilter(ServletRequest req, ServletResponse resp, FilterChain fc) throws IOException, ServletException
+ {
+ // TODO Auto-generated method stub
+ CharArrayWrapper responseWrapper = new CharArrayWrapper((HttpServletResponse)resp);
+ // Hack for Tomcat performance problem with filters.
+ OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(),HTMLUtils.UTF8_ENCODING);
+ fc.doFilter(req,responseWrapper);
+ String responseString = responseWrapper.toString();
+ osw.write(responseString.trim());
+ osw.close();
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.Filter#destroy()
+ */
+ public void destroy()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/URLUtils.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/URLUtils.java
new file mode 100644
index 000000000..b7070b348
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/URLUtils.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 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.wst.ws.internal.explorer.platform.util;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+
+/**
+ * This class contains utility methods for managing URLs
+ * as used by the Web Services Explorer Web application.
+ * @author cbrealey@ca.ibm.com
+ */
+public final class URLUtils
+{
+ /**
+ * Objects of this class should not be constructed.
+ */
+ private URLUtils ()
+ {
+ }
+
+ /**
+ * UTF-8
+ */
+ public static final String UTF8 = "UTF-8";
+
+ /**
+ * Equivalent to {@link #encode(String,String)}
+ * with second parameter set to the "UTF-8" encoding.
+ * @param s The string to encode.
+ * @return The encoded string.
+ */
+ public static String encode(String s)
+ {
+ return encode(s,UTF8);
+ }
+
+ /**
+ * Equivalent to {@link URLEncoder#encode(String,String)},
+ * only throws an unchecked {@link RuntimeException} wrapped
+ * around an {@link UnsupportedEncodingException} instead of
+ * an {@link UnsupportedEncodingException}.
+ * @param s The string to encode.
+ * @param enc The encoding to use.
+ * @return The encoded string.
+ */
+ public static String encode(String s, String enc)
+ {
+ try
+ {
+ return URLEncoder.encode(s,enc);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // TODO: MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8
+ throw new RuntimeException("%MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8",e);
+ }
+ }
+
+ /**
+ * Equivalent to {@link #decode(String,String)}
+ * with second parameter set to the "UTF-8" encoding.
+ * @param s The string to decode.
+ * @return The decoded string.
+ */
+ public static String decode(String s)
+ {
+ return decode(s,UTF8);
+ }
+
+ /**
+ * Equivalent to {@link URLEncoder#decode(String,String)},
+ * only throws an unchecked {@link RuntimeException} wrapped
+ * around an {@link UnsupportedEncodingException} instead of
+ * an {@link UnsupportedEncodingException}.
+ * @param s The string to decode.
+ * @param enc The encoding to use.
+ * @return The decoded string.
+ */
+ public static String decode(String s, String enc)
+ {
+ try
+ {
+ return URLDecoder.decode(s,enc);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // TODO: MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8
+ throw new RuntimeException("%MSG_BROKEN_VM_DOES_NOT_SUPPORT_UTF-8",e);
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/Validator.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/Validator.java
new file mode 100644
index 000000000..6a6de221f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/Validator.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.util;
+
+public class Validator
+{
+ public static final boolean validateString(String input)
+ {
+ return ((input != null) && (input.trim().length() > 0));
+ }
+
+ public static final boolean validateURL(String input)
+ {
+ return ((input != null) && (input.indexOf("://") != -1));
+ }
+
+ public static final boolean validateInteger(String input)
+ {
+ try
+ {
+ Integer.parseInt(input);
+ return true;
+ }
+ catch (NumberFormatException e)
+ {
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/XMLUtils.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/XMLUtils.java
new file mode 100644
index 000000000..bcbe4d487
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/XMLUtils.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * 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.util;
+
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+import javax.xml.parsers.*;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import java.io.*;
+
+public final class XMLUtils
+{
+ /**
+ * Serialize an XML Element into a String.
+ * @param e Element to be serialized.
+ * @param omitXMLDeclaration boolean representing whether or not to omit the XML declaration.
+ * @return String representation of the XML document fragment.
+ */
+ public static final String serialize(Element e,boolean omitXMLDeclaration)
+ {
+ if (e != null)
+ {
+ try
+ {
+ DOMSource domSource = new DOMSource(e);
+ Transformer serializer = TransformerFactory.newInstance().newTransformer();
+ serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, ((omitXMLDeclaration) ? "yes" : "no"));
+ serializer.setOutputProperty(OutputKeys.INDENT, "yes");
+ serializer.setOutputProperty(OutputKeys.ENCODING, HTMLUtils.UTF8_ENCODING);
+ serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ serializer.transform(domSource, new StreamResult(baos));
+ baos.close();
+ return new String(baos.toByteArray(), HTMLUtils.UTF8_ENCODING);
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Serialize an XML Element into a String.
+ * @param df DocumentFragment to be serialized.
+ * @param omitXMLDeclaration boolean representing whether or not to omit the XML declaration.
+ * @return String representation of the XML document fragment.
+ */
+ public static final String serialize(DocumentFragment df,boolean omitXMLDeclaration)
+ {
+ if (df != null)
+ {
+ try
+ {
+ DOMSource domSource = new DOMSource(df);
+ Transformer serializer = TransformerFactory.newInstance().newTransformer();
+ serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, ((omitXMLDeclaration) ? "yes" : "no"));
+ serializer.setOutputProperty(OutputKeys.INDENT, "yes");
+ serializer.setOutputProperty(OutputKeys.ENCODING, HTMLUtils.UTF8_ENCODING);
+ serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ serializer.transform(domSource, new StreamResult(baos));
+ baos.close();
+ return new String(baos.toByteArray(), HTMLUtils.UTF8_ENCODING);
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Create a new XML Document.
+ * @param docBuilder DocumentBuilder. Setting this to null will create a new DocumentBuilder.
+ * @return Document
+ */
+ public static final Document createNewDocument(DocumentBuilder docBuilder) throws ParserConfigurationException
+ {
+ if (docBuilder == null)
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(false);
+ factory.setValidating(false);
+ docBuilder = factory.newDocumentBuilder();
+ }
+ Document doc = docBuilder.newDocument();
+ return doc;
+ }
+
+ /**
+ * Convert the String representation of an Element into an Element
+ * @param String representation of an Element.
+ * @return Element
+ */
+ public static Element stringToElement(String s) throws ParserConfigurationException, SAXException, UnsupportedEncodingException, IOException {
+ return stringToElement(s, false);
+ }
+
+ /**
+ * Convert the String representation of an Element into an Element
+ * @param String representation of an Element.
+ * @param boolean set whether the return Element should be namespace aware.
+ * @return Element
+ */
+ public static Element stringToElement(String s, boolean namespaceAware) throws ParserConfigurationException, SAXException, UnsupportedEncodingException, IOException
+ {
+ return byteArrayToElement(s.getBytes(HTMLUtils.UTF8_ENCODING), namespaceAware);
+ }
+
+ /**
+ * Convert the byte array representation of an Element into an Element
+ * @param byte[] representation of an Element.
+ * @param boolean set whether the return Element should be namespace aware.
+ * @return Element
+ */
+ public static Element byteArrayToElement(byte[] b, boolean namespaceAware) throws ParserConfigurationException, SAXException, UnsupportedEncodingException, IOException
+ {
+ DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+ docBuilderFactory.setNamespaceAware(namespaceAware);
+ docBuilderFactory.setValidating(false);
+ DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
+ Document doc = docBuilder.parse(new ByteArrayInputStream(b));
+ return doc.getDocumentElement();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ClearWSDLAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ClearWSDLAction.java
new file mode 100644
index 000000000..4c16789d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ClearWSDLAction.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ClearNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLMainNode;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLNode;
+
+import javax.servlet.http.*;
+
+public class ClearWSDLAction extends ClearNodeAction {
+
+ public ClearWSDLAction(Controller controller) {
+ super(controller, controller.getWSDLPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID) {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/ClearWSDLActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ return actionLink.toString();
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request) {
+ String nodeIDString = request.getParameter(ActionInputs.NODEID);
+ int nodeID;
+ try {
+ nodeID = Integer.parseInt(nodeIDString);
+ }
+ catch (NumberFormatException nfe) {
+ nodeID = nodeManager_.getSelectedNodeId();
+ }
+ boolean paramValid = false;
+ Node node = nodeManager_.getNode(nodeID);
+ if (node instanceof WSDLMainNode)
+ paramValid = true;
+ else if (node instanceof WSDLNode)
+ paramValid = true;
+ else {
+ while (node != null && !(node instanceof WSDLMainNode)) {
+ node = node.getParent();
+ if (node instanceof WSDLNode) {
+ nodeID = node.getNodeId();
+ paramValid = true;
+ break;
+ }
+ }
+ }
+ propertyTable_.put(ActionInputs.NODEID, String.valueOf(nodeID));
+ return paramValid;
+ }
+
+ public boolean run() {
+ if (super.run()) {
+ nodeManager_.setSelectedNodeId(nodeManager_.getRootNode().getNodeId());
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public String getTreeContentVar() {
+ return "wsdlNavigatorContent";
+ }
+
+ public String getTreeContentPage() {
+ return "wsdl/wsdl_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar() {
+ return "wsdlPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage() {
+ return "wsdl/wsdl_properties_container.jsp";
+ }
+
+ public String getStatusContentVar() {
+ return "wsdlStatusContent";
+ }
+
+ public String getStatusContentPage() {
+ return "wsdl/wsdl_status_content.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/CreateInstanceAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/CreateInstanceAction.java
new file mode 100644
index 000000000..abca81e9d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/CreateInstanceAction.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLOperationElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDMapFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.InvokeWSDLOperationTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import javax.wsdl.Part;
+import java.util.Iterator;
+
+public class CreateInstanceAction extends WSDLPropertiesFormAction
+{
+ public CreateInstanceAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ super.processParsedResults(parser);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ boolean resultsValid = true;
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ if (!frag.processParameterValues(parser))
+ resultsValid = false;
+ }
+ String fragmentID = parser.getParameter(FragmentConstants.FRAGMENT_ID);
+ if (fragmentID != null && fragmentID.length() > 0)
+ propertyTable_.put(FragmentConstants.FRAGMENT_ID, fragmentID);
+ else
+ {
+ propertyTable_.remove(FragmentConstants.FRAGMENT_ID);
+ resultsValid = false;
+ }
+ String nameAnchorID = parser.getParameter(FragmentConstants.NAME_ANCHOR_ID);
+ invokeWSDLOperationTool.setFragmentNameAnchorID(nameAnchorID);
+ return resultsValid;
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ return (FormTool)wsdlPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public boolean run()
+ {
+ String fragmentID = (String)propertyTable_.get(FragmentConstants.FRAGMENT_ID);
+ if (fragmentID != null && fragmentID.length() > 0)
+ {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ IXSDFragment frag = operElement.getFragmentByID(fragmentID);
+ if ((frag instanceof IXSDMapFragment) && ((IXSDMapFragment)frag).createInstance() != null)
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpGetOperationFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpGetOperationFormAction.java
new file mode 100644
index 000000000..d069e4312
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpGetOperationFormAction.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.actions;
+
+import java.io.IOException;
+import java.net.URLConnection;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.MessageQueue;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+import org.eclipse.wst.ws.internal.parser.discovery.NetUtils;
+
+public class InvokeWSDLHttpGetOperationFormAction extends InvokeWSDLHttpOperationFormAction
+{
+ public InvokeWSDLHttpGetOperationFormAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean run()
+ {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ StringBuffer endPoint = new StringBuffer(getEndPoint());
+ endPoint.append('?');
+ addParameters(endPoint);
+ String endPointString = endPoint.toString();
+ boolean result = false;
+ try
+ {
+ URLConnection conn = NetUtils.getURLConnection(endPointString);
+ if (conn != null)
+ {
+ recordHttpResponse(conn,messageQueue);
+ wsdlPerspective.setOperationNode(getSelectedNavigatorNode());
+ result = true;
+ }
+ else
+ throw new IOException(wsdlPerspective.getMessage("MSG_ERROR_UNABLE_TO_CONNECT",endPointString));
+ }
+ catch (IOException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"IOException",e);
+ }
+ return result;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpOperationFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpOperationFormAction.java
new file mode 100644
index 000000000..d85832a19
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpOperationFormAction.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+
+import javax.wsdl.*;
+
+import java.util.*;
+import java.net.*;
+import java.io.*;
+
+public abstract class InvokeWSDLHttpOperationFormAction extends WSDLPropertiesFormAction
+{
+ private static final String CONTENT_TYPE_CHARSETEQ = "charset=";
+
+ public InvokeWSDLHttpOperationFormAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ super.processParsedResults(parser);
+ String endPoint = parser.getParameter(WSDLActionInputs.END_POINT);
+ Node selectedNode = getSelectedNavigatorNode();
+ InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ invokeWSDLOperationTool.setEndPoint(endPoint);
+ WSDLOperationElement operElement = (WSDLOperationElement)(selectedNode.getTreeElement());
+ propertyTable_.put(WSDLActionInputs.OPERATION_ELEMENT,operElement);
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ boolean resultsValid = true;
+ while (it.hasNext()) {
+ Part part = (Part)it.next();
+ IFragment frag = operElement.getFragment(part);
+ if (!frag.processParameterValues(parser))
+ resultsValid = false;
+ }
+ return resultsValid;
+ }
+
+ protected String getEndPoint()
+ {
+ StringBuffer endPoint = new StringBuffer((String)propertyTable_.get(WSDLActionInputs.END_POINT));
+ WSDLOperationElement operElement = (WSDLOperationElement)propertyTable_.get(WSDLActionInputs.OPERATION_ELEMENT);
+ if (endPoint.charAt(endPoint.length()-1) != '/')
+ endPoint.append('/');
+ endPoint.append(operElement.getName());
+ return endPoint.toString();
+ }
+
+ protected void addParameters(StringBuffer buffer)
+ {
+ WSDLOperationElement operElement = (WSDLOperationElement)propertyTable_.get(WSDLActionInputs.OPERATION_ELEMENT);
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ buffer.append(HTTPUtil.genURLEncodedParameters(frag));
+ if (it.hasNext())
+ buffer.append('&');
+ }
+ }
+
+ protected void recordHttpResponse(URLConnection conn,MessageQueue messageQueue) throws IOException
+ {
+ BufferedReader br = null;
+ try
+ {
+ InputStreamReader in = null;
+ String contentType = conn.getContentType();
+ if (contentType != null)
+ {
+ int charsetEqPos = contentType.indexOf(CONTENT_TYPE_CHARSETEQ);
+ if (charsetEqPos != -1)
+ in = new InputStreamReader(conn.getInputStream(),contentType.substring(charsetEqPos+CONTENT_TYPE_CHARSETEQ.length()));
+ }
+ if (in == null)
+ in = new InputStreamReader(conn.getInputStream());
+ br = new BufferedReader(in);
+ String s;
+ while ((s = br.readLine()) != null)
+ messageQueue.addMessage(s);
+ br.close();
+ br = null;
+ }
+ catch (IOException e)
+ {
+ if (br != null)
+ br.close();
+ throw e;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpPostOperationFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpPostOperationFormAction.java
new file mode 100644
index 000000000..981c4307f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLHttpPostOperationFormAction.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.actions;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.URLConnection;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.MessageQueue;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+import org.eclipse.wst.ws.internal.parser.discovery.NetUtils;
+
+public class InvokeWSDLHttpPostOperationFormAction extends InvokeWSDLHttpOperationFormAction
+{
+
+ public InvokeWSDLHttpPostOperationFormAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean run()
+ {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ boolean result = false;
+ String endPointString = getEndPoint();
+ URLConnection conn = NetUtils.getURLConnection(endPointString);
+ if (conn != null)
+ {
+ StringBuffer parameters = new StringBuffer();
+ addParameters(parameters);
+ conn.setDoOutput(true);
+ PrintWriter out = null;
+ try
+ {
+ out = new PrintWriter(conn.getOutputStream());
+ out.print(parameters);
+ out.close();
+ out = null;
+ recordHttpResponse(conn,messageQueue);
+ wsdlPerspective.setOperationNode(getSelectedNavigatorNode());
+ result = true;
+ }
+ catch (IOException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"IOException",e);
+ }
+ finally
+ {
+ if (out != null)
+ out.close();
+ }
+ }
+ else
+ handleUnexpectedException(wsdlPerspective,messageQueue,"Exception",new IOException(wsdlPerspective.getMessage("MSG_ERROR_UNABLE_TO_CONNECT",endPointString)));
+ return result;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationAction.java
new file mode 100644
index 000000000..29397e179
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationAction.java
@@ -0,0 +1,270 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPException;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPTransport;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.util.*;
+import org.eclipse.wst.ws.internal.parser.discovery.*;
+
+import org.apache.axis.Constants;
+
+import org.w3c.dom.*;
+
+import javax.xml.parsers.*;
+import javax.wsdl.*;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.soap.SOAPBody;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.*;
+import java.io.*;
+
+public abstract class InvokeWSDLSOAPOperationAction extends WSDLPropertiesFormAction
+{
+ public InvokeWSDLSOAPOperationAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ super.processParsedResults(parser);
+ String endPoint = parser.getParameter(WSDLActionInputs.END_POINT);
+ InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(getSelectedNavigatorNode().getCurrentToolManager().getSelectedTool());
+ invokeWSDLOperationTool.setEndPoint(endPoint);
+ return true;
+ }
+
+ protected final void addRPCWrapper(Vector bodyEntries,WSDLElement wsdlElement,WSDLOperationElement operElement,Hashtable soapEnvelopeNamespaceTable) throws ParserConfigurationException
+ {
+ // Must be RPC style.
+ String encodingNamespaceURI = null;
+ /*
+ * WS-I: In a rpc-literal SOAP binding, the serialized child element of the
+ * soap:Body element consists of a wrapper element, whose namespace is the value
+ * of the namespace attribute of the soapbind:body element and whose local name is
+ * either the name of the operation or the name of the operation suffixed
+ * with "Response". The namespace attribute is required, as opposed to being
+ * optional, to ensure that the children of the soap:Body element are namespace-
+ * qualified.
+ */
+ BindingOperation bindingOperation = operElement.getBindingOperation();
+ if (bindingOperation != null)
+ {
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ if (bindingInput != null)
+ {
+ List extElements = bindingInput.getExtensibilityElements();
+ for (Iterator it = extElements.iterator(); it.hasNext();)
+ {
+ ExtensibilityElement extElement = (ExtensibilityElement)it.next();
+ if (extElement instanceof SOAPBody)
+ {
+ encodingNamespaceURI = ((SOAPBody)extElement).getNamespaceURI();
+ break;
+ }
+ }
+ }
+ }
+ // If the namespace of the soapbind:body element is not set, get it from the operation element
+ if (encodingNamespaceURI == null)
+ encodingNamespaceURI = operElement.getEncodingNamespace();
+ // If the namespace of the operation element is not set, get it from the definition element
+ if (encodingNamespaceURI == null)
+ {
+ Definition definition = wsdlElement.getDefinition();
+ encodingNamespaceURI = definition.getTargetNamespace();
+ }
+ // Generate an RPC style wrapper element.
+ Document doc = XMLUtils.createNewDocument(null);
+ String encodingStyle = (operElement.isUseLiteral() ? null : operElement.getEncodingStyle());
+ Element wrapperElement = SoapHelper.createRPCWrapperElement(doc,soapEnvelopeNamespaceTable,encodingNamespaceURI,operElement.getOperation().getName(),encodingStyle);
+ for (int i=0;i<bodyEntries.size();i++)
+ wrapperElement.appendChild(doc.importNode((Element)bodyEntries.elementAt(i),true));
+ bodyEntries.removeAllElements();
+ bodyEntries.addElement(wrapperElement);
+ }
+
+ /**
+ * Generate a Vector of the elements inside the Soap Body.
+ * @param soapEnvelopeNamespaceTable - Hashtable containing a map of the namespace URIs to prefixes.
+ * @param operElement - WSDLOperationElement encapsulating the WSDL operation.
+ */
+ protected Vector getBodyEntries(Hashtable soapEnvelopeNamespaceTable,WSDLOperationElement operElement,WSDLBindingElement bindingElement,WSDLServiceElement serviceElement) throws ParserConfigurationException,Exception
+ {
+ Vector bodyEntries = new Vector();
+ boolean isUseLiteral = operElement.isUseLiteral();
+ String encodingStyle = operElement.getEncodingStyle();
+ boolean addEncodingStyle = (!isUseLiteral && !Constants.URI_SOAP11_ENC.equals(encodingStyle));
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = (IXSDFragment)operElement.getFragment(part);
+ XSDToFragmentConfiguration config = frag.getXSDToFragmentConfiguration();
+ Element[] instanceDocuments = frag.genInstanceDocumentsFromParameterValues(!isUseLiteral,soapEnvelopeNamespaceTable, XMLUtils.createNewDocument(null));
+ for (int j=0;j<instanceDocuments.length;j++)
+ {
+ if (instanceDocuments[j] == null)
+ continue;
+ if (addEncodingStyle)
+ instanceDocuments[j].setAttribute("soapenv:encodingStyle",encodingStyle);
+ bodyEntries.addElement(instanceDocuments[j]);
+ }
+ }
+
+ if (!operElement.isDocumentStyle())
+ {
+ try
+ {
+ addRPCWrapper(bodyEntries,(WSDLElement)serviceElement.getParentElement(),operElement,soapEnvelopeNamespaceTable);
+ }
+ catch (ParserConfigurationException e)
+ {
+ throw e;
+ }
+ }
+ return bodyEntries;
+ }
+
+ protected Element getSOAPEnvelope(Hashtable soapEnvelopeNamespaceTable, Vector bodyEntries) throws ParserConfigurationException
+ {
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document doc = XMLUtils.createNewDocument(docBuilder);
+ Element soapEnvelopeElement = SoapHelper.createSoapEnvelopeElement(doc,soapEnvelopeNamespaceTable);
+ Element soapBodyElement = SoapHelper.createSoapBodyElement(doc);
+ for (int i=0;i<bodyEntries.size();i++)
+ soapBodyElement.appendChild(doc.importNode((Element)bodyEntries.elementAt(i),true));
+ soapEnvelopeElement.appendChild(soapBodyElement);
+ return soapEnvelopeElement;
+ }
+
+ private final void recordSoapRequest(SOAPMessageQueue soapRequestQueue,Hashtable soapEnvelopeNamespaceTable,Element soapEnvelope) throws ParserConfigurationException,IOException
+ {
+ soapRequestQueue.clear();
+ soapRequestQueue.addMessage(XMLUtils.serialize(soapEnvelope,false));
+ }
+
+ private final void recordSOAPResponse(SOAPMessageQueue soapResponseQueue,BufferedReader responseReader) throws IOException
+ {
+ soapResponseQueue.clear();
+ if (responseReader != null)
+ {
+ String line = null;
+ while ((line = responseReader.readLine()) != null)
+ soapResponseQueue.addMessage(line);
+ responseReader.close();
+ }
+ }
+
+ public boolean run()
+ {
+ String soapAddressLocation = (String)propertyTable_.get(WSDLActionInputs.END_POINT);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ WSDLOperationElement operElement = (WSDLOperationElement)getSelectedNavigatorNode().getTreeElement();
+ WSDLBindingElement bindingElement = (WSDLBindingElement)operElement.getParentElement();
+ WSDLServiceElement serviceElement = (WSDLServiceElement)bindingElement.getParentElement();
+ operElement.setPropertyAsObject(WSDLActionInputs.SOAP_RESPONSE_CACHED, new Boolean(false));
+ try
+ {
+ // Generate the SOAP envelope and its children. We need to create a DOM element version to display and the object version to execute.
+ // <SOAP-ENV:Envelope
+ // xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ // xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ // xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ // ...
+ Hashtable soapEnvelopeNamespaceTable = new Hashtable();
+ SoapHelper.addDefaultSoapEnvelopeNamespaces(soapEnvelopeNamespaceTable);
+ Vector bodyEntries = getBodyEntries(soapEnvelopeNamespaceTable,operElement,bindingElement,serviceElement);
+ Element soapEnvelope = getSOAPEnvelope(soapEnvelopeNamespaceTable, bodyEntries);
+ recordSoapRequest(wsdlPerspective.getSOAPRequestQueue(),soapEnvelopeNamespaceTable,soapEnvelope);
+
+ // Execute the SOAP operation.
+ if (soapAddressLocation != null)
+ {
+ // Send the message and record the SOAP Response Envelope.
+ HTTPTransport transport = createTransport(bindingElement, soapAddressLocation);
+ transport.send(NetUtils.createURL(soapAddressLocation),operElement.getSoapAction(),XMLUtils.serialize(soapEnvelope, true));
+ recordSOAPResponse(wsdlPerspective.getSOAPResponseQueue(),transport.receive());
+ wsdlPerspective.setOperationNode(getSelectedNavigatorNode());
+ return true;
+ }
+ throw new IOException(wsdlPerspective.getMessage("MSG_ERROR_UNABLE_TO_CONNECT",soapAddressLocation));
+ }
+ catch (ParserConfigurationException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"ParserConfigurationException",e);
+ }
+ catch (IOException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"IOException",e);
+ }
+ catch (HTTPException httpe)
+ {
+ throwHTTPException(bindingElement, soapAddressLocation, httpe);
+ }
+ catch (Exception e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"Exception",e);
+ }
+ return false;
+ }
+
+ private void throwHTTPException(WSDLBindingElement bindingElement, String endpointString, HTTPException httpException) throws HTTPException
+ {
+ if (httpException.getStatusCode() == HttpServletResponse.SC_UNAUTHORIZED)
+ {
+ Endpoint endpoint = bindingElement.getEndpoint(endpointString);
+ if (endpoint != null)
+ {
+ endpoint.setRequireHTTPBasicAuth(true);
+ endpoint.setHttpBasicAuthUsername(null);
+ endpoint.setHttpBasicAuthPassword(null);
+ }
+ }
+ throw httpException;
+ }
+
+ private HTTPTransport createTransport(WSDLBindingElement bindingElement, String endpointString)
+ {
+ HTTPTransport transport = new HTTPTransport();
+ Endpoint endpoint = bindingElement.getEndpoint(endpointString);
+ if (endpoint != null)
+ {
+ if (endpoint.isRequireHTTPBasicAuth())
+ {
+ String httpBasicAuthUsername = endpoint.getHttpBasicAuthUsername();
+ String httpBasicAuthPassword = endpoint.getHttpBasicAuthPassword();
+ if (httpBasicAuthUsername == null || httpBasicAuthPassword == null)
+ {
+ httpBasicAuthUsername = (String)propertyTable_.get(WSDLActionInputs.HTTP_BASIC_AUTH_USERNAME);
+ httpBasicAuthPassword = (String)propertyTable_.get(WSDLActionInputs.HTTP_BASIC_AUTH_PASSWORD);
+ endpoint.setHttpBasicAuthUsername(httpBasicAuthUsername);
+ endpoint.setHttpBasicAuthPassword(httpBasicAuthPassword);
+ }
+ if (httpBasicAuthUsername != null && httpBasicAuthPassword != null)
+ {
+ transport.setHttpBasicAuthUsername(httpBasicAuthUsername);
+ transport.setHttpBasicAuthPassword(httpBasicAuthPassword);
+ }
+ }
+ }
+ return transport;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationFormAction.java
new file mode 100644
index 000000000..db7653225
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationFormAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.transformer.FragmentTransformer;
+
+import javax.wsdl.*;
+import java.util.*;
+
+public class InvokeWSDLSOAPOperationFormAction extends InvokeWSDLSOAPOperationAction
+{
+ public InvokeWSDLSOAPOperationFormAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ boolean resultsValid = true;
+ super.processParsedResults(parser);
+ String sourceContent = parser.getParameter(FragmentConstants.SOURCE_CONTENT);
+ if (sourceContent == null)
+ {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ WSDLOperationElement operElement = (WSDLOperationElement) getSelectedNavigatorNode().getTreeElement();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part) it.next();
+ IFragment frag = operElement.getFragment(part);
+ if (!frag.processParameterValues(parser))
+ {
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_ERROR_VALIDATING_PARAMETER", part.getName()));
+ resultsValid = false;
+ }
+ }
+ }
+ return resultsValid;
+ }
+
+ 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 FragmentTransformer(controller_);
+ return transformers;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationSourceAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationSourceAction.java
new file mode 100644
index 000000000..76a6d9ae4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/InvokeWSDLSOAPOperationSourceAction.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.util.*;
+
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+import javax.xml.parsers.*;
+import javax.wsdl.*;
+
+import java.util.*;
+import java.io.*;
+
+public class InvokeWSDLSOAPOperationSourceAction extends InvokeWSDLSOAPOperationAction
+{
+ private boolean newFileSelected_;
+ private boolean saveAsSelected_;
+ private static final String DUMMY_WRAPPER_START_TAG = "<dummyWrapper>";
+ private static final String DUMMY_WRAPPER_END_TAG = "</dummyWrapper>";
+
+ public InvokeWSDLSOAPOperationSourceAction(Controller controller)
+ {
+ super(controller);
+ newFileSelected_ = false;
+ saveAsSelected_ = false;
+ }
+
+ private final void fragmentize(StringBuffer fileContents) throws ParserConfigurationException,SAXException,UnsupportedEncodingException,IOException
+ {
+ fileContents.insert(0,DUMMY_WRAPPER_START_TAG).append(DUMMY_WRAPPER_END_TAG);
+ Element dummyWrapperElement = XMLUtils.stringToElement(fileContents.toString());
+ Vector partElements = new Vector();
+ NodeList partNodes = dummyWrapperElement.getChildNodes();
+ for (int i=0;i<partNodes.getLength();i++)
+ {
+ org.w3c.dom.Node partNode = partNodes.item(i);
+ if (partNode instanceof Element)
+ partElements.addElement(partNode);
+ }
+ Element[] elementArray = new Element[partElements.size()];
+ partElements.copyInto(elementArray);
+ WSDLOperationElement operElement = (WSDLOperationElement)(getSelectedNavigatorNode().getTreeElement());
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment fragment = operElement.getFragment(part);
+ fragment.setParameterValuesFromInstanceDocuments(elementArray);
+ }
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ super.processParsedResults(parser);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ WSDLOperationElement operElement = (WSDLOperationElement)getSelectedNavigatorNode().getTreeElement();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ newFileSelected_ = false;
+ saveAsSelected_ = false;
+ /* try and catch is needed if we are doing fragmentization.
+ try
+ {
+ */
+ String submissionAction = parser.getParameter(WSDLActionInputs.SUBMISSION_ACTION);
+ String sourceContents = parser.getParameter(FragmentConstants.SOURCE_CONTENT);
+ if (sourceContents != null)
+ operElement.setPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT,sourceContents);
+ if (WSDLActionInputs.SUBMISSION_ACTION_BROWSE_FILE.equals(submissionAction))
+ {
+ newFileSelected_ = true;
+ String fileContents = parser.getParameter(WSDLActionInputs.SELECTED_FILE);
+ if (fileContents != null)
+ operElement.setPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT,fileContents);
+ }
+ else
+ {
+ if (WSDLActionInputs.SUBMISSION_ACTION_SAVE_AS.equals(submissionAction))
+ {
+ // Save As... action
+ saveAsSelected_ = true;
+ }
+ else
+ {
+ // Fragmentize on Go action.
+ // fragmentize(new StringBuffer(sourceContents));
+ String[] nsDeclarations = parser.getParameterValues(FragmentConstants.SOURCE_CONTENT_NAMESPACE);
+ if (nsDeclarations != null)
+ operElement.setPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT_NAMESPACE,nsDeclarations);
+ }
+ }
+ return true;
+ /*
+ }
+ catch (ParserConfigurationException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"ParserConfigurationException",e);
+ }
+ catch (SAXException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"SAXException",e);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"UnsupportedEncodingException",e);
+ }
+ catch (IOException e)
+ {
+ handleUnexpectedException(wsdlPerspective,messageQueue,"IOException",e);
+ }
+ return false;
+ */
+ }
+
+ /**
+ * Generate a Vector of the elements inside the Soap Body.
+ * @param soapEnvelopeNamespaceTable - Hashtable containing a map of the namespace URIs to prefixes.
+ * @param operElement - WSDLOperationElement encapsulating the WSDL operation.
+ */
+ protected Vector getBodyEntries(Hashtable soapEnvelopeNamespaceTable,WSDLOperationElement operElement,WSDLBindingElement bindingElement,WSDLServiceElement serviceElement) throws ParserConfigurationException,Exception
+ {
+ Vector bodyEntries = new Vector();
+ String[] nsDeclarations = (String[])operElement.getPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT_NAMESPACE);
+ for (int i = 0; i < nsDeclarations.length; i++)
+ {
+ String[] prefix_ns = SoapHelper.decodeNamespaceDeclaration(nsDeclarations[i]);
+ if (!soapEnvelopeNamespaceTable.contains(prefix_ns[1]))
+ soapEnvelopeNamespaceTable.put(prefix_ns[1], prefix_ns[0]);
+ }
+ StringBuffer sourceContent = new StringBuffer(operElement.getPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT));
+ sourceContent.insert(0,DUMMY_WRAPPER_START_TAG).append(DUMMY_WRAPPER_END_TAG);
+ Element dummyWrapperElement = XMLUtils.stringToElement(sourceContent.toString());
+ NodeList nl = dummyWrapperElement.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ if (nl.item(i) instanceof Element)
+ bodyEntries.add(nl.item(i));
+ }
+ if (!operElement.isDocumentStyle())
+ {
+ try
+ {
+ addRPCWrapper(bodyEntries,(WSDLElement)serviceElement.getParentElement(),operElement,soapEnvelopeNamespaceTable);
+ }
+ catch (ParserConfigurationException e)
+ {
+ throw e;
+ }
+ }
+ return bodyEntries;
+ }
+
+ public final boolean wasNewFileSelected()
+ {
+ return newFileSelected_;
+ }
+
+ public final boolean wasSaveAsSelected()
+ {
+ return saveAsSelected_;
+ }
+
+ public final String getDefaultSaveAsFileName()
+ {
+ WSDLOperationElement operElement = (WSDLOperationElement)(getSelectedNavigatorNode().getTreeElement());
+ return (new StringBuffer(operElement.getOperation().getName())).append(".txt").toString();
+ }
+
+ public final void writeSourceContent(OutputStream os)
+ {
+ WSDLOperationElement operElement = (WSDLOperationElement)(getSelectedNavigatorNode().getTreeElement());
+ PrintWriter pw = new PrintWriter(os);
+ pw.println(operElement.getPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT));
+ pw.close();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenWSDLAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenWSDLAction.java
new file mode 100644
index 000000000..df77a253a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenWSDLAction.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import javax.wsdl.WSDLException;
+import java.util.Vector;
+
+public class OpenWSDLAction extends WSDLPropertiesFormAction {
+
+ public OpenWSDLAction(Controller controller) {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException {
+ String wsdlUrl = parser.getParameter(ActionInputs.QUERY_INPUT_WSDL_URL);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+ propertyTable_.put(ActionInputs.QUERY_INPUT_WSDL_URL, wsdlUrl);
+ formTool.updatePropertyTable(propertyTable_);
+ return true;
+ }
+
+ public boolean run() {
+ String wsdlUrl = (String)propertyTable_.get(ActionInputs.QUERY_INPUT_WSDL_URL);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ TreeElement rootElement = rootNode.getTreeElement();
+
+ // create a WSDLElement representing the WSDL
+ WSDLElement wsdlElement = new WSDLElement(wsdlUrl, rootElement.getModel(), wsdlUrl);
+ try
+ {
+ // open WSDL
+ Vector errorMessages = wsdlElement.loadWSDL();
+ if (errorMessages.size() > 0)
+ {
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_ERROR_XSD_VALIDATION"));
+ for (int i=0;i<errorMessages.size();i++)
+ messageQueue.addMessage((String)errorMessages.elementAt(i));
+ }
+ }
+ catch (WSDLException e)
+ {
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_ERROR_OPEN_WSDL",wsdlUrl));
+ handleUnexpectedException(wsdlPerspective,messageQueue,"WSDLException",e);
+ return false;
+ }
+ rootElement.connect(wsdlElement,WSDLModelConstants.REL_WSDL, ModelConstants.REL_OWNER);
+
+ // build the datamodel for this WSDLElement
+ wsdlElement.buildModel();
+
+ // If there is more than 1 service node, select the WSDL node. If there is more than 1 binding node, select the service node.
+ // If there is just the one service and binding node, select the binding node.
+ // select the new WSDL node
+ Node wsdlNode = rootNode.getChildNode(wsdlElement);
+ Vector serviceNodes = wsdlNode.getChildNodes();
+ int newSelectedNodeId = wsdlNode.getNodeId();
+ if (serviceNodes.size() == 1)
+ {
+ Node serviceNode = (Node)serviceNodes.elementAt(0);
+ Vector bindingNodes = serviceNode.getChildNodes();
+ if (bindingNodes.size() == 1)
+ {
+ Node bindingNode = (Node)bindingNodes.elementAt(0);
+ newSelectedNodeId = bindingNode.getNodeId();
+ }
+ else
+ newSelectedNodeId = serviceNode.getNodeId();
+ }
+ nodeManager.setSelectedNodeId(newSelectedNodeId);
+ nodeManager.makeNodeVisible(nodeManager.getNode(newSelectedNodeId));
+ addToHistory(ActionInputs.PERSPECTIVE_WSDL,SelectWSDLPropertiesToolAction.getActionLink(newSelectedNodeId, 0, ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, true));
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_INFO_OPEN_WSDL_SUCCESSFUL", wsdlUrl));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenXSDInfoDialogAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenXSDInfoDialogAction.java
new file mode 100644
index 000000000..c12cfd50a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/OpenXSDInfoDialogAction.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+import javax.servlet.http.*;
+
+public class OpenXSDInfoDialogAction extends Action
+{
+ public OpenXSDInfoDialogAction()
+ {
+ }
+
+ public static final String getActionLink(String sessionId,int nodeId,String fragId)
+ {
+ StringBuffer actionLink = new StringBuffer("wsdl/fragment/XSDInfoDialog.jsp?");
+ actionLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ actionLink.append('&').append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(WSDLActionInputs.FRAGMENT_ID).append('=').append(fragId);
+ return actionLink.toString();
+ }
+
+ public final boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public final boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/RefreshWSDLAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/RefreshWSDLAction.java
new file mode 100644
index 000000000..8cb9062b8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/RefreshWSDLAction.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+
+import java.util.Vector;
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+import javax.servlet.http.*;
+
+public class RefreshWSDLAction extends LinkAction {
+
+ public RefreshWSDLAction(Controller controller) {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID) {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/WSDLRefreshActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request) {
+ NodeManager nodeManager = controller_.getWSDLPerspective().getNodeManager();
+ String nodeIDString = request.getParameter(ActionInputs.NODEID);
+ int nodeID;
+ try {
+ nodeID = Integer.parseInt(nodeIDString);
+ }
+ catch (NumberFormatException nfe) {
+ nodeID = nodeManager.getSelectedNodeId();
+ }
+ Node node = nodeManager.getNode(nodeID);
+ while (node != null && !(node instanceof WSDLMainNode)) {
+ if (node instanceof WSDLNode) {
+ propertyTable_.put(ActionInputs.NODEID, String.valueOf(node.getNodeId()));
+ return true;
+ }
+ node = node.getParent();
+ }
+ return false;
+ }
+
+ public boolean run() {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node wsdlNode = nodeManager.getNode(nodeID);
+ WSDLElement wsdlElement = (WSDLElement)wsdlNode.getTreeElement();
+ Definition definitionCopy = wsdlElement.getDefinition();
+ Vector schemaListCopy = wsdlElement.getSchemaList();
+ wsdlElement.setDefinition(null);
+ wsdlElement.setSchemaList(new Vector());
+ int selectedNodeID = nodeManager.getSelectedNode().getNodeId();
+
+ try {
+ // open WSDL
+ Vector errorMessages = wsdlElement.loadWSDL();
+ if (errorMessages.size() > 0) {
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_ERROR_XSD_VALIDATION"));
+ for (int i=0;i<errorMessages.size();i++)
+ messageQueue.addMessage((String)errorMessages.elementAt(i));
+ }
+ }
+ catch (WSDLException e)
+ {
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_ERROR_OPEN_WSDL",wsdlElement.getWsdlUrl()));
+ handleUnexpectedException(wsdlPerspective,messageQueue,"WSDLException",e);
+ wsdlElement.setDefinition(definitionCopy);
+ wsdlElement.setSchemaList(schemaListCopy);
+ return false;
+ }
+
+ // build the datamodel for this WSDLElement
+ wsdlElement.buildModel();
+
+ // Select a new node if the previous selected node no longer exists
+ // If there is more than 1 service node, select the WSDL node. If there is more than 1 binding node, select the service node.
+ // If there is just the one service and binding node, select the binding node.
+ Node node = nodeManager.getNode(selectedNodeID);
+ if (node == null) {
+ selectedNodeID = wsdlNode.getNodeId();
+ Vector serviceNodes = wsdlNode.getChildNodes();
+ if (serviceNodes.size() == 1)
+ {
+ Node serviceNode = (Node)serviceNodes.elementAt(0);
+ Vector bindingNodes = serviceNode.getChildNodes();
+ if (bindingNodes.size() == 1)
+ {
+ Node bindingNode = (Node)bindingNodes.elementAt(0);
+ selectedNodeID = bindingNode.getNodeId();
+ }
+ else
+ selectedNodeID = serviceNode.getNodeId();
+ }
+ nodeManager.setSelectedNodeId(selectedNodeID);
+ nodeManager.makeNodeVisible(nodeManager.getNode(selectedNodeID));
+ }
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_INFO_REFRESH_WSDL_SUCCESSFUL", wsdlElement.getWsdlUrl()));
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ResizeWSDLFramesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ResizeWSDLFramesAction.java
new file mode 100644
index 000000000..3b67ae977
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ResizeWSDLFramesAction.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+
+public class ResizeWSDLFramesAction extends ResizeFramesAction
+{
+ public ResizeWSDLFramesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ // Save the current frameset sizes.
+ String frameName = (String)propertyTable_.get(ActionInputs.FRAME_NAME);
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+
+ // Set the new frameset sizes.
+ boolean saveFrameSettings = false;
+ if (frameName.equals(WSDLFrameNames.WSDL_NAVIGATOR_CONTAINER))
+ {
+ wsdlPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsdlPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ if (perspectiveContentFramesetCols.startsWith("100%"))
+ {
+ // Restore.
+ wsdlPerspective.setPerspectiveContentFramesetCols(wsdlPerspective.getSavedPerspectiveContentFramesetCols());
+ }
+ else
+ {
+ // Maximize.
+ wsdlPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsdlPerspective.setPerspectiveContentFramesetCols("100%,0%");
+ }
+ }
+ else if (frameName.equals(WSDLFrameNames.WSDL_PROPERTIES_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.startsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ wsdlPerspective.setPerspectiveContentFramesetCols(wsdlPerspective.getSavedPerspectiveContentFramesetCols());
+ wsdlPerspective.setActionsContainerFramesetRows(wsdlPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ wsdlPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsdlPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsdlPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ wsdlPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsdlPerspective.setActionsContainerFramesetRows("100%,0%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ wsdlPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsdlPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ else if (frameName.equals(WSDLFrameNames.WSDL_STATUS_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.endsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ wsdlPerspective.setPerspectiveContentFramesetCols(wsdlPerspective.getSavedPerspectiveContentFramesetCols());
+ wsdlPerspective.setActionsContainerFramesetRows(wsdlPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ wsdlPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsdlPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsdlPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ wsdlPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsdlPerspective.setActionsContainerFramesetRows("0%,100%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ wsdlPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsdlPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLNavigatorNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLNavigatorNodeAction.java
new file mode 100644
index 000000000..94af20b05
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLNavigatorNodeAction.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectWSDLNavigatorNodeAction extends SelectNodeAction
+{
+
+ public SelectWSDLNavigatorNodeAction(Controller controller)
+ {
+ super(controller,controller.getWSDLPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID, boolean forHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/SelectWSDLNavigatorNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeID);
+ if (forHistory)
+ actionLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ ToolManager toolManager = selectedNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return selectedTool.getSelectToolActionHref(true);
+ else
+ return getActionLink(nodeId,true);
+ }
+
+ public final String getTreeContentVar() {
+ return "wsdlNavigatorContent";
+ }
+
+ public final String getTreeContentPage() {
+ return "wsdl/wsdl_navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar() {
+ return "wsdlPropertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage() {
+ return "wsdl/wsdl_properties_container.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSDL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLPropertiesToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLPropertiesToolAction.java
new file mode 100644
index 000000000..89d53cafd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SelectWSDLPropertiesToolAction.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectWSDLPropertiesToolAction extends SelectNodeToolAction
+{
+
+ public SelectWSDLPropertiesToolAction(Controller controller)
+ {
+ super(controller, controller.getWSDLPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID, boolean keepHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/SelectWSDLPropertiesToolActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ if (viewID != ActionInputs.VIEWID_DEFAULT) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ }
+ if (keepHistory) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.ISHISTORY);
+ actionLink.append("=1");
+ }
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ int nodeId = selectedNode_.getNodeId();
+ int toolId = selectedTool_.getToolId();
+ int viewId = selectedNode_.getViewId();
+ int viewToolId = selectedNode_.getViewToolId();
+ return getActionLink(nodeId,toolId,viewId,viewToolId,true);
+ }
+
+ public final String getTreeContentVar() {
+ return "wsdlNavigatorContent";
+ }
+
+ public final String getTreeContentPage() {
+ return "wsdl/wsdl_navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar() {
+ return "wsdlPropertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage() {
+ return "wsdl/wsdl_properties_container.jsp";
+ }
+
+ public final String getPropertiesContentVar() {
+ return "wsdlPropertiesContent";
+ }
+
+ public final String getPropertiesContentPage() {
+ return "wsdl/wsdl_properties_content.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSDL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SwitchPerspectiveFromWSDLAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SwitchPerspectiveFromWSDLAction.java
new file mode 100644
index 000000000..920c57352
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SwitchPerspectiveFromWSDLAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+
+public final class SwitchPerspectiveFromWSDLAction extends ShowPerspectiveAction
+{
+ public SwitchPerspectiveFromWSDLAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+
+ // Save the frameset sizes iff no frame is maximized.
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ if (!perspectiveContentFramesetCols.startsWith("100%") && !perspectiveContentFramesetCols.endsWith("100%"))
+ wsdlPerspective.setPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+
+ if (!actionsContainerFramesetRows.startsWith("100%") && !actionsContainerFramesetRows.endsWith("100%"))
+ wsdlPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+
+ return super.run();
+ }
+
+ public static final String getFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ StringBuffer formLink = new StringBuffer("wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp?");
+ formLink.append(ActionInputs.PERSPECTIVE).append('=').append(targetPerspectiveId);
+ if (forHistory)
+ formLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return formLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SynchronizeFragmentViewsAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SynchronizeFragmentViewsAction.java
new file mode 100644
index 000000000..8ed578f9f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/SynchronizeFragmentViewsAction.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*;
+
+import javax.wsdl.*;
+import java.util.*;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class SynchronizeFragmentViewsAction extends WSDLPropertiesFormAction
+{
+ public SynchronizeFragmentViewsAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ super.processParsedResults(parser);
+ Node selectedNode = getSelectedNavigatorNode();
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ String viewID = parser.getParameter(FragmentConstants.FRAGMENT_VIEW_ID);
+ propertyTable_.put(FragmentConstants.FRAGMENT_VIEW_ID, viewID);
+ if (viewID.equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE))
+ {
+ invokeWSDLOperationTool.setFragmentViewID(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE);
+ return processFormViewParsedResults(parser, operElement, it);
+ }
+ else
+ {
+ invokeWSDLOperationTool.setFragmentViewID(FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM);
+ return processSourceViewParsedResults(parser, operElement, it);
+ }
+ }
+
+ private boolean processFormViewParsedResults(MultipartFormDataParser parser, WSDLOperationElement operElement, Iterator it) throws MultipartFormDataException
+ {
+ operElement.setPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT, null);
+ operElement.setPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT_NAMESPACE, null);
+ boolean resultsValid = true;
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ if (!frag.processParameterValues(parser))
+ resultsValid = false;
+ }
+ if (resultsValid)
+ operElement.setPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT,null);
+ return resultsValid;
+ }
+
+ private boolean processSourceViewParsedResults(MultipartFormDataParser parser, WSDLOperationElement operElement, Iterator it) throws MultipartFormDataException
+ {
+ String sourceContent = parser.getParameter(FragmentConstants.SOURCE_CONTENT);
+ if (sourceContent != null)
+ operElement.setPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT, sourceContent);
+ String[] nsDeclarations = parser.getParameterValues(FragmentConstants.SOURCE_CONTENT_NAMESPACE);
+ if (nsDeclarations != null)
+ operElement.setPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT_NAMESPACE,nsDeclarations);
+ sourceContent = addRootElement(sourceContent);
+ try
+ {
+ Element sourceElements = XMLUtils.stringToElement(sourceContent);
+ NodeList nl = sourceElements.getChildNodes();
+ Vector elementsVector = new Vector();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ org.w3c.dom.Node node = nl.item(i);
+ if (node != null && node instanceof Element)
+ elementsVector.add(node);
+ }
+ Element[] instanceDocuments = new Element[elementsVector.size()];
+ elementsVector.copyInto(instanceDocuments);
+ boolean sourceElementsValid = true;
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ if (!frag.setParameterValuesFromInstanceDocuments(instanceDocuments))
+ sourceElementsValid = false;
+ }
+ return sourceElementsValid;
+ }
+ catch (Throwable t)
+ {
+ return false;
+ }
+ }
+
+ private String addRootElement(String element)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append(FragmentConstants.ROOT_ELEMENT_START_TAG);
+ sb.append(element);
+ sb.append(FragmentConstants.ROOT_ELEMENT_END_TAG);
+ return sb.toString();
+ }
+
+ public boolean run() {
+ return true;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ToggleWSDLNavigatorNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ToggleWSDLNavigatorNodeAction.java
new file mode 100644
index 000000000..42a6e4b82
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/ToggleWSDLNavigatorNodeAction.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class ToggleWSDLNavigatorNodeAction extends ToggleNodeAction
+{
+ public ToggleWSDLNavigatorNodeAction(Controller controller)
+ {
+ super(controller,controller.getWSDLPerspective().getNodeManager());
+ }
+
+ // uddi/actions/ToggleNavigatorNodeAction.jsp?nodeId=...&open=...
+ public static String getActionLink(int nodeId,boolean open)
+ {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/ToggleWSDLNavigatorNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID).append('=').append(nodeId);
+ actionLink.append('&').append(ActionInputs.OPEN).append('=').append(open?ActionInputs.OPEN_NODE:ActionInputs.CLOSE_NODE);
+ return actionLink.toString();
+ }
+
+ // This should be called only to select the toggled node when, at the time of
+ // the collapse event, a descendant node was selected.
+ public final String getActionLinkForHistory()
+ {
+ ToolManager toolManager = toggledNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = toggledNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = toggledNode_.getViewId();
+ int viewToolId = toggledNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectWSDLPropertiesToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,true);
+ else
+ return SelectWSDLNavigatorNodeAction.getActionLink(nodeId,true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "wsdlNavigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "wsdl/wsdl_navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "wsdlPropertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "wsdl/wsdl_properties_container.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSDL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/UpdateWSDLBindingAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/UpdateWSDLBindingAction.java
new file mode 100644
index 000000000..eaf6bffb9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/UpdateWSDLBindingAction.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLBindingElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.InvokeWSDLOperationTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLBindingNode;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import java.util.Vector;
+import java.util.List;
+import java.util.Iterator;
+
+public class UpdateWSDLBindingAction extends WSDLPropertiesFormAction
+{
+ public UpdateWSDLBindingAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] nodeIds = parser.getParameterValues(ActionInputs.NODEID);
+ if (nodeIds == null)
+ nodeIds = new String[0];
+ propertyTable_.put(ActionInputs.NODEID, nodeIds);
+ String[] endpoints = parser.getParameterValues(WSDLActionInputs.END_POINT);
+ if (endpoints == null)
+ endpoints = new String[0];
+ propertyTable_.put(WSDLActionInputs.END_POINT, endpoints);
+ return true;
+ }
+
+ public boolean run()
+ {
+ String[] nodeIds = getPropertyAsStringArray(ActionInputs.NODEID);
+ String[] endpoints = getPropertyAsStringArray(WSDLActionInputs.END_POINT);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ for (int i = 0; i < nodeIds.length; i++)
+ {
+ try
+ {
+ Node bindingNode = nodeManager.getNode(Integer.parseInt(nodeIds[i]));
+ if (bindingNode instanceof WSDLBindingNode)
+ {
+ WSDLBindingElement bindingElement = (WSDLBindingElement)bindingNode.getTreeElement();
+ String[] endpointsCopy = endpoints;
+ bindingElement.setEndPoints(endpointsCopy);
+ if (endpointsCopy.length <= 0)
+ endpointsCopy = bindingElement.getEndPoints();
+ if (endpointsCopy.length > 0)
+ {
+ Vector operationNodes = bindingNode.getChildNodes();
+ for (Iterator it = operationNodes.iterator(); it.hasNext();)
+ {
+ Node operationNode = (Node)it.next();
+ List tools = operationNode.getCurrentToolManager().getTools();
+ for (Iterator toolsIterator = tools.iterator(); toolsIterator.hasNext();)
+ {
+ Tool tool = (Tool)toolsIterator.next();
+ if (tool instanceof InvokeWSDLOperationTool)
+ ((InvokeWSDLOperationTool)tool).setEndPoint(endpointsCopy[0]);
+ }
+ }
+ }
+ }
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ }
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ messageQueue.addMessage(wsdlPerspective.getMessage("MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL"));
+ return true;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLAddToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLAddToFavoritesAction.java
new file mode 100644
index 000000000..8f00ab1c5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLAddToFavoritesAction.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import javax.servlet.http.*;
+
+public class WSDLAddToFavoritesAction extends LinkAction {
+ public WSDLAddToFavoritesAction(Controller controller) {
+ super(controller);
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request) {
+ String nodeID = request.getParameter(ActionInputs.NODEID);
+ try {
+ Integer.parseInt(nodeID);
+ propertyTable_.put(ActionInputs.NODEID, nodeID);
+ return true;
+ }
+ catch (Throwable t) {
+ return false;
+ }
+ }
+
+ public static String getActionLink(int nodeID) {
+ StringBuffer actionLink = new StringBuffer("wsdl/actions/WSDLCheckFavoriteExistsActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ return actionLink.toString();
+ }
+
+ public boolean favoriteExists() {
+ String wsdlUrl = getWsdlUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSDL_URL, wsdlUrl);
+ FavoritesFolderElement favFolderElement = getFavWSDLFolderElement();
+ return favFolderElement.favoriteExists(table);
+ }
+
+ public boolean run() {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ String wsdlUrl = getWsdlUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSDL_URL, wsdlUrl);
+ FavoritesFolderElement favFolderElement = getFavWSDLFolderElement();
+ if (favFolderElement.addFavorite(table)) {
+ wsdlPerspective.getMessageQueue().addMessage(wsdlPerspective.getMessage("MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL", wsdlUrl));
+ return true;
+ }
+ else {
+ wsdlPerspective.getMessageQueue().addMessage(wsdlPerspective.getMessage("MSG_ERROR_ADD_TO_FAVORITES", wsdlUrl));
+ return false;
+ }
+ }
+
+ private String getWsdlUrl() {
+ String nodeID = (String)propertyTable_.get(ActionInputs.NODEID);
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager wsdlNodeManager = wsdlPerspective.getNodeManager();
+ WSDLElement selectedElement = (WSDLElement)wsdlNodeManager.getNode(Integer.parseInt(nodeID)).getTreeElement();
+ return selectedElement.getWsdlUrl();
+ }
+
+ private FavoritesFolderElement getFavWSDLFolderElement() {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favNodeManager = favPerspective.getNodeManager();
+ TreeElement favRootElement = favNodeManager.getRootNode().getTreeElement();
+ Enumeration e = favRootElement.getElements(FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE);
+ return (FavoritesFolderElement)e.nextElement();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToFileSystemAction.java
new file mode 100644
index 000000000..30e314f93
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToFileSystemAction.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.WSDLFileNameHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import javax.wsdl.Definition;
+import java.io.OutputStream;
+
+public class WSDLImportWSDLToFileSystemAction extends ImportToFileSystemAction {
+ private Definition definition_;
+ private String defaultWSDLFileName_;
+
+ public WSDLImportWSDLToFileSystemAction(Controller controller) {
+ super(controller);
+ definition_ = null;
+ defaultWSDLFileName_ = "temp.wsdl";
+ }
+
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId) {
+ return ImportToFileSystemAction.getActionLink(nodeId,toolId,viewId,viewToolId,"wsdl/actions/WSDLImportWSDLToFileSystemActionJSP.jsp");
+ }
+
+ public final boolean write(OutputStream os) {
+ return writeWSDLDefinition(os, definition_);
+ }
+
+ public final String getDefaultFileName() {
+ return defaultWSDLFileName_;
+ }
+
+ public final boolean run() {
+ int nodeID;
+ try {
+ nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ }
+ catch (NumberFormatException nfe) {
+ return false;
+ }
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node node = nodeManager.getNode(nodeID);
+ WSDLElement wsdlElement = (WSDLElement)node.getTreeElement();
+ definition_ = wsdlElement.getDefinition();
+ defaultWSDLFileName_ = WSDLFileNameHelper.getWSDLFileName(wsdlElement.getWsdlUrl());
+ return (definition_ != null);
+ }
+
+ public final String getStatusContentVar() {
+ return controller_.getWSDLPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage() {
+ return controller_.getWSDLPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToWorkbenchAction.java
new file mode 100644
index 000000000..ed9c54bf7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLImportWSDLToWorkbenchAction.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToWorkbenchAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+import java.util.Hashtable;
+
+public class WSDLImportWSDLToWorkbenchAction extends ImportToWorkbenchAction {
+ public WSDLImportWSDLToWorkbenchAction(Controller controller) {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ return (FormTool)wsdlPerspective.getNodeManager().getSelectedNode().getCurrentToolManager().getSelectedTool();
+ }
+
+ public ImportToFileSystemAction newImportToFileSystemAction() {
+ WSDLImportWSDLToFileSystemAction action = new WSDLImportWSDLToFileSystemAction(controller_);
+ Hashtable table = action.getPropertyTable();
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ table.put(ActionInputs.NODEID, String.valueOf(selectedNode.getNodeId()));
+ return action;
+ }
+
+ public final String getStatusContentVar() {
+ return controller_.getWSDLPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage() {
+ return controller_.getWSDLPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLLaunchWebServiceWizardAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLLaunchWebServiceWizardAction.java
new file mode 100644
index 000000000..681b90aef
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLLaunchWebServiceWizardAction.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LaunchWebServiceWizardAction;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective;
+
+public class WSDLLaunchWebServiceWizardAction extends LaunchWebServiceWizardAction {
+
+ public WSDLLaunchWebServiceWizardAction(Controller controller) {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ return (FormTool)wsdlPerspective.getNodeManager().getSelectedNode().getCurrentToolManager().getSelectedTool();
+ }
+
+ public boolean run() {
+ WSDLPerspective wsdlPerspective = controller_.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node node = nodeManager.getSelectedNode();
+ WSDLElement element = (WSDLElement)node.getTreeElement();
+ return launchWizard(element.getWsdlUrl());
+ }
+
+ public final String getStatusContentVar() {
+ return controller_.getWSDLPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage() {
+ return controller_.getWSDLPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLPropertiesFormAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLPropertiesFormAction.java
new file mode 100644
index 000000000..cf6685d53
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/actions/WSDLPropertiesFormAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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.wsdl.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+
+public abstract class WSDLPropertiesFormAction extends FormAction
+{
+ protected NodeManager navigatorManager_;
+ public WSDLPropertiesFormAction(Controller controller)
+ {
+ super(controller);
+ navigatorManager_ = controller.getWSDLPerspective().getNodeManager();
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String[] keys = parser.getParameterNames();
+ for (int i = 0; i < keys.length; i++)
+ {
+ String[] values = parser.getParameterValues(keys[i]);
+ if (values != null)
+ {
+ if (values.length == 1)
+ propertyTable_.put(keys[i], values[0]);
+ else if (values.length > 1)
+ propertyTable_.put(keys[i], values);
+ }
+ }
+ return true;
+ }
+
+ public Node getSelectedNavigatorNode()
+ {
+ return navigatorManager_.getSelectedNode();
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ return (FormTool)(getSelectedNavigatorNode().getCurrentToolManager().getSelectedTool());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/BindingTypes.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/BindingTypes.java
new file mode 100644
index 000000000..ed8af597f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/BindingTypes.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.constants;
+
+public class BindingTypes
+{
+ public static final int UNSUPPORTED = -1;
+ public static final int SOAP = 0;
+ public static final int HTTP_GET = 1;
+ public static final int HTTP_POST = 2;
+
+ public static final String HTTP_VERB_GET = "GET";
+ public static final String HTTP_VERB_POST = "POST";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/FragmentConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/FragmentConstants.java
new file mode 100644
index 000000000..145d9dad1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/FragmentConstants.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * 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.wsdl.constants;
+
+public class FragmentConstants
+{
+ // XSD minOccurs and maxOccurs
+ public static final int DEFAULT_MIN_OCCURS = 1;
+ public static final int DEFAULT_MAX_OCCURS = 1;
+ public static final int UNBOUNDED = -1;
+
+ // WSDL style
+ public static final int STYLE_DOCUMENT = 0;
+ public static final int STYLE_RPC = 1;
+
+ // WSDL Encoding styles
+ public static final int ENCODING_LITERAL = 0;
+ public static final int ENCODING_SOAP = 1;
+ public static final int ENCODING_URL = 2; // HTTP Get/Post
+
+ // IDs used by the fragment model
+ public static final String ID_SEPERATOR = "::";
+ public static final String INPUT_ID = "::input";
+ public static final String OUTPUT_ID = "::output";
+ public static final String TABLE_ID = "::tableID";
+ public static final String FRAGMENT_ID = "::fragmentID";
+ public static final String NAME_ANCHOR_ID = "::nameAnchorID";
+ public static final String FRAGMENT_VIEW_ID = "::fragmentViewID";
+ public static final String XSD_ATOMIC_ENUM_ID = "::xsdAtomicEnumID";
+ public static final String XSD_ALL_GROUP_ID = "::xsdAllGroupID";
+
+ // Fragment view IDs
+ public static final String FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE = "::fragmentViewSwitchFormToSource";
+ public static final String FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM = "::fragmentViewSwitchSourceToForm";
+ public static final String SOURCE_CONTENT = "::sourceContent";
+ public static final String SOURCE_CONTENT_NAMESPACE = "::sourceContentNS";
+
+ // Action input constants
+ public static final String NAME_ANCHOR = "nameAnchor";
+
+ // Namespaces contants
+ public static final String URI_XSD = "http://www.w3.org/2001/XMLSchema";
+ public static final String URI_SOAP = "http://schemas.xmlsoap.org/soap/encoding/";
+ public static final String URI_SOAP_ENV = "http://schemas.xmlsoap.org/soap/envelope/";
+ public static final String URI_WSDL = "http://schemas.xmlsoap.org/wsdl/";
+ public static final String URI_XSI = "http://www.w3.org/2001/XMLSchema-instance";
+ public static final String SOAP_ENC_ARRAY_TYPE = "arrayType";
+ public static final String XSI_TYPE = "type";
+ public static final String QNAME_PREFIX = "q";
+ public static final String QNAME_LOCAL_NAME_ARRAY_TYPE = "arrayType";
+ public static final String QNAME_LOCAL_NAME_ARRAY = "Array";
+ public static final String COLON = ":";
+ public static final String QNAME_LOCAL_NAME_BODY = "Body";
+ public static final String QNAME_LOCAL_NAME_FAULT = "Fault";
+
+ // List
+ public static final String LIST_SEPERATOR = " ";
+
+ // SOAP-ENC:Array
+ public static final String LEFT_SQUARE_BRACKET = "[";
+ public static final String RIGHT_SQUARE_BRACKET = "]";
+
+ // XSDDefaultFragment
+ public static final String ROOT_ELEMENT_START_TAG = "<root>";
+ public static final String ROOT_ELEMENT_END_TAG = "</root>";
+
+ // Namespace URIs.
+ public static final String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/";
+ public static final String NS_URI_SOAP_ENV = "http://schemas.xmlsoap.org/soap/envelope/";
+ public static final String NS_URI_SOAP_ENC = "http://schemas.xmlsoap.org/soap/encoding/";
+ public static final String NS_URI_1999_SCHEMA_XSI = "http://www.w3.org/1999/XMLSchema-instance";
+ public static final String NS_URI_1999_SCHEMA_XSD = "http://www.w3.org/1999/XMLSchema";
+ public static final String NS_URI_2000_SCHEMA_XSI = "http://www.w3.org/2000/10/XMLSchema-instance";
+ public static final String NS_URI_2000_SCHEMA_XSD = "http://www.w3.org/2000/10/XMLSchema";
+ public static final String NS_URI_2001_SCHEMA_XSI = "http://www.w3.org/2001/XMLSchema-instance";
+ public static final String NS_URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
+ public static final String NS_URI_CURRENT_SCHEMA_XSI = NS_URI_2001_SCHEMA_XSI;
+ public static final String NS_URI_CURRENT_SCHEMA_XSD = NS_URI_2001_SCHEMA_XSD;
+ public static final String NS_URI_XML_SOAP = "http://xml.apache.org/xml-soap";
+ public static final String NS_URI_XML_SOAP_DEPLOYMENT = "http://xml.apache.org/xml-soap/deployment";
+ public static final String NS_URI_LITERAL_XML = "http://xml.apache.org/xml-soap/literalxml";
+ public static final String NS_URI_XMI_ENC = "http://www.ibm.com/namespaces/xmi";
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLActionInputs.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLActionInputs.java
new file mode 100644
index 000000000..341de9105
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLActionInputs.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * 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.wsdl.constants;
+
+public class WSDLActionInputs
+{
+ public static final String FRAMESET_COLS_PERSPECTIVE_CONTENT = "framesetColsPerspectiveContent";
+ public static final String FRAMESET_ROWS_ACTIONS_CONTAINER = "framesetRowsActionsContainer";
+
+ public static final String SESSION_ID = "sessionID";
+ public static final String FRAGMENT_ID = "fragmentID";
+
+ public static final String SOAP_ENVELOPE_TYPE = "soapEnvelopeType";
+ public static final int SOAP_ENVELOPE_TYPE_REQUEST = 0;
+ public static final int SOAP_ENVELOPE_TYPE_RESPONSE = 1;
+ public static final String SOAP_RESPONSE_CACHED = "soapResponseCached";
+
+ public static final String SUBMISSION_ACTION = "submissionAction";
+ public static final String SUBMISSION_ACTION_FORM = "submissionActionForm";
+ public static final String SUBMISSION_ACTION_BROWSE_FILE = "submissionActionBrowseFile";
+ public static final String SUBMISSION_ACTION_SAVE_AS = "submissionActionSaveAs";
+ public static final String SELECTED_FILE = "selectedFile";
+ public static final String OPERATION_ELEMENT = "operationElement";
+
+ public static final String END_POINT = "::endPoint";
+ public static final String HTTP_BASIC_AUTH_USERNAME = "httpBasicAuthUsername";
+ public static final String HTTP_BASIC_AUTH_PASSWORD = "httpBasicAuthPassword";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLFrameNames.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLFrameNames.java
new file mode 100644
index 000000000..29f7137e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLFrameNames.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.constants;
+
+public class WSDLFrameNames
+{
+ public final static String WSDL_NAVIGATOR_CONTAINER = "wsdl_navigator_container";
+ public final static String WSDL_NAVIGATOR_TOOLBAR = "wsdl_navigator_toolbar";
+ public final static String WSDL_NAVIGATOR_CONTENT = "wsdl_navigator_content";
+ public final static String WSDL_ACTIONS_CONTAINER = "wsdl_actions_container";
+ public final static String WSDL_PROPERTIES_CONTAINER = "wsdl_properties_container";
+ public final static String WSDL_PROPERTIES_TOOLBAR = "wsdl_properties_toolbar";
+ public final static String WSDL_PROPERTIES_CONTENT = "wsdl_properties_content";
+ public final static String WSDL_STATUS_CONTAINER = "wsdl_status_container";
+ public final static String WSDL_STATUS_TOOLBAR = "wsdl_status_toolbar";
+ public final static String WSDL_STATUS_CONTENT = "wsdl_status_content";
+
+ // XSD Info Dialog
+ public final static String XSD_INFO_TOOLBAR = "xsd_info_toolbar";
+ public final static String XSD_INFO_CONTENT = "xsd_info_content";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLModelConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLModelConstants.java
new file mode 100644
index 000000000..13b19b674
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/constants/WSDLModelConstants.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.constants;
+
+public class WSDLModelConstants
+{
+ // Relation
+ public final static String REL_WSDL = "relWSDL";
+ public final static String REL_WSDL_SERVICE = "relWSDLService";
+ public final static String REL_WSDL_BINDING = "relWSDLBinding";
+ public final static String REL_WSDL_OPERATION = "relWSDLOperation";
+
+ // Documentation
+ public final static String PROP_DOCUMENTATION = "propDocumentation";
+
+ // Source Content
+ public final static String PROP_SOURCE_CONTENT = "propSourceContent";
+ public final static String PROP_SOURCE_CONTENT_NAMESPACE = "propSourceContentNS";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/Endpoint.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/Endpoint.java
new file mode 100644
index 000000000..ea3c92fd9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/Endpoint.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * 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.wsdl.datamodel;
+
+public class Endpoint
+{
+ private String endpoint;
+ private boolean requireHTTPBasicAuth;
+ private String httpBasicAuthUsername;
+ private String httpBasicAuthPassword;
+
+ public Endpoint()
+ {
+ endpoint = null;
+ requireHTTPBasicAuth = false;
+ httpBasicAuthUsername = null;
+ httpBasicAuthPassword = null;
+ }
+
+ public String getEndpoint()
+ {
+ return endpoint;
+ }
+
+ public void setEndpoint(String endpoint)
+ {
+ this.endpoint = endpoint;
+ }
+
+ public boolean isRequireHTTPBasicAuth()
+ {
+ return requireHTTPBasicAuth;
+ }
+
+ public void setRequireHTTPBasicAuth(boolean requireHTTPBasicAuth)
+ {
+ this.requireHTTPBasicAuth = requireHTTPBasicAuth;
+ }
+
+ public String getHttpBasicAuthUsername()
+ {
+ return httpBasicAuthUsername;
+ }
+
+ public void setHttpBasicAuthUsername(String httpBasicAuthUsername)
+ {
+ this.httpBasicAuthUsername = httpBasicAuthUsername;
+ }
+
+ public String getHttpBasicAuthPassword()
+ {
+ return httpBasicAuthPassword;
+ }
+
+ public void setHttpBasicAuthPassword(String httpBasicAuthPassword)
+ {
+ this.httpBasicAuthPassword = httpBasicAuthPassword;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLBindingElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLBindingElement.java
new file mode 100644
index 000000000..babdcb68e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLBindingElement.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * 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.wsdl.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+import javax.xml.namespace.QName;
+import javax.wsdl.extensions.soap.*;
+import javax.wsdl.extensions.http.*;
+import javax.wsdl.extensions.*;
+import javax.wsdl.*;
+
+import java.util.*;
+
+public class WSDLBindingElement extends WSDLCommonElement
+{
+ private int bindingType_;
+ private Binding binding_;
+ private ExtensibilityElement bindingExtensibilityElement_;
+ private Vector endPoints_;
+
+ private final void setBindingExtensibilityElement()
+ {
+ bindingExtensibilityElement_ = null;
+ bindingType_ = BindingTypes.UNSUPPORTED;
+ List extensibilityElements = binding_.getExtensibilityElements();
+ for (Iterator i = extensibilityElements.iterator();i.hasNext();)
+ {
+ ExtensibilityElement e = (ExtensibilityElement)i.next();
+ if (e instanceof HTTPBinding)
+ {
+ HTTPBinding binding = (HTTPBinding)e;
+ String verb = binding.getVerb();
+ if (BindingTypes.HTTP_VERB_GET.equals(verb))
+ bindingType_ = BindingTypes.HTTP_GET;
+ else if (BindingTypes.HTTP_VERB_POST.equals(verb))
+ bindingType_ = BindingTypes.HTTP_POST;
+ }
+ else if (e instanceof SOAPBinding)
+ bindingType_ = BindingTypes.SOAP;
+ if (bindingType_ != BindingTypes.UNSUPPORTED)
+ {
+ bindingExtensibilityElement_ = e;
+ break;
+ }
+ }
+ }
+
+ public WSDLBindingElement(String name, Model model, Binding binding)
+ {
+ super(name, model);
+ setBinding(binding);
+ endPoints_ = new Vector();
+ }
+
+ public void setBinding(Binding binding) {
+ binding_ = binding;
+ setDocumentation(binding.getDocumentationElement());
+ setBindingExtensibilityElement();
+ }
+
+ public Binding getBinding() {
+ return binding_;
+ }
+
+ public ExtensibilityElement getBindingExtensibilityElement()
+ {
+ return bindingExtensibilityElement_;
+ }
+
+ public int getBindingType()
+ {
+ return bindingType_;
+ }
+
+ private void resetEndPoints()
+ {
+ WSDLServiceElement serviceElement = (WSDLServiceElement)getParentElement();
+ String fixedEndpointString = serviceElement.getAddressLocation(binding_);
+ Endpoint fixedEndpoint = getEndpoint(fixedEndpointString);
+ if (fixedEndpoint == null)
+ {
+ fixedEndpoint = new Endpoint();
+ fixedEndpoint.setEndpoint(fixedEndpointString);
+ }
+ endPoints_.clear();
+ endPoints_.add(fixedEndpoint);
+ }
+
+ public String[] getEndPoints()
+ {
+ String[] endPoints = new String[endPoints_.size()];
+ for (int i = 0; i < endPoints.length; i++)
+ endPoints[i] = ((Endpoint)endPoints_.get(i)).getEndpoint();
+ return endPoints;
+ }
+
+ public Endpoint getEndpoint(String endpointString)
+ {
+ if (endpointString != null && endpointString.length() > 0)
+ {
+ for (Iterator it = endPoints_.iterator(); it.hasNext();)
+ {
+ Endpoint endpoint = (Endpoint)it.next();
+ if (endpointString.equals(endpoint.getEndpoint()))
+ return endpoint;
+ }
+ }
+ return null;
+ }
+
+ public void setEndPoints(String[] endpoints)
+ {
+ Vector endpointVector = new Vector();
+ for (int i = 0; i < endpoints.length; i++)
+ {
+ Endpoint endpoint = getEndpoint(endpoints[i]);
+ if (endpoint == null)
+ {
+ endpoint = new Endpoint();
+ endpoint.setEndpoint(endpoints[i]);
+ }
+ endpointVector.add(endpoint);
+ }
+ resetEndPoints();
+ endPoints_.addAll(endpointVector);
+ }
+
+ public void addEndPoint(String endpointString)
+ {
+ if (endpointString != null && endpointString.length() > 0)
+ {
+ Endpoint endpoint = new Endpoint();
+ endpoint.setEndpoint(endpointString);
+ endPoints_.add(endpoint);
+ }
+ }
+
+ public void removeEndPoint(String endpointString)
+ {
+ if (endpointString != null && endpointString.length() > 0)
+ {
+ WSDLServiceElement serviceElement = (WSDLServiceElement)getParentElement();
+ String fixedEndpointString = serviceElement.getAddressLocation(binding_);
+ if (fixedEndpointString == null || !fixedEndpointString.equals(endpointString))
+ {
+ for (int i = 0; i < endPoints_.size(); i++)
+ {
+ if (endpointString.equals(((Endpoint)endPoints_.get(i)).getEndpoint()))
+ {
+ endPoints_.remove(i);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ public void buildModel() {
+ resetEndPoints();
+ if (binding_ != null) {
+ PortType pt = binding_.getPortType();
+ if (pt != null) {
+ List operations = pt.getOperations();
+ HashMap operationsMap = new HashMap();
+ for (Iterator it = operations.iterator();it.hasNext();) {
+ Operation operation = (Operation)it.next();
+ operationsMap.put(createOperationUniqueName(operation), operation);
+ }
+ WSDLOperationElement[] wsdlOperationElements = new WSDLOperationElement[getNumberOfElements(WSDLModelConstants.REL_WSDL_OPERATION)];
+ Enumeration e = getElements(WSDLModelConstants.REL_WSDL_OPERATION);
+ for (int i = 0; i < wsdlOperationElements.length; i++) {
+ wsdlOperationElements[i] = (WSDLOperationElement)e.nextElement();
+ }
+ for (int j = 0; j < wsdlOperationElements.length; j++) {
+ String operationName = createOperationUniqueName(wsdlOperationElements[j].getOperation());
+ Operation operation = (Operation)operationsMap.get(operationName);
+ if (operation != null) {
+ operationsMap.remove(operationName);
+ wsdlOperationElements[j].setOperation(this, operation);
+ }
+ else
+ disconnect(wsdlOperationElements[j], WSDLModelConstants.REL_WSDL_OPERATION);
+ }
+ for (Iterator it = operationsMap.values().iterator();it.hasNext();) {
+ Operation oper = (Operation)it.next();
+ WSDLOperationElement wsdlOperationElement = new WSDLOperationElement(oper.getName(), this, oper);
+ connect(wsdlOperationElement,WSDLModelConstants.REL_WSDL_OPERATION,ModelConstants.REL_OWNER);
+ }
+ }
+ }
+ }
+
+ private String createOperationUniqueName(Operation operation)
+ {
+ StringBuffer name = new StringBuffer();
+ name.append(operation.getName());
+ Input inputMsg = operation.getInput();
+ if (inputMsg != null)
+ {
+ QName qname = inputMsg.getMessage().getQName();
+ name.append(qname.getNamespaceURI());
+ name.append(":");
+ name.append(qname.getLocalPart());
+ }
+ Output outputMsg = operation.getOutput();
+ if (outputMsg != null)
+ {
+ QName qname = outputMsg.getMessage().getQName();
+ name.append(qname.getNamespaceURI());
+ name.append(":");
+ name.append(qname.getLocalPart());
+ }
+ return name.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLCommonElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLCommonElement.java
new file mode 100644
index 000000000..5016477fa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLCommonElement.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+import org.w3c.dom.*;
+
+import javax.xml.parsers.*;
+
+public class WSDLCommonElement extends TreeElement
+{
+
+ public WSDLCommonElement(String name, Model model) {
+ super(name, model);
+ }
+
+ public final TreeElement getParentElement() {
+ return (TreeElement)getElements(ModelConstants.REL_OWNER).nextElement();
+ }
+
+ protected final void setDocumentation(Node documentationElement)
+ {
+ String documentation = "";
+ try
+ {
+ if (documentationElement != null)
+ {
+ Document doc = XMLUtils.createNewDocument(null);
+ DocumentFragment df = doc.createDocumentFragment();
+ NodeList documentationNodes = documentationElement.getChildNodes();
+ for (int i=0;i<documentationNodes.getLength();i++)
+ df.appendChild(doc.importNode(documentationNodes.item(i),true));
+ documentation = XMLUtils.serialize(df,true);
+ }
+ }
+ catch (ParserConfigurationException e)
+ {
+ }
+ setPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION,documentation);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLElement.java
new file mode 100644
index 000000000..777ddb419
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLElement.java
@@ -0,0 +1,326 @@
+/*******************************************************************************
+ * 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.wsdl.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.parser.discovery.*;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+import org.eclipse.wst.wsdl.internal.impl.XSDSchemaExtensibilityElementImpl;
+
+import org.eclipse.xsd.util.*;
+import org.eclipse.xsd.impl.*;
+import org.eclipse.xsd.*;
+import org.eclipse.emf.common.util.EList;
+
+import javax.xml.namespace.QName;
+import javax.wsdl.extensions.*;
+import javax.wsdl.*;
+import java.util.*;
+import java.io.*;
+
+public class WSDLElement extends WSDLCommonElement
+{
+
+ private String wsdlUrl_;
+ private Definition definition_;
+ private Vector schemaList_;
+
+ private static Vector w3SchemaQNameList_;
+ private static Vector constantSchemaList_;
+
+ static
+ {
+ // w3 schema URI list:
+ // http://www.w3.org/2001/XMLSchema
+ // http://www.w3.org/2000/10/XMLSchema
+ // http://www.w3.org/1999/XMLSchema
+ w3SchemaQNameList_ = new Vector();
+ w3SchemaQNameList_.addElement(new QName(FragmentConstants.NS_URI_CURRENT_SCHEMA_XSD,"schema"));
+ w3SchemaQNameList_.addElement(new QName(FragmentConstants.NS_URI_2000_SCHEMA_XSD,"schema"));
+ w3SchemaQNameList_.addElement(new QName(FragmentConstants.NS_URI_1999_SCHEMA_XSD,"schema"));
+
+ // Constant schema URI list:
+ // http://www.w3.org/2001/XMLSchema
+ // http://www.w3.org/2000/10/XMLSchema
+ // http://www.w3.org/1999/XMLSchema
+ // http://schemas.xmlsoap.org/soap/encoding/
+ // http://schemas.xmlsoap.org/wsdl/
+ constantSchemaList_ = new Vector();
+ constantSchemaList_.addElement(XSDSchemaImpl.getSchemaForSchema(FragmentConstants.NS_URI_CURRENT_SCHEMA_XSD));
+ constantSchemaList_.addElement(XSDSchemaImpl.getSchemaForSchema(FragmentConstants.NS_URI_2000_SCHEMA_XSD));
+ constantSchemaList_.addElement(XSDSchemaImpl.getSchemaForSchema(FragmentConstants.NS_URI_1999_SCHEMA_XSD));
+ constantSchemaList_.addElement(XSDSchemaImpl.getSchemaForSchema(FragmentConstants.NS_URI_SOAP_ENC));
+ constantSchemaList_.addElement(XSDSchemaImpl.getSchemaForSchema(FragmentConstants.URI_WSDL));
+ }
+
+ public WSDLElement(String name, Model model, String wsdlUrl)
+ {
+ super(name, model);
+ wsdlUrl_ = wsdlUrl;
+ definition_ = null;
+ schemaList_ = new Vector();
+ }
+
+ public void setWsdlUrl(String wsdlUrl) {
+ wsdlUrl_ = wsdlUrl;
+ }
+
+ public String getWsdlUrl() {
+ return wsdlUrl_;
+ }
+
+ public void setSchemaList(Vector schemaList)
+ {
+ schemaList_ = schemaList;
+ }
+
+ public Vector getSchemaList()
+ {
+ return schemaList_;
+ }
+
+ private final Definition loadWSDL(String wsdlURL) throws WSDLException
+ {
+ WebServicesParser parser = new WebServicesParserExt();
+ try
+ {
+ return parser.getWSDLDefinitionVerbose(wsdlURL);
+ }
+ catch (WSDLException wsdle)
+ {
+ throw wsdle;
+ }
+ catch (Throwable t)
+ {
+ throw new WSDLException(WSDLException.OTHER_ERROR , t.getMessage(), t);
+ }
+ }
+
+ public Vector loadWSDL() throws WSDLException
+ {
+ Vector errorMessages = new Vector();
+ definition_ = loadWSDL(wsdlUrl_);
+ if (definition_ != null)
+ {
+ setDocumentation(definition_.getDocumentationElement());
+ gatherSchemas(definition_, wsdlUrl_);
+ // Validate the schemas.
+ for (int i=0;i<schemaList_.size();i++)
+ {
+ XSDSchema xsdSchema = (XSDSchema)schemaList_.elementAt(i);
+ xsdSchema.validate();
+ EList errors = xsdSchema.getAllDiagnostics();
+ if (!errors.isEmpty())
+ {
+ for (ListIterator li = errors.listIterator();li.hasNext();)
+ {
+ XSDDiagnostic xd = (XSDDiagnostic)li.next();
+ String msg = xd.getMessage();
+ // do not report low severity diagnostics or erroneous array reference errors.
+ if (xd.getSeverity().getValue() == XSDDiagnosticSeverity.FATAL_LITERAL.getValue() || (msg != null && msg.length() > 0 && msg.toLowerCase().indexOf("#array") != -1))
+ li.remove();
+ else
+ {
+ if (msg != null && msg.length() > 0)
+ errorMessages.addElement(xd.getMessage());
+ }
+ }
+ }
+ }
+
+ for (int i=0;i<constantSchemaList_.size();i++)
+ schemaList_.addElement(constantSchemaList_.elementAt(i));
+ }
+ return errorMessages;
+ }
+
+ private final void gatherSchemas(Definition definition, String definitionURL)
+ {
+ Types types = definition.getTypes();
+ if (types != null)
+ {
+ List extTypes = types.getExtensibilityElements();
+ if (extTypes != null)
+ {
+ for (int i=0;i<extTypes.size();i++)
+ {
+ Object obj = extTypes.get(i);
+ if (obj instanceof UnknownExtensibilityElement)
+ {
+ UnknownExtensibilityElement schemaElement = (UnknownExtensibilityElement)obj;
+ if (isW3SchemaElementType(schemaElement.getElementType()))
+ {
+ XSDSchema xsdSchema = XSDSchemaImpl.createSchema(schemaElement.getElement());
+ schemaList_.addElement(xsdSchema);
+ gatherSchemaDirective(xsdSchema, definitionURL);
+ }
+ }
+ else if (obj instanceof XSDSchemaExtensibilityElementImpl)
+ {
+ XSDSchemaExtensibilityElementImpl schemaElement = (XSDSchemaExtensibilityElementImpl)obj;
+ XSDSchema xsdSchema = XSDSchemaImpl.createSchema(schemaElement.getElement());
+ schemaList_.addElement(xsdSchema);
+ gatherSchemaDirective(xsdSchema, definitionURL);
+ }
+ }
+ }
+ }
+ Map imports = definition.getImports();
+ if (imports != null)
+ gatherImportedSchemas(definition,imports);
+ }
+
+ private final void gatherSchemaDirective(XSDSchema xsdSchema, String xsdSchemaURL)
+ {
+ if (xsdSchema != null)
+ {
+ EList xsdSchemaContents = xsdSchema.getContents();
+ for (Iterator it = xsdSchemaContents.iterator(); it.hasNext();)
+ {
+ Object content = it.next();
+ if (content instanceof XSDSchemaDirective)
+ {
+ XSDSchemaDirective xsdSchemaDirective = (XSDSchemaDirective)content;
+ StringBuffer xsdSchemaDirectiveURL = new StringBuffer();
+ String xsdSchemaDirectiveLocation = xsdSchemaDirective.getSchemaLocation();
+ if (xsdSchemaDirectiveLocation != null && xsdSchemaDirectiveLocation.indexOf(':') == -1 && xsdSchemaURL != null && xsdSchemaURL.indexOf(':') != -1)
+ {
+ // relative URL
+ int index = xsdSchemaURL.lastIndexOf('/');
+ if (index != -1)
+ xsdSchemaDirectiveURL.append(xsdSchemaURL.substring(0, index+1));
+ else
+ {
+ xsdSchemaDirectiveURL.append(xsdSchemaURL);
+ xsdSchemaDirectiveURL.append('/');
+ }
+ }
+ xsdSchemaDirectiveURL.append(xsdSchemaDirectiveLocation);
+ // resolve schema directive
+ XSDSchema resolvedSchema = xsdSchemaDirective.getResolvedSchema();
+ if (resolvedSchema == null && xsdSchemaDirectiveURL.length() > 0)
+ resolvedSchema = getSchema(xsdSchemaDirectiveURL.toString());
+ if (resolvedSchema != null)
+ {
+ schemaList_.addElement(resolvedSchema);
+ gatherSchemaDirective(resolvedSchema, xsdSchemaDirectiveURL.toString());
+ }
+ }
+ }
+ }
+ }
+
+ private final boolean isW3SchemaElementType(QName qname)
+ {
+ for (int i=0;i<w3SchemaQNameList_.size();i++)
+ {
+ QName w3SchemaQName = (QName)w3SchemaQNameList_.elementAt(i);
+ if (w3SchemaQName.equals(qname))
+ return true;
+ }
+ return false;
+ }
+
+ private final void gatherImportedSchemas(Definition definition,Map imports)
+ {
+ for (Iterator iterator = imports.keySet().iterator();iterator.hasNext();)
+ {
+ List importList = (List)imports.get(iterator.next());
+ for (int i=0;i<importList.size();i++)
+ {
+ Import imp = (Import)importList.get(i);
+ StringBuffer locURI = new StringBuffer(imp.getLocationURI());
+ if (!Validator.validateURL(locURI.toString()))
+ {
+ String base = definition.getDocumentBaseURI();
+ locURI.insert(0,base.substring(0,base.lastIndexOf('/')+1));
+ }
+ try
+ {
+ Definition importDef = loadWSDL(locURI.toString());
+ gatherSchemas(importDef, locURI.toString());
+ }
+ catch (WSDLException e)
+ {
+ // May be an XSD file.
+ gatherSchema(locURI.toString());
+ }
+ }
+ }
+ }
+
+ private final void gatherSchema(String locURI)
+ {
+ XSDSchema xsdSchema = getSchema(locURI);
+ if (xsdSchema != null)
+ {
+ schemaList_.addElement(xsdSchema);
+ gatherSchemaDirective(xsdSchema, locURI);
+ }
+ }
+
+ private final XSDSchema getSchema(String locURI)
+ {
+ XSDSchema xsdSchema = XSDSchemaImpl.getSchemaForSchema(locURI);
+ if (xsdSchema == null)
+ {
+ XSDParser p = new XSDParser();
+ InputStream is = NetUtils.getURLInputStream(locURI);
+ if (is != null)
+ {
+ p.parse(is);
+ xsdSchema = p.getSchema();
+ }
+ }
+ return xsdSchema;
+ }
+
+ public void setDefinition(Definition definition)
+ {
+ definition_ = definition;
+ }
+
+ public Definition getDefinition()
+ {
+ return definition_;
+ }
+
+ public void buildModel() {
+ if (definition_ != null) {
+ Map services = new HashMap(definition_.getServices());
+ WSDLServiceElement[] wsdlServiceElements = new WSDLServiceElement[getNumberOfElements(WSDLModelConstants.REL_WSDL_SERVICE)];
+ Enumeration e = getElements(WSDLModelConstants.REL_WSDL_SERVICE);
+ for (int i = 0; i < wsdlServiceElements.length; i++) {
+ wsdlServiceElements[i] = (WSDLServiceElement)e.nextElement();
+ }
+ for (int j = 0; j < wsdlServiceElements.length; j++) {
+ QName qname = wsdlServiceElements[j].getService().getQName();
+ Service service = (Service)services.get(qname);
+ if (service != null) {
+ services.remove(qname);
+ wsdlServiceElements[j].setService(service);
+ wsdlServiceElements[j].buildModel();
+ }
+ else
+ disconnect(wsdlServiceElements[j], WSDLModelConstants.REL_WSDL_SERVICE);
+ }
+ for (Iterator it = services.values().iterator();it.hasNext();) {
+ Service service = (Service)it.next();
+ WSDLServiceElement wsdlServiceElement = new WSDLServiceElement(service.getQName().getLocalPart(), getModel(), service);
+ connect(wsdlServiceElement,WSDLModelConstants.REL_WSDL_SERVICE,ModelConstants.REL_OWNER);
+ wsdlServiceElement.buildModel();
+ }
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLOperationElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLOperationElement.java
new file mode 100644
index 000000000..d1a102163
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLOperationElement.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.datamodel;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.*;
+
+import javax.wsdl.extensions.soap.*;
+import javax.wsdl.extensions.*;
+import javax.wsdl.*;
+
+import java.util.*;
+
+public class WSDLOperationElement extends WSDLCommonElement
+{
+ public static final int OPERATION_TYPE_SOAP = 0;
+ public static final int OPERATION_TYPE_HTTP_GET = 1;
+ public static final int OPERATION_TYPE_HTTP_POST = 2;
+
+ private int operationType_;
+ private Operation operation_;
+ private WSDLPartsToXSDTypeMapper wsdlPartsToXsdTypeMapper_;
+ private XSDToFragmentController fragController_;
+ private boolean isDocumentStyle_;
+ private boolean isUseLiteral_;
+ private String soapAction_;
+ private String encodingStyle_;
+ private String encodingNamespace_;
+
+ private final void gatherSoapInformation(WSDLBindingElement bindingElement,SOAPBinding soapBinding)
+ {
+ // Initialize defaults.
+ isDocumentStyle_ = true;
+ soapAction_ = "";
+ isUseLiteral_ = true;
+ encodingStyle_ = null;
+ encodingNamespace_ = null;
+
+ Binding binding = bindingElement.getBinding();
+ if (soapBinding != null)
+ isDocumentStyle_ = "document".equals(soapBinding.getStyle());
+ BindingOperation bindingOperation = getBindingOperation(bindingElement);
+ SOAPOperation soapOperation = null;
+ String soapAction = "";
+ for (Iterator i = bindingOperation.getExtensibilityElements().iterator();i.hasNext();)
+ {
+ ExtensibilityElement e = (ExtensibilityElement)i.next();
+ if (e instanceof SOAPOperation)
+ {
+ soapOperation = (SOAPOperation)e;
+ soapAction_ = soapOperation.getSoapActionURI();
+ String style = soapOperation.getStyle();
+ if (style != null)
+ isDocumentStyle_ = style.equals("document");
+ break;
+ }
+ }
+
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ SOAPBody soapBody = null;
+ for (Iterator i = bindingInput.getExtensibilityElements().iterator();i.hasNext();)
+ {
+ ExtensibilityElement e = (ExtensibilityElement)i.next();
+ if (e instanceof SOAPBody)
+ {
+ soapBody = (SOAPBody)e;
+ isUseLiteral_ = "literal".equals(soapBody.getUse());
+ if (!isUseLiteral_)
+ {
+ // Encoded.
+ for (Iterator j = soapBody.getEncodingStyles().iterator();j.hasNext();)
+ {
+ encodingStyle_ = (String)j.next();
+ encodingNamespace_ = soapBody.getNamespaceURI();
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ public WSDLOperationElement(String name,WSDLBindingElement bindingElement,Operation operation)
+ {
+ super(name, bindingElement.getModel());
+ // Set the default operation type to be SOAP.
+ setOperation(bindingElement,operation);
+ }
+
+ public void setOperation(WSDLBindingElement bindingElement,Operation operation) {
+ operation_ = operation;
+ setDocumentation(operation.getDocumentationElement());
+ fragController_ = null;
+ wsdlPartsToXsdTypeMapper_ = null;
+ operationType_ = bindingElement.getBindingType();
+ ExtensibilityElement bindingExtensibilityElement = bindingElement.getBindingExtensibilityElement();
+ switch (operationType_)
+ {
+ case BindingTypes.SOAP:
+ gatherSoapInformation(bindingElement,(SOAPBinding)bindingExtensibilityElement);
+ case BindingTypes.HTTP_GET:
+ case BindingTypes.HTTP_POST:
+ default:
+ break;
+ }
+ }
+
+ public Operation getOperation() {
+ return operation_;
+ }
+
+ public BindingOperation getBindingOperation()
+ {
+ return getBindingOperation((WSDLBindingElement)getParentElement());
+ }
+
+ private BindingOperation getBindingOperation(WSDLBindingElement bindingElement)
+ {
+ Binding binding = bindingElement.getBinding();
+ String operationInputName = null;
+ String operationOutputName = null;
+ Input operationInput = operation_.getInput();
+ Output operationOutput = operation_.getOutput();
+ if (operationInput != null)
+ operationInputName = operationInput.getName();
+ if (operationOutput != null)
+ operationOutputName = operationOutput.getName();
+ BindingOperation bindingOperation = binding.getBindingOperation(operation_.getName(),operationInputName,operationOutputName);
+ if (bindingOperation == null)
+ bindingOperation = binding.getBindingOperation(operation_.getName(),null,null);
+ return bindingOperation;
+ }
+
+ public List getOrderedBodyParts()
+ {
+ List parts = new Vector(operation_.getInput().getMessage().getOrderedParts(operation_.getParameterOrdering()));
+ BindingOperation bindingOperation = getBindingOperation();
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ for (Iterator it = bindingInput.getExtensibilityElements().iterator(); it.hasNext();)
+ {
+ ExtensibilityElement e = (ExtensibilityElement)it.next();
+ if (e instanceof SOAPBody)
+ {
+ SOAPBody soapBody = (SOAPBody)e;
+ List bodyParts = soapBody.getParts();
+ if (bodyParts != null)
+ {
+ for (int i = 0; i < parts.size(); i++)
+ {
+ Part part = (Part)parts.get(i);
+ if (!bodyParts.contains(part) && !bodyParts.contains(part.getName()))
+ {
+ parts.remove(i);
+ i--;
+ }
+ }
+ }
+ break;
+ }
+ }
+ return parts;
+ }
+
+ private XSDToFragmentController getXSDToFragmentController() {
+ if (fragController_ == null) {
+ fragController_ = new XSDToFragmentController();
+ fragController_.setWSDLPartsToXSDTypeMapper(wsdlPartsToXsdTypeMapper_);
+ }
+ return fragController_;
+ }
+
+ private XSDNamedComponent getSchema(Part part, String id) {
+ if (wsdlPartsToXsdTypeMapper_ == null) {
+ wsdlPartsToXsdTypeMapper_ = new WSDLPartsToXSDTypeMapper();
+ WSDLBindingElement bindingElement = (WSDLBindingElement)getParentElement();
+ WSDLServiceElement serviceElement = (WSDLServiceElement)bindingElement.getParentElement();
+ WSDLElement wsdlElement = (WSDLElement)serviceElement.getParentElement();
+ wsdlPartsToXsdTypeMapper_.addSchemas(wsdlElement.getSchemaList());
+ }
+ return wsdlPartsToXsdTypeMapper_.getXSDType(part, id);
+ }
+
+ public IXSDFragment getFragment(Part part) {
+ return getFragment(part, true);
+ }
+
+ public IXSDFragment getFragment(Part part, boolean isInput) {
+ StringBuffer id = new StringBuffer();
+ if (isInput)
+ id.append(FragmentConstants.INPUT_ID);
+ else
+ id.append(FragmentConstants.OUTPUT_ID);
+ String partName = part.getName();
+ id.append(partName);
+ XSDToFragmentConfiguration config = new XSDToFragmentConfiguration();
+ config.setIsWSDLPart(true);
+ config.setWSDLPartName(partName);
+ config.setXSDComponent(getSchema(part, id.toString()));
+ if (isDocumentStyle())
+ config.setStyle(FragmentConstants.STYLE_DOCUMENT);
+ else
+ config.setStyle(FragmentConstants.STYLE_RPC);
+ if (operationType_ == BindingTypes.SOAP)
+ {
+ if (!isUseLiteral_)
+ config.setPartEncoding(FragmentConstants.ENCODING_SOAP);
+ }
+ else
+ config.setPartEncoding(FragmentConstants.ENCODING_URL);
+ IXSDFragment fragment = getXSDToFragmentController().getFragment(config, id.toString(), part.getName());
+ return fragment;
+ }
+
+ public IXSDFragment getFragmentByID(String id) {
+ return getXSDToFragmentController().getCachedFragment(id);
+ }
+
+ public void removeAllFragment() {
+ getXSDToFragmentController().emptyCache();
+ }
+
+ public boolean isDocumentStyle()
+ {
+ return isDocumentStyle_;
+ }
+
+ public String getSoapAction()
+ {
+ return soapAction_;
+ }
+
+ public boolean isUseLiteral()
+ {
+ return isUseLiteral_;
+ }
+
+ public String getEncodingStyle()
+ {
+ return encodingStyle_;
+ }
+
+ public String getEncodingNamespace()
+ {
+ return encodingNamespace_;
+ }
+
+ public int getOperationType()
+ {
+ return operationType_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLServiceElement.java
new file mode 100644
index 000000000..7d3045679
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/datamodel/WSDLServiceElement.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+import javax.xml.namespace.QName;
+import javax.wsdl.extensions.soap.*;
+import javax.wsdl.extensions.http.*;
+import javax.wsdl.extensions.*;
+import javax.wsdl.*;
+
+import java.util.*;
+
+public class WSDLServiceElement extends WSDLCommonElement
+{
+
+ private Service service_;
+
+ public WSDLServiceElement(String name, Model model, Service service)
+ {
+ super(name, model);
+ setService(service);
+ }
+
+ public void setService(Service service) {
+ service_ = service;
+ setDocumentation(service.getDocumentationElement());
+ }
+
+ public Service getService() {
+ return service_;
+ }
+
+ public String getAddressLocation(Binding binding)
+ {
+ Map ports = service_.getPorts();
+ for (Iterator i = ports.values().iterator();i.hasNext();)
+ {
+ Port port = (Port)i.next();
+ if (port.getBinding().getQName().equals(binding.getQName()))
+ {
+ List extensibilityElements = port.getExtensibilityElements();
+ for (Iterator j = extensibilityElements.iterator();j.hasNext();)
+ {
+ ExtensibilityElement element = (ExtensibilityElement)j.next();
+ if (element instanceof SOAPAddress)
+ {
+ SOAPAddress soapAddress = (SOAPAddress)element;
+ return soapAddress.getLocationURI();
+ }
+ else if (element instanceof HTTPAddress)
+ {
+ HTTPAddress httpAddress = (HTTPAddress)element;
+ return httpAddress.getLocationURI();
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public void buildModel() {
+ if (service_ != null) {
+ Map ports = service_.getPorts();
+ Map bindings = new HashMap();
+ for (Iterator it = ports.values().iterator();it.hasNext();) {
+ Port port = (Port)it.next();
+ Binding binding = port.getBinding();
+ if (binding.getPortType() == null)
+ continue;
+ else
+ bindings.put(binding.getQName(), binding);
+ }
+ WSDLBindingElement[] wsdlBindingElements = new WSDLBindingElement[getNumberOfElements(WSDLModelConstants.REL_WSDL_BINDING)];
+ Enumeration e = getElements(WSDLModelConstants.REL_WSDL_BINDING);
+ for (int i = 0; i < wsdlBindingElements.length; i++) {
+ wsdlBindingElements[i] = (WSDLBindingElement)e.nextElement();
+ }
+ for (int j = 0; j < wsdlBindingElements.length; j++) {
+ QName qname = wsdlBindingElements[j].getBinding().getQName();
+ Binding binding = (Binding)bindings.get(qname);
+ if (binding != null) {
+ bindings.remove(qname);
+ wsdlBindingElements[j].setBinding(binding);
+ wsdlBindingElements[j].buildModel();
+ }
+ else
+ disconnect(wsdlBindingElements[j], WSDLModelConstants.REL_WSDL_BINDING);
+ }
+ for (Iterator it = bindings.values().iterator();it.hasNext();) {
+ Binding binding = (Binding)it.next();
+ WSDLBindingElement wsdlBindingElement = new WSDLBindingElement(binding.getQName().getLocalPart(), getModel(), binding);
+ connect(wsdlBindingElement,WSDLModelConstants.REL_WSDL_BINDING,ModelConstants.REL_OWNER);
+ wsdlBindingElement.buildModel();
+ }
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IFragment.java
new file mode 100644
index 000000000..114e13d29
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IFragment.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+
+import java.util.Vector;
+
+public interface IFragment {
+ public void setID(String id);
+ public String getID();
+
+ public void setName(String name);
+ public String getName();
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException;
+
+ public void setParameterValues(String paramKey, String[] params);
+ public void setParameterValues(String paramKey, Vector params);
+ public String[] getParameterValues(String paramKey);
+ public String getParameterValue(String paramKey, int paramIndex);
+
+ public boolean validateAllParameterValues();
+ public boolean validateParameterValues(String paramKey);
+ public boolean validateParameterValue(String paramKey, int paramIndex);
+
+ public String getInformationFragment();
+ public String getWriteFragment();
+ public String getReadFragment();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncArrayFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncArrayFragment.java
new file mode 100644
index 000000000..d30dbd5b4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncArrayFragment.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface ISOAPEncArrayFragment extends IXSDGroupSeqFragment {
+ public String createSOAPEncArrayInstance();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncodingWrapperFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncodingWrapperFragment.java
new file mode 100644
index 000000000..65013d94b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/ISOAPEncodingWrapperFragment.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import java.util.Hashtable;
+
+public interface ISOAPEncodingWrapperFragment extends IXSDDelegationFragment
+{
+ public void setURIReferences(Hashtable uriReferences);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDComplexFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDComplexFragment.java
new file mode 100644
index 000000000..dca6da2be
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDComplexFragment.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDComplexFragment extends IXSDMapFragment {
+ public String createComplexInstance();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDDelegationFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDDelegationFragment.java
new file mode 100644
index 000000000..eb43be581
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDDelegationFragment.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDDelegationFragment extends IXSDFragment {
+ public void setXSDDelegationFragment(IXSDFragment xsdFragment);
+ public IXSDFragment getXSDDelegationFragment();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDElementFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDElementFragment.java
new file mode 100644
index 000000000..19b872b0f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDElementFragment.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDElementFragment extends IXSDDelegationFragment {
+ public int getMinOccurs();
+ public int getMaxOccurs();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDFragment.java
new file mode 100644
index 000000000..e15ae7694
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDFragment.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.w3c.dom.Element;
+import org.w3c.dom.Document;
+import java.util.Hashtable;
+
+public interface IXSDFragment extends IFragment {
+ public void setXSDToFragmentConfiguration(XSDToFragmentConfiguration config);
+ public XSDToFragmentConfiguration getXSDToFragmentConfiguration();
+
+ public void setXSDTypeDefinition(XSDTypeDefinition typeDef);
+ public XSDTypeDefinition getXSDTypeDefinition();
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments);
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc);
+
+ public String genID();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupAllFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupAllFragment.java
new file mode 100644
index 000000000..9bd54e66e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupAllFragment.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDGroupAllFragment extends IXSDGroupFragment {
+ public String getGroupAllInstance();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupChoiceFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupChoiceFragment.java
new file mode 100644
index 000000000..864837cc2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupChoiceFragment.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.xsd.XSDParticle;
+
+public interface IXSDGroupChoiceFragment extends IXSDGroupFragment {
+ public XSDParticle[] getChoices();
+ public String createGroupChoiceInstance(int choiceIndex);
+ public int getChoiceIndex(String groupID);
+ public void setChoiceIndex(String groupID, int choiceIndex);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupFragment.java
new file mode 100644
index 000000000..9da875972
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupFragment.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.xsd.XSDModelGroup;
+
+public interface IXSDGroupFragment extends IXSDMapFragment {
+ public void setXSDModelGroup(XSDModelGroup xsdModelGroup);
+ public XSDModelGroup getXSDModelGroup();
+
+ public String[] getGroupIDs();
+ public String[] getGroupMemberIDs(String groupID);
+ public IXSDFragment[] getGroupMemberFragments(String groupID);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupSeqFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupSeqFragment.java
new file mode 100644
index 000000000..614433eee
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDGroupSeqFragment.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDGroupSeqFragment extends IXSDGroupFragment {
+ public String createGroupSeqInstance();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDMapFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDMapFragment.java
new file mode 100644
index 000000000..1a9fd3b9a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDMapFragment.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDMapFragment extends IXSDFragment {
+ public void setXSDToFragmentController(XSDToFragmentController controller);
+ public XSDToFragmentController getXSDToFragmentController();
+
+ public String createInstance();
+
+ public String[] getFragmentsOrder();
+ public IXSDFragment getFragment(String id);
+ public IXSDFragment[] getFragments(String[] ids);
+ public IXSDFragment[] getAllFragments();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleAtomicFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleAtomicFragment.java
new file mode 100644
index 000000000..33f97da25
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleAtomicFragment.java
@@ -0,0 +1,14 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDSimpleAtomicFragment extends IXSDFragment {
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleListFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleListFragment.java
new file mode 100644
index 000000000..00925a379
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleListFragment.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+public interface IXSDSimpleListFragment extends IXSDMapFragment {
+ public String createListInstance();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleUnionFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleUnionFragment.java
new file mode 100644
index 000000000..ba86a1232
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/IXSDSimpleUnionFragment.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+
+public interface IXSDSimpleUnionFragment extends IXSDMapFragment {
+ public XSDSimpleTypeDefinition[] getMemberTypeDefinitions();
+ public String createUnionInstance(int memberTypeIndex);
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDComplexTypeToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDComplexTypeToFragmentMapper.java
new file mode 100644
index 000000000..7942721d8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDComplexTypeToFragmentMapper.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.XSDTypeDefinitionUtil;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeContent;
+
+public class XSDComplexTypeToFragmentMapper extends XSDToFragmentMapper {
+ public XSDComplexTypeToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)config.getXSDComponent();
+ if (complexType != null && complexType.isMixed())
+ return getXSDDefaultFragment(config, id, name);
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ if (complexTypeContent != null)
+ return getXSDComplexFragment(config, id, name);
+ else
+ return getXSDEmptyFragment(config, id, name);
+ }
+
+ private IXSDFragment getXSDComplexFragment(XSDToFragmentConfiguration config, String id, String name) {
+ int minOccurs = config.getMinOccurs();
+ int maxOccurs = config.getMaxOccurs();
+ IXSDComplexFragment frag;
+ if (minOccurs == maxOccurs)
+ return new XSDComplexFixFragment(id, name, config, getController());
+ else
+ return new XSDComplexRangeFragment(id, name, config, getController());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDElementDeclarationToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDElementDeclarationToFragmentMapper.java
new file mode 100644
index 000000000..bee204e91
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDElementDeclarationToFragmentMapper.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDTypeDefinition;
+
+
+public class XSDElementDeclarationToFragmentMapper extends XSDToFragmentMapper {
+ public XSDElementDeclarationToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ XSDElementDeclaration element = (XSDElementDeclaration)config.getXSDComponent();
+ if (element != null) {
+ XSDElementDeclaration resolvedElement = resolveXSDElementDeclaration(element);
+ XSDTypeDefinition typeDef = getXSDTypeDefinition(resolvedElement);
+ if (typeDef != null) {
+ int minOccurs = FragmentConstants.DEFAULT_MIN_OCCURS;
+ int maxOccurs = FragmentConstants.DEFAULT_MAX_OCCURS;
+ XSDConcreteComponent concreteComponent = element.getContainer();
+ if (concreteComponent != null && concreteComponent instanceof XSDParticle) {
+ XSDParticle particle = (XSDParticle)concreteComponent;
+ if (particle.isSetMinOccurs())
+ minOccurs = particle.getMinOccurs();
+ if (particle.isSetMaxOccurs())
+ maxOccurs = particle.getMaxOccurs();
+ }
+ config.setMinOccurs(minOccurs);
+ config.setMaxOccurs(maxOccurs);
+ IXSDElementFragment elementFrag = new XSDElementFragment(id, resolvedElement.getName(), config);
+ elementFrag.setXSDTypeDefinition(typeDef);
+ XSDToFragmentConfiguration elementTypeConfig = new XSDToFragmentConfiguration();
+ elementTypeConfig.setXSDComponent(typeDef);
+ elementTypeConfig.setMinOccurs(minOccurs);
+ elementTypeConfig.setMaxOccurs(maxOccurs);
+ elementTypeConfig.setStyle(config.getStyle());
+ elementTypeConfig.setPartEncoding(config.getPartEncoding());
+ elementTypeConfig.setWSDLPartName(config.getWSDLPartName());
+ IXSDFragment xsdFragment = getController().getFragment(elementTypeConfig, elementFrag.genID(), resolvedElement.getName());
+ elementFrag.setXSDDelegationFragment(xsdFragment);
+ return elementFrag;
+ }
+ }
+ return getXSDDefaultFragment(config, id, name);
+ }
+
+ private XSDElementDeclaration resolveXSDElementDeclaration(XSDElementDeclaration element) {
+ // port to org.eclipse.xsd
+ if (element.getResolvedElementDeclaration() != null)
+ {
+ XSDElementDeclaration resolvedElement = element.getResolvedElementDeclaration();
+ if (!isComponentResolvable(resolvedElement))
+ {
+ XSDComponent resolvedComponent = getWSDLPartsToXSDTypeMapper().resolveXSDNamedComponent(resolvedElement);
+ if (resolvedComponent != null && (resolvedComponent instanceof XSDElementDeclaration))
+ resolvedElement = (XSDElementDeclaration)resolvedComponent;
+ }
+ return resolvedElement;
+ }
+ else
+ return element;
+ }
+
+ private XSDTypeDefinition getXSDTypeDefinition(XSDElementDeclaration element) {
+ // port to org.eclipse.xsd
+ if (element.getTypeDefinition() != null)
+ return element.getTypeDefinition();
+ // port to org.eclipse.xsd
+ else if (element.getAnonymousTypeDefinition() != null)
+ return element.getAnonymousTypeDefinition();
+ else
+ return null;
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDLiteralXMLEncodingToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDLiteralXMLEncodingToFragmentMapper.java
new file mode 100644
index 000000000..55e440883
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDLiteralXMLEncodingToFragmentMapper.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+
+public class XSDLiteralXMLEncodingToFragmentMapper extends XSDToFragmentMapper {
+ private XSDSimpleTypeToFragmentMapper xsdSimpleMapper_;
+ private XSDComplexTypeToFragmentMapper xsdComplexMapper_;
+ private XSDElementDeclarationToFragmentMapper xsdElementMapper_;
+ private XSDParticleToFragmentMapper xsdParticleMapper_;
+
+ public XSDLiteralXMLEncodingToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ xsdSimpleMapper_ = null;
+ xsdComplexMapper_ = null;
+ xsdElementMapper_ = null;
+ xsdParticleMapper_= null;
+ }
+
+ private XSDSimpleTypeToFragmentMapper getXSDSimpleMapper() {
+ if (xsdSimpleMapper_ == null)
+ xsdSimpleMapper_ = new XSDSimpleTypeToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdSimpleMapper_;
+ }
+
+ private XSDComplexTypeToFragmentMapper getXSDComplexMapper() {
+ if (xsdComplexMapper_ == null)
+ xsdComplexMapper_ = new XSDComplexTypeToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdComplexMapper_;
+ }
+
+ private XSDElementDeclarationToFragmentMapper getXSDElementMapper() {
+ if (xsdElementMapper_ == null)
+ xsdElementMapper_ = new XSDElementDeclarationToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdElementMapper_;
+ }
+
+ private XSDParticleToFragmentMapper getXSDParticleMapper() {
+ if (xsdParticleMapper_ == null)
+ xsdParticleMapper_ = new XSDParticleToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdParticleMapper_;
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ config = resolveXSDComponent(config);
+ XSDComponent component = config.getXSDComponent();
+ if (!isComponentResolvable(component))
+ return getXSDDefaultFragment(config, id, name);
+ else if (component instanceof XSDElementDeclaration)
+ return getXSDElementMapper().getFragment(config, id, name);
+ else if (component instanceof XSDSimpleTypeDefinition)
+ return getXSDSimpleMapper().getFragment(config, id, name);
+ else if (component instanceof XSDComplexTypeDefinition)
+ return getXSDComplexMapper().getFragment(config, id, name);
+ else if (component instanceof XSDParticle)
+ return getXSDParticleMapper().getFragment(config, id, name);
+ else if (component instanceof XSDParticleContent)
+ return getXSDParticleMapper().getFragment(config, id, name);
+ else
+ return getXSDDefaultFragment(config, id, name);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDParticleToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDParticleToFragmentMapper.java
new file mode 100644
index 000000000..dc956cc53
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDParticleToFragmentMapper.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDCompositor;
+import org.eclipse.xsd.XSDWildcard;
+
+
+public class XSDParticleToFragmentMapper extends XSDToFragmentMapper {
+ public XSDParticleToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ XSDComponent component = config.getXSDComponent();
+ XSDParticleContent xsdParticleContent;
+ if (component instanceof XSDParticle)
+ xsdParticleContent = ((XSDParticle)component).getContent();
+ else if (component instanceof XSDParticleContent)
+ xsdParticleContent = (XSDParticleContent)component;
+ else
+ xsdParticleContent = null;
+ if (xsdParticleContent != null) {
+ if (xsdParticleContent instanceof XSDModelGroupDefinition)
+ return getXSDModelGroupDefFragment(config, id, name, (XSDModelGroupDefinition)xsdParticleContent);
+ else if (xsdParticleContent instanceof XSDModelGroup)
+ return getXSDModelGroupFragment(config, id, name, (XSDModelGroup)xsdParticleContent);
+ else if (xsdParticleContent instanceof XSDWildcard)
+ return getXSDWildcardFragment(config, id, name, (XSDWildcard)xsdParticleContent);
+ else
+ return getXSDDefaultFragment(config, id, name);
+ }
+ else
+ return getXSDDefaultFragment(config, id, name);
+ }
+
+ private IXSDFragment getXSDModelGroupDefFragment(XSDToFragmentConfiguration config, String id, String name, XSDModelGroupDefinition xsdModelGroupDef) {
+ XSDModelGroupDefinition resolvedXSDModelGroupDef = xsdModelGroupDef;
+ if (xsdModelGroupDef.isModelGroupDefinitionReference())
+ resolvedXSDModelGroupDef = xsdModelGroupDef.getResolvedModelGroupDefinition();
+ XSDModelGroup xsdModelGroup = resolvedXSDModelGroupDef.getModelGroup();
+ if (xsdModelGroup == null)
+ return getXSDDefaultFragment(config, id, name);
+ else
+ return getXSDModelGroupFragment(config, id, name, xsdModelGroup);
+ }
+
+ private IXSDFragment getXSDModelGroupFragment(XSDToFragmentConfiguration config, String id, String name, XSDModelGroup xsdModelGroup) {
+ int minOccurs = FragmentConstants.DEFAULT_MIN_OCCURS;
+ int maxOccurs = FragmentConstants.DEFAULT_MAX_OCCURS;
+ XSDConcreteComponent concreteComponent = xsdModelGroup.getContainer();
+ if (concreteComponent != null && concreteComponent instanceof XSDParticle) {
+ XSDParticle particle = (XSDParticle)concreteComponent;
+ if (particle.isSetMinOccurs())
+ minOccurs = particle.getMinOccurs();
+ if (particle.isSetMaxOccurs())
+ maxOccurs = particle.getMaxOccurs();
+ }
+ config.setMinOccurs(minOccurs);
+ config.setMaxOccurs(maxOccurs);
+ IXSDGroupFragment groupFragment = null;
+ switch (xsdModelGroup.getCompositor().getValue()) {
+ case XSDCompositor.SEQUENCE:
+ if (minOccurs == maxOccurs)
+ return new XSDGroupSeqFixFragment(id, name, config, getController(), xsdModelGroup);
+ else
+ return new XSDGroupSeqRangeFragment(id, name, config, getController(), xsdModelGroup);
+ case XSDCompositor.CHOICE:
+ if (minOccurs == maxOccurs)
+ return new XSDGroupChoiceFixFragment(id, name, config, getController(), xsdModelGroup);
+ else
+ return new XSDGroupChoiceRangeFragment(id, name, config, getController(), xsdModelGroup);
+ case XSDCompositor.ALL:
+ return new XSDGroupAllFragment(id, name, config, getController(), xsdModelGroup);
+ default:
+ return getXSDDefaultFragment(config, id, name);
+ }
+ }
+
+ private IXSDFragment getXSDWildcardFragment(XSDToFragmentConfiguration config, String id, String name, XSDWildcard xsdParticleContent) {
+ return getXSDDefaultFragment(config, id, name);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSOAPEncodingToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSOAPEncodingToFragmentMapper.java
new file mode 100644
index 000000000..e43c8b802
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSOAPEncodingToFragmentMapper.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.XSDTypeDefinitionUtil;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeContent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.XSDAttributeGroupContent;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.emf.common.util.EList;
+
+import org.w3c.dom.Element;
+
+public class XSDSOAPEncodingToFragmentMapper extends XSDToFragmentMapper {
+ private XSDLiteralXMLEncodingToFragmentMapper xsdLiteralMapper_;
+ private XSDComplexTypeToFragmentMapper xsdComplexMapper_;
+
+ public XSDSOAPEncodingToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ xsdLiteralMapper_ = null;
+ xsdComplexMapper_ = null;
+ }
+
+ private XSDLiteralXMLEncodingToFragmentMapper getXSDLiteralMapper() {
+ if (xsdLiteralMapper_ == null)
+ xsdLiteralMapper_ = new XSDLiteralXMLEncodingToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdLiteralMapper_;
+ }
+
+ private XSDComplexTypeToFragmentMapper getXSDComplexMapper() {
+ if (xsdComplexMapper_ == null)
+ xsdComplexMapper_ = new XSDComplexTypeToFragmentMapper(getController(), getWSDLPartsToXSDTypeMapper());
+ return xsdComplexMapper_;
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ if (config.getIsWSDLPart()) {
+ ISOAPEncodingWrapperFragment wrapperFragment = new SOAPEncodingWrapperFragment(id, name, null);
+ String delegationFragId = wrapperFragment.genID();
+ IXSDFragment delegationFragment = getFragmentDelegate(config, delegationFragId, name);
+ wrapperFragment.setXSDDelegationFragment(delegationFragment);
+ getController().addToCache(delegationFragId, delegationFragment);
+ return wrapperFragment;
+ }
+ else
+ return getFragmentDelegate(config, id, name);
+ }
+
+ public IXSDFragment getFragmentDelegate(XSDToFragmentConfiguration config, String id, String name) {
+ config = resolveXSDComponent(config);
+ XSDComponent component = config.getXSDComponent();
+ if (!isComponentResolvable(component))
+ return getXSDDefaultFragment(config, id, name);
+ else if (component instanceof XSDComplexTypeDefinition) {
+ XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)component;
+ if (XSDTypeDefinitionUtil.isSoapEncArray(complexType))
+ return getSOAPEncArrayFragment(config, id, name, complexType);
+ else
+ return getXSDComplexMapper().getFragment(config, id, name);
+ }
+ else
+ return getXSDLiteralMapper().getFragment(config, id, name);
+ }
+
+ private IXSDFragment getSOAPEncArrayFragment(XSDToFragmentConfiguration config, String id, String name, XSDComplexTypeDefinition complexType) {
+ EList xsdAttrContents = complexType.getAttributeContents();
+ for (int i = 0; i < xsdAttrContents.size(); i++) {
+ String soapEncArrayTypeNamespaceURI = null;
+ String soapEncArrayTypeLocalName = null;
+ int soapEncArrayDimension = 0;
+ XSDAttributeGroupContent xsdAttrContent = (XSDAttributeGroupContent)xsdAttrContents.get(i);
+ Element element = xsdAttrContent.getElement();
+ String arrayTypeAttr = element.getAttributeNS(FragmentConstants.URI_WSDL, FragmentConstants.QNAME_LOCAL_NAME_ARRAY_TYPE);
+ if (arrayTypeAttr != null && arrayTypeAttr.length() > 0) {
+ int colon = arrayTypeAttr.indexOf(FragmentConstants.COLON);
+ String nsPrefix = (colon > 0) ? arrayTypeAttr.substring(0, colon) : null;
+ soapEncArrayTypeNamespaceURI = (String)xsdAttrContent.getSchema().getQNamePrefixToNamespaceMap().get(nsPrefix);
+ int dimensionIndex = arrayTypeAttr.indexOf(FragmentConstants.LEFT_SQUARE_BRACKET);
+ soapEncArrayTypeLocalName = arrayTypeAttr.substring(colon + 1, dimensionIndex);
+ String dimensionString = arrayTypeAttr.substring(dimensionIndex, arrayTypeAttr.length());
+ for (int j = 0; j < dimensionString.length() - 1; j++) {
+ if (dimensionString.charAt(j) == FragmentConstants.LEFT_SQUARE_BRACKET.charAt(0) && dimensionString.charAt(j + 1) == FragmentConstants.RIGHT_SQUARE_BRACKET.charAt(0)) {
+ soapEncArrayDimension++;
+ j++;
+ }
+ else {
+ soapEncArrayDimension = 0;
+ break;
+ }
+ }
+ }
+ if (soapEncArrayTypeNamespaceURI != null && soapEncArrayTypeLocalName != null && soapEncArrayDimension == 1) {
+ XSDComponent soapEncArrayType = getWSDLPartsToXSDTypeMapper().getXSDTypeFromSchema(soapEncArrayTypeNamespaceURI, soapEncArrayTypeLocalName, false);
+ if (soapEncArrayType != null && soapEncArrayType instanceof XSDTypeDefinition) {
+ XSDModelGroup sequence = null;
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ if (complexTypeContent != null && (complexTypeContent instanceof XSDParticle)) {
+ XSDParticleContent xsdParticleContent = ((XSDParticle)complexTypeContent).getContent();
+ if (xsdParticleContent instanceof XSDModelGroup)
+ sequence = (XSDModelGroup)xsdParticleContent;
+ }
+ ISOAPEncArrayFragment frag;
+ if (config.getMinOccurs() == config.getMaxOccurs())
+ frag = new SOAPEncArrayFixFragment(id, name, config, getController(), sequence);
+ else
+ frag = new SOAPEncArrayRangeFragment(id, name, config, getController(), sequence);
+ frag.setXSDTypeDefinition((XSDTypeDefinition)soapEncArrayType);
+ return frag;
+ }
+ }
+ }
+ return getXSDComplexMapper().getFragment(config, id, name);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSimpleTypeToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSimpleTypeToFragmentMapper.java
new file mode 100644
index 000000000..0d9ed09b6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDSimpleTypeToFragmentMapper.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+import org.eclipse.xsd.*;
+
+public class XSDSimpleTypeToFragmentMapper extends XSDToFragmentMapper {
+ public XSDSimpleTypeToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ super(controller, wsdlToXSDMapper);
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)config.getXSDComponent();
+ if (simpleType != null && simpleType.getVariety() != null) {
+ switch (simpleType.getVariety().getValue()) {
+ case XSDVariety.ATOMIC:
+ return getXSDSimpleAtomicFragment(config, id, name);
+ case XSDVariety.LIST:
+ return getXSDSimpleListFragment(config, id, name);
+ case XSDVariety.UNION:
+ return getXSDSimpleUnionFragment(config, id, name);
+ default:
+ return getXSDDefaultFragment(config, id, name);
+ }
+ }
+ else
+ return getXSDDefaultFragment(config, id, name);
+ }
+
+ private IXSDFragment getXSDSimpleAtomicFragment(XSDToFragmentConfiguration config, String id, String name) {
+ boolean isFixed = ((config.getMinOccurs() == config.getMaxOccurs()) && config.getMaxOccurs() != FragmentConstants.UNBOUNDED);
+ XSDSimpleTypeDefinition xsdSimpleTypeDef = (XSDSimpleTypeDefinition)config.getXSDComponent();
+ XSDSimpleTypeDefinition xsdBaseSimpleTypeDef = (XSDSimpleTypeDefinition)XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(xsdSimpleTypeDef);
+ String baseSimpleTypeDefNS = null;
+ String baseSimpleTypeDefName = null;
+ if (xsdBaseSimpleTypeDef != null)
+ {
+ baseSimpleTypeDefNS = xsdBaseSimpleTypeDef.getTargetNamespace();
+ baseSimpleTypeDefName = xsdBaseSimpleTypeDef.getName();
+ }
+ boolean isEnum = isSimpleTypeEnumeration(xsdSimpleTypeDef);
+ if (FragmentConstants.URI_XSD.equals(baseSimpleTypeDefNS))
+ {
+ if (baseSimpleTypeDefName.equals("date"))
+ return getXSDSimpleDateTimeFragment(id, name, config, ActionInputs.CALENDAR_TYPE_DATE,xsdSimpleTypeDef,isEnum,isFixed);
+ else if (baseSimpleTypeDefName.equals("dateTime"))
+ return getXSDSimpleDateTimeFragment(id, name, config, ActionInputs.CALENDAR_TYPE_DATETIME,xsdSimpleTypeDef,isEnum,isFixed);
+ else if (baseSimpleTypeDefName.equals("gYearMonth"))
+ return getXSDSimpleDateTimeFragment(id, name, config, ActionInputs.CALENDAR_TYPE_GYEARMONTH,xsdSimpleTypeDef,isEnum,isFixed);
+ else if (baseSimpleTypeDefName.equals("gMonthDay"))
+ return getXSDSimpleDateTimeFragment(id, name, config, ActionInputs.CALENDAR_TYPE_GMONTHDAY,xsdSimpleTypeDef,isEnum,isFixed);
+ else if (baseSimpleTypeDefName.equals("gDay"))
+ return getXSDSimpleGDayFragment(id, name, config, xsdSimpleTypeDef,isEnum,isFixed);
+ else if (baseSimpleTypeDefName.equals("boolean"))
+ return getXSDSimpleBooleanFragment(id, name, config, xsdSimpleTypeDef,isEnum,isFixed);
+ }
+
+ if (isEnum)
+ {
+ if (isFixed)
+ return new XSDSimpleAtomicEnumFixFragment(id, name, config, xsdSimpleTypeDef.getEnumerationFacets());
+ else
+ return new XSDSimpleAtomicEnumRangeFragment(id, name, config, xsdSimpleTypeDef.getEnumerationFacets());
+ }
+ else
+ {
+ if (isFixed)
+ return new XSDSimpleAtomicFixFragment(id, name, config);
+ else
+ return new XSDSimpleAtomicRangeFragment(id, name, config);
+ }
+ }
+
+ private XSDSimpleAtomicFragment getXSDSimpleDateTimeFragment(String id, String name, XSDToFragmentConfiguration config, int calendarType,XSDSimpleTypeDefinition xsdDateTimeType,boolean isEnum,boolean isFixed)
+ {
+ if (isEnum)
+ {
+ if (isFixed)
+ return new XSDSimpleAtomicEnumFixFragment(id, name, config, xsdDateTimeType.getEnumerationFacets());
+ else
+ return new XSDSimpleAtomicEnumRangeFragment(id, name, config, xsdDateTimeType.getEnumerationFacets());
+ }
+ else
+ {
+ if (isFixed)
+ return new XSDSimpleAtomicDateTimeFixFragment(id, name, config, calendarType);
+ else
+ return new XSDSimpleAtomicDateTimeRangeFragment(id, name, config, calendarType);
+ }
+ }
+
+ private XSDSimpleAtomicFragment getXSDSimpleGDayFragment(String id, String name, XSDToFragmentConfiguration config, XSDSimpleTypeDefinition xsdDateTimeType,boolean isEnum,boolean isFixed)
+ {
+ if (isEnum)
+ return null;
+ OptionVector optionVector = new OptionVector();
+ StringBuffer value = new StringBuffer();
+ for (int i=1;i<=31;i++)
+ {
+ value.setLength(0);
+ value.append("---");
+ if (i<10)
+ value.append(0);
+ value.append(i);
+ optionVector.addOption(String.valueOf(i),value.toString());
+ }
+ if (isFixed)
+ return new XSDSimpleAtomicEnumFixFragment(id, name, config, optionVector);
+ else
+ return new XSDSimpleAtomicEnumRangeFragment(id, name, config, optionVector);
+ }
+
+ private XSDSimpleAtomicFragment getXSDSimpleBooleanFragment(String id, String name, XSDToFragmentConfiguration config, XSDSimpleTypeDefinition xsdBooleanType,boolean isEnum,boolean isFixed)
+ {
+ if (isEnum)
+ return null;
+ OptionVector optionVector = new OptionVector();
+ optionVector.addOption("true","true");
+ optionVector.addOption("false","false");
+ if (isFixed)
+ return new XSDSimpleAtomicEnumFixFragment(id, name, config, optionVector);
+ else
+ return new XSDSimpleAtomicEnumRangeFragment(id, name, config, optionVector);
+ }
+
+ private IXSDFragment getXSDSimpleListFragment(XSDToFragmentConfiguration config, String id, String name) {
+ IXSDSimpleListFragment frag;
+ boolean isFixed = ((config.getMinOccurs() == config.getMaxOccurs()) && config.getMaxOccurs() != FragmentConstants.UNBOUNDED);
+ if (isFixed)
+ return new XSDSimpleListFixFragment(id, name, config, getController());
+ else
+ return new XSDSimpleListRangeFragment(id, name, config, getController());
+ }
+
+ private IXSDFragment getXSDSimpleUnionFragment(XSDToFragmentConfiguration config, String id, String name) {
+ IXSDSimpleUnionFragment frag;
+ boolean isFixed = ((config.getMinOccurs() == config.getMaxOccurs()) && config.getMaxOccurs() != FragmentConstants.UNBOUNDED);
+ if (isFixed)
+ return new XSDSimpleUnionFixFragment(id, name, config, getController());
+ else
+ return new XSDSimpleUnionRangeFragment(id, name, config, getController());
+ }
+
+ private boolean isSimpleTypeEnumeration(XSDSimpleTypeDefinition simpleType) {
+ EList e = simpleType.getEnumerationFacets();
+ return (e != null && e.size() > 0);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentConfiguration.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentConfiguration.java
new file mode 100644
index 000000000..0537da155
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentConfiguration.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.xsd.XSDComponent;
+
+public class XSDToFragmentConfiguration {
+ private XSDComponent component_;
+ private int minOccurs_;
+ private int maxOccurs_;
+ private int style_;
+ private int partEncoding_;
+ private boolean isWSDLPart_;
+ private String wsdlPartName_;
+
+ public XSDToFragmentConfiguration() {
+ component_ = null;
+ minOccurs_ = FragmentConstants.DEFAULT_MIN_OCCURS;
+ maxOccurs_ = FragmentConstants.DEFAULT_MAX_OCCURS;
+ style_ = FragmentConstants.STYLE_DOCUMENT;
+ partEncoding_ = FragmentConstants.ENCODING_LITERAL;
+ isWSDLPart_ = false;
+ wsdlPartName_ = null;
+ }
+
+ public void setXSDComponent(XSDComponent component) {
+ component_ = component;
+ }
+
+ public XSDComponent getXSDComponent() {
+ return component_;
+ }
+
+ public void setMinOccurs(int minOccurs) {
+ minOccurs_ = minOccurs;
+ }
+
+ public int getMinOccurs() {
+ return minOccurs_;
+ }
+
+ public void setMaxOccurs(int maxOccurs) {
+ maxOccurs_ = maxOccurs;
+ }
+
+ public int getMaxOccurs() {
+ return maxOccurs_;
+ }
+
+ public void setStyle(int style) {
+ style_ = style;
+ }
+
+ public int getStyle() {
+ return style_;
+ }
+
+ public void setPartEncoding(int partEncoding) {
+ partEncoding_ = partEncoding;
+ }
+
+ public int getPartEncoding() {
+ return partEncoding_;
+ }
+
+ public void setIsWSDLPart(boolean isWSDLPart) {
+ isWSDLPart_ = isWSDLPart;
+ }
+
+ public boolean getIsWSDLPart() {
+ return isWSDLPart_;
+ }
+
+ public void setWSDLPartName(String wsdlPartName) {
+ wsdlPartName_ = wsdlPartName;
+ }
+
+ public String getWSDLPartName() {
+ return wsdlPartName_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentController.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentController.java
new file mode 100644
index 000000000..e6f934247
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentController.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*;
+
+import java.util.Hashtable;
+
+public class XSDToFragmentController {
+ private WSDLPartsToXSDTypeMapper wsdlToXSDMapper_;
+ private XSDLiteralXMLEncodingToFragmentMapper xsdLiteralMapper_;
+ private XSDSOAPEncodingToFragmentMapper xsdSoapMapper_;
+ private Hashtable xsdToFragmentCache_;
+
+ public XSDToFragmentController() {
+ wsdlToXSDMapper_ = null;
+ xsdLiteralMapper_ = null;
+ xsdSoapMapper_ = null;
+ xsdToFragmentCache_ = new Hashtable();
+ }
+
+ public void setWSDLPartsToXSDTypeMapper(WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ wsdlToXSDMapper_ = wsdlToXSDMapper;
+ }
+
+ public WSDLPartsToXSDTypeMapper getWSDLPartsToXSDTypeMapper() {
+ return wsdlToXSDMapper_;
+ }
+
+ private XSDLiteralXMLEncodingToFragmentMapper getXSDLiteralMapper() {
+ if (xsdLiteralMapper_ == null)
+ xsdLiteralMapper_ = new XSDLiteralXMLEncodingToFragmentMapper(this, wsdlToXSDMapper_);
+ return xsdLiteralMapper_;
+ }
+
+ private XSDSOAPEncodingToFragmentMapper getXSDSOAPMapper() {
+ if (xsdSoapMapper_ == null)
+ xsdSoapMapper_ = new XSDSOAPEncodingToFragmentMapper(this, wsdlToXSDMapper_);
+ return xsdSoapMapper_;
+ }
+
+ public IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name) {
+ IXSDFragment frag = getCachedFragment(id);
+ if (frag != null)
+ return frag;
+ frag = getNewFragment(config, id, name);
+ if (frag != null)
+ addToCache(id, frag);
+ return frag;
+ }
+
+ public IXSDFragment getCachedFragment(String id) {
+ return (IXSDFragment)xsdToFragmentCache_.get(id);
+ }
+
+ public IXSDFragment getNewFragment(XSDToFragmentConfiguration config, String id, String name) {
+ switch (config.getPartEncoding())
+ {
+ case FragmentConstants.ENCODING_SOAP:
+ return getXSDSOAPMapper().getFragment(config,id,name);
+ case FragmentConstants.ENCODING_LITERAL:
+ case FragmentConstants.ENCODING_URL:
+ default:
+ return getXSDLiteralMapper().getFragment(config,id,name);
+ }
+ }
+
+ public void addToCache(String id, IXSDFragment frag) {
+ xsdToFragmentCache_.put(id, frag);
+ }
+
+ public void removeFromCache(String id) {
+ xsdToFragmentCache_.remove(id);
+ }
+
+ public void emptyCache() {
+ xsdToFragmentCache_.clear();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentMapper.java
new file mode 100644
index 000000000..afa1b10f8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/XSDToFragmentMapper.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.WSDLPartsToXSDTypeMapper;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+
+public abstract class XSDToFragmentMapper {
+ private XSDToFragmentController controller_;
+ private WSDLPartsToXSDTypeMapper wsdlToXSDMapper_;
+
+ public XSDToFragmentMapper(XSDToFragmentController controller, WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ controller_ = controller;
+ wsdlToXSDMapper_ = wsdlToXSDMapper;
+ }
+
+ public void setController(XSDToFragmentController controller) {
+ controller_ = controller;
+ }
+
+ public XSDToFragmentController getController() {
+ return controller_;
+ }
+
+ public void setWSDLPartsToXSDTypeMapper(WSDLPartsToXSDTypeMapper wsdlToXSDMapper) {
+ wsdlToXSDMapper_ = wsdlToXSDMapper;
+ }
+
+ public WSDLPartsToXSDTypeMapper getWSDLPartsToXSDTypeMapper() {
+ return wsdlToXSDMapper_;
+ }
+
+ protected IXSDFragment getXSDDefaultFragment(XSDToFragmentConfiguration config, String id, String name) {
+ XSDComponent xsdComponent = config.getXSDComponent();
+ String componentName = name;
+ if (xsdComponent instanceof XSDNamedComponent) {
+ String componentNameCopy = ((XSDNamedComponent)xsdComponent).getName();
+ if (componentNameCopy != null && componentNameCopy.length() > 0)
+ componentName = componentNameCopy;
+ }
+ return new XSDDefaultFragment(id, name, config);
+ }
+
+ protected IXSDFragment getXSDEmptyFragment(XSDToFragmentConfiguration config, String id, String name) {
+ return new XSDEmptyFragment(id, name, config);
+ }
+
+ public abstract IXSDFragment getFragment(XSDToFragmentConfiguration config, String id, String name);
+
+ protected XSDToFragmentConfiguration resolveXSDComponent(XSDToFragmentConfiguration config)
+ {
+ XSDComponent component = config.getXSDComponent();
+ if (!isComponentResolvable(component) && (component instanceof XSDNamedComponent))
+ {
+ XSDComponent resolvedComponent = getWSDLPartsToXSDTypeMapper().resolveXSDNamedComponent((XSDNamedComponent)component);
+ if (resolvedComponent != null)
+ config.setXSDComponent(resolvedComponent);
+ }
+ return config;
+ }
+
+ protected boolean isComponentResolvable(XSDComponent component)
+ {
+ if (component == null)
+ return false;
+ XSDSchema schema = component.getSchema();
+ if (schema == null)
+ return false;
+ if (schema.getTargetNamespace() == null)
+ return false;
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/Fragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/Fragment.java
new file mode 100644
index 000000000..3217007dc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/Fragment.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IFragment;
+
+import java.util.Vector;
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+public abstract class Fragment implements IFragment {
+ private String id_;
+ private String name_;
+ private Hashtable params_;
+
+ public Fragment(String id, String name) {
+ id_ = id;
+ name_ = name;
+ params_ = new Hashtable();
+ }
+
+ public void setID(String id) {
+ id_ = id;
+ }
+
+ public String getID() {
+ return id_;
+ }
+
+ public void setName(String name) {
+ name_ = name;
+ }
+
+ public String getName() {
+ return name_;
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ String[] params = parser.getParameterValues(getID());
+ setParameterValues(getID(), params);
+ return validateAllParameterValues();
+ }
+
+ public void setParameterValues(String paramKey, String[] params) {
+ if (params == null)
+ params_.remove(paramKey);
+ else
+ params_.put(paramKey, params);
+ }
+
+ public void setParameterValues(String paramKey, Vector params) {
+ if (params == null)
+ params_.remove(paramKey);
+ else {
+ String[] paramsArray = new String[params.size()];
+ for (int i = 0; i < paramsArray.length; i++) {
+ paramsArray[i] = params.get(i).toString();
+ }
+ setParameterValues(paramKey, paramsArray);
+ }
+ }
+
+ public String[] getParameterValues(String paramKey) {
+ return (String[])params_.get(paramKey);
+ }
+
+ public String getParameterValue(String paramKey, int paramIndex) {
+ String[] params = getParameterValues(paramKey);
+ if (params != null && paramIndex < params.length)
+ return params[paramIndex];
+ else
+ return null;
+ }
+
+ public boolean validateAllParameterValues() {
+ Enumeration paramKeys = params_.keys();
+ while (paramKeys != null && paramKeys.hasMoreElements()) {
+ if (!validateParameterValues((String)paramKeys.nextElement()))
+ return false;
+ }
+ return true;
+ }
+
+ public boolean validateParameterValues(String paramKey) {
+ String[] params = getParameterValues(paramKey);
+ for (int i = 0; params != null && i < params.length; i++) {
+ if (!validateParameterValue(paramKey, i))
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFixFragment.java
new file mode 100644
index 000000000..c6459dec5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFixFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class SOAPEncArrayFixFragment extends SOAPEncArrayFragment {
+ public SOAPEncArrayFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/SOAPEncArrayFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFragment.java
new file mode 100644
index 000000000..5d3c9e250
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayFragment.java
@@ -0,0 +1,188 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.ISOAPEncArrayFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.emf.common.util.EList;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public abstract class SOAPEncArrayFragment extends XSDGroupSeqFragment implements ISOAPEncArrayFragment
+{
+ public SOAPEncArrayFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup)
+ {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ removeGroupIDs();
+ boolean paramsValid = internalEquals(instanceDocumentsCopy, instanceDocuments);
+ for (int i = 0; i < instanceDocumentsCopy.length; i++)
+ {
+ IXSDFragment soapEncArrayTypeFrag = (getGroupMemberFragments(createSOAPEncArrayInstance()))[0];
+ Vector instancesVector = new Vector();
+ NodeList nl = instanceDocumentsCopy[i].getChildNodes();
+ for (int j = 0; j < nl.getLength(); j++)
+ {
+ Node node = nl.item(j);
+ if (node instanceof Element)
+ instancesVector.add(node);
+ else
+ paramsValid = false;
+ }
+ Element[] childInstanceDocuments = new Element[instancesVector.size()];
+ instancesVector.copyInto(childInstanceDocuments);
+ if (!soapEncArrayTypeFrag.setParameterValuesFromInstanceDocuments(setElementsTagName(childInstanceDocuments, soapEncArrayTypeFrag.getName())))
+ paramsValid = false;
+ }
+ return paramsValid;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ String[] groupIDs = getGroupIDs();
+ Element[] instanceDocument = new Element[groupIDs.length];
+ StringBuffer attrName = new StringBuffer();
+ StringBuffer attrValue = new StringBuffer();
+ StringBuffer attrArrayTypeName = new StringBuffer();
+ StringBuffer attrArrayTypeValue = new StringBuffer();
+ for (int i = 0; i < instanceDocument.length; i++)
+ {
+ int numInstances = 0;
+ instanceDocument[i] = doc.createElement(getInstanceDocumentTagName(namespaceTable));
+ IXSDFragment fragment = (getGroupMemberFragments(groupIDs[i]))[0];
+ Element[] fragmentInstanceDocuments = fragment.genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ for (int j = 0; j < fragmentInstanceDocuments.length; j++)
+ {
+ if (fragmentInstanceDocuments[j] != null)
+ instanceDocument[i].appendChild(fragmentInstanceDocuments[j]);
+ numInstances++;
+ }
+ String soapURI = FragmentConstants.URI_SOAP;
+ String soapPrefix = getPrefixFromNamespaceURI(soapURI, namespaceTable);
+ String soapEncArrayTypeURI = getXSDTypeDefinition().getTargetNamespace();
+ String soapEncArrayTypePrefix = getPrefixFromNamespaceURI(soapEncArrayTypeURI, namespaceTable);
+ // Set the arrayType attribute
+ attrName.setLength(0);
+ attrName.setLength(0);
+ attrName.append(soapPrefix);
+ attrName.append(FragmentConstants.COLON);
+ attrName.append(FragmentConstants.SOAP_ENC_ARRAY_TYPE);
+ attrValue.setLength(0);
+ attrValue.append(soapEncArrayTypePrefix);
+ attrValue.append(FragmentConstants.COLON);
+ attrValue.append(getXSDTypeDefinition().getName());
+ attrValue.append(FragmentConstants.LEFT_SQUARE_BRACKET);
+ attrValue.append(numInstances);
+ attrValue.append(FragmentConstants.RIGHT_SQUARE_BRACKET);
+ instanceDocument[i].setAttribute(attrName.toString(), attrValue.toString());
+ }
+ if (genXSIType)
+ {
+// TODO: Used to call the plugin's ignoreSchemaForSOAPArrays()method.
+ boolean ignoreSchemaForSOAPArrays = true;
+ if (ignoreSchemaForSOAPArrays)
+ {
+ for (int i = 0; i < instanceDocument.length; i++)
+ {
+ String xsiURI = FragmentConstants.URI_XSI;
+ String xsiPrefix = getPrefixFromNamespaceURI(xsiURI, namespaceTable);
+ String xsiTypeURI = FragmentConstants.URI_SOAP;
+ String xsiTypePrefix = getPrefixFromNamespaceURI(xsiTypeURI, namespaceTable);
+ attrName.setLength(0);
+ attrName.append(xsiPrefix).append(FragmentConstants.COLON).append(FragmentConstants.XSI_TYPE);
+ attrValue.setLength(0);
+ attrValue.append(xsiTypePrefix).append(FragmentConstants.COLON);
+ attrValue.append(FragmentConstants.QNAME_LOCAL_NAME_ARRAY);
+ instanceDocument[i].setAttribute(attrName.toString(), attrValue.toString());
+ }
+ }
+ else
+ return addXSIType(instanceDocument, namespaceTable);
+ }
+ return instanceDocument;
+ }
+
+ public String createSOAPEncArrayInstance()
+ {
+ if (getXSDTypeDefinition() != null)
+ {
+ String groupID = genID();
+ String[] groupMemberID = {genID()};
+ int minOccurs = 0;
+ int maxOccurs = FragmentConstants.UNBOUNDED;
+ XSDElementDeclaration elementDecl = null;
+ if (getXSDModelGroup() != null)
+ {
+ XSDParticle groupOwner = (XSDParticle)getXSDModelGroup().getContainer();
+ int groupMin = groupOwner.getMinOccurs();
+ int groupMax = groupOwner.getMaxOccurs();
+ int elementMin = 0;
+ int elementMax = FragmentConstants.UNBOUNDED;
+ EList xsdParticles = getXSDModelGroup().getParticles();
+ if (xsdParticles.size() > 0)
+ {
+ XSDParticleContent xsdParticleContent = ((XSDParticle)xsdParticles.get(0)).getContent();
+ if (xsdParticleContent instanceof XSDElementDeclaration)
+ {
+ elementDecl = (XSDElementDeclaration)xsdParticleContent;
+ XSDParticle elementOwner = (XSDParticle)elementDecl.getContainer();
+ elementMin = elementOwner.getMinOccurs();
+ elementMax = elementOwner.getMaxOccurs();
+ }
+ }
+ if (groupMin >= 0 && elementMin >= 0)
+ minOccurs = groupMin * elementMin;
+ if (groupMax >= 0 && groupMax != FragmentConstants.UNBOUNDED && elementMax >= 0 && elementMax != FragmentConstants.UNBOUNDED)
+ maxOccurs = groupMax * elementMax;
+ }
+ XSDToFragmentConfiguration thisConfig = getXSDToFragmentConfiguration();
+ XSDToFragmentConfiguration xsdConfig = new XSDToFragmentConfiguration();
+ xsdConfig.setXSDComponent(getXSDTypeDefinition());
+ xsdConfig.setMinOccurs(minOccurs);
+ xsdConfig.setMaxOccurs(maxOccurs);
+ xsdConfig.setStyle(thisConfig.getStyle());
+ xsdConfig.setPartEncoding(thisConfig.getPartEncoding());
+ xsdConfig.setWSDLPartName(thisConfig.getWSDLPartName());
+ String name = (elementDecl != null) ? elementDecl.getName() : getXSDTypeDefinition().getName();
+ IXSDFragment frag = getXSDToFragmentController().getFragment(xsdConfig, groupMemberID[0], name);
+ addFragment(groupMemberID[0], frag);
+ setGroupMemberIDs(groupID, groupMemberID);
+ return groupID;
+ }
+ else
+ return null;
+ }
+
+ public String createGroupSeqInstance()
+ {
+ return createSOAPEncArrayInstance();
+ }
+
+ public String createInstance()
+ {
+ return createSOAPEncArrayInstance();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayRangeFragment.java
new file mode 100644
index 000000000..f177ee62b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncArrayRangeFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class SOAPEncArrayRangeFragment extends SOAPEncArrayFragment {
+ public SOAPEncArrayRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/SOAPEncArrayRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncodingWrapperFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncodingWrapperFragment.java
new file mode 100644
index 000000000..324ed5e5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/SOAPEncodingWrapperFragment.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.ISOAPEncodingWrapperFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.xsd.XSDTypeDefinition;
+
+import org.w3c.dom.*;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public class SOAPEncodingWrapperFragment extends XSDDelegationFragment implements ISOAPEncodingWrapperFragment
+{
+ private static final String ID = "id";
+ private static final String HREF = "href";
+ private static final String POUND = "#";
+
+ private Hashtable uriReferenceTable_;
+
+ public SOAPEncodingWrapperFragment(String id, String name, XSDToFragmentConfiguration config)
+ {
+ super(id, name, null);
+ uriReferenceTable_ = null;
+ }
+
+ public void setXSDToFragmentConfiguration(XSDToFragmentConfiguration config)
+ {
+ getXSDDelegationFragment().setXSDToFragmentConfiguration(config);
+ }
+
+ public XSDToFragmentConfiguration getXSDToFragmentConfiguration()
+ {
+ return getXSDDelegationFragment().getXSDToFragmentConfiguration();
+ }
+
+ public void setXSDTypeDefinition(XSDTypeDefinition typeDef)
+ {
+ getXSDDelegationFragment().setXSDTypeDefinition(typeDef);
+ }
+
+ public XSDTypeDefinition getXSDTypeDefinition()
+ {
+ return getXSDDelegationFragment().getXSDTypeDefinition();
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ for (int i = 0; i < instanceDocuments.length; i++)
+ instanceDocuments[i] = resolveURIReferences(uriReferenceTable_, instanceDocuments[i]);
+ return getXSDDelegationFragment().setParameterValuesFromInstanceDocuments(instanceDocuments);
+ }
+
+ public void setURIReferences(Hashtable uriReferences)
+ {
+ uriReferenceTable_ = uriReferences;
+ }
+
+ public static Hashtable parseURIReferences(Element element, boolean overwrites)
+ {
+ Hashtable uriReferences = new Hashtable();
+ parseURIReferences(uriReferences, element, overwrites);
+ return uriReferences;
+ }
+
+ private static boolean parseURIReferences(Hashtable uriReferences, Element element, boolean overwrites)
+ {
+ boolean resolved = true;
+ if (element != null)
+ {
+ URIReference ref = null;
+ String id = element.getAttribute(ID);
+ resolved = !element.hasAttribute(HREF);
+ if (id != null && id.length() > 0 && (overwrites || !uriReferences.contains(id)))
+ {
+ ref = new URIReference(element, true);
+ uriReferences.put(id, ref);
+ }
+ NodeList nl = element.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node node = nl.item(i);
+ if (node instanceof Element)
+ resolved = parseURIReferences(uriReferences, (Element)node, overwrites) && resolved;
+ }
+ if (ref != null)
+ ref.setResolved(resolved);
+ }
+ return resolved;
+ }
+
+ public static Element resolveURIReferences(Hashtable uriReferences, Element element)
+ {
+ if (uriReferences != null && !uriReferences.isEmpty())
+ return resolveURIReferences(uriReferences, element.getOwnerDocument(), element, new Vector());
+ else
+ return element;
+ }
+
+ private static Element resolveURIReferences(Hashtable uriReferences, Document doc, Element element, Vector usedIds)
+ {
+ String href = element.getAttribute(HREF);
+ Element resolvedElement = element;
+ boolean resolved = false;
+ if (href != null && href.length() > 0)
+ {
+ URIReference ref = null;
+ if (href.indexOf(POUND) != -1)
+ href = href.substring(1, href.length());
+ if (!usedIds.contains(href))
+ {
+ ref = (URIReference)uriReferences.get(href);
+ if (ref != null)
+ {
+ usedIds.add(href);
+ Element elementRef = ref.getRefElement();
+ resolved = ref.getResolved();
+ resolvedElement = doc.createElement(element.getTagName());
+ NodeList nl = elementRef.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node node = nl.item(i);
+ if (node != null)
+ resolvedElement.appendChild(doc.importNode(node, true));
+ }
+ }
+ }
+ }
+ if (!resolved)
+ {
+ NodeList nl = resolvedElement.getChildNodes();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node node = nl.item(i);
+ if (node instanceof Element)
+ {
+ Element child = resolveURIReferences(uriReferences, resolvedElement.getOwnerDocument(), (Element)node, usedIds);
+ resolvedElement.replaceChild(child, node);
+ }
+ }
+ }
+ if (href != null)
+ usedIds.remove(href);
+ return resolvedElement;
+ }
+
+ private static class URIReference
+ {
+ private Element ref_;
+ private boolean resolved_;
+
+ public URIReference(Element ref, boolean resolved)
+ {
+ ref_ = ref;
+ resolved_ = resolved;
+ }
+
+ public Element getRefElement()
+ {
+ return ref_;
+ }
+
+ public void setRefElement(Element ref)
+ {
+ ref_ = ref;
+ }
+
+ public boolean getResolved()
+ {
+ return resolved_;
+ }
+
+ public void setResolved(boolean resolved)
+ {
+ resolved_ = resolved;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFixFragment.java
new file mode 100644
index 000000000..9b3fd0941
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFixFragment.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDComplexFixFragment extends XSDComplexFragment {
+ public XSDComplexFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDComplexRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDComplexFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFragment.java
new file mode 100644
index 000000000..ad97efdb7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexFragment.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDComplexFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.XSDTypeDefinitionUtil;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeContent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDComplexFinal;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import java.util.Vector;
+import java.util.Hashtable;
+import java.util.List;
+
+public abstract class XSDComplexFragment extends XSDMapFragment implements IXSDComplexFragment
+{
+ public XSDComplexFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller)
+ {
+ super(id, name, config, controller);
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ boolean paramsValid = internalEquals(instanceDocumentsCopy, instanceDocuments);
+ XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)getXSDTypeDefinition();
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ if (complexTypeContent instanceof XSDTypeDefinition)
+ return setParamsForXSDTypeDef(instanceDocumentsCopy) && paramsValid;
+ else
+ return setParamsForXSDParticle(instanceDocumentsCopy) && paramsValid;
+ }
+
+ private boolean setParamsForXSDTypeDef(Element[] instanceDocuments)
+ {
+ boolean paramsValid = true;
+ removeAllFragments();
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ IXSDFragment childFrag = getFragment(createInstance());
+ Element[] childInstanceDocuments = new Element[1];
+ childInstanceDocuments[0] = instanceDocuments[i];
+ if (!childFrag.setParameterValuesFromInstanceDocuments(setElementsTagName(childInstanceDocuments, childFrag.getName())))
+ paramsValid = false;
+ }
+ return paramsValid;
+ }
+
+ private boolean setParamsForXSDParticle(Element[] instanceDocuments)
+ {
+ boolean paramsValid = true;
+ removeAllFragments();
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ IXSDFragment childFrag = getFragment(createInstance());
+ Vector instancesVector = new Vector();
+ NodeList nl = instanceDocuments[i].getChildNodes();
+ for (int j = 0; j < nl.getLength(); j++)
+ {
+ Node node = nl.item(j);
+ if (node instanceof Element)
+ instancesVector.add(node);
+ else
+ paramsValid = false;
+ }
+ Element[] childInstanceDocuments = new Element[instancesVector.size()];
+ instancesVector.copyInto(childInstanceDocuments);
+ if (!childFrag.setParameterValuesFromInstanceDocuments(childInstanceDocuments))
+ paramsValid = false;
+ }
+ return paramsValid;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)getXSDTypeDefinition();
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ Element[] instanceDocuments;
+ String tagName = getInstanceDocumentTagName(namespaceTable);
+ if (complexTypeContent instanceof XSDTypeDefinition)
+ instanceDocuments = genInstancesForXSDTypeDef(genXSIType, namespaceTable, tagName, doc);
+ else
+ instanceDocuments = genInstancesForXSDParticle(genXSIType, namespaceTable, tagName, doc);
+ return (genXSIType ? addXSIType(instanceDocuments, namespaceTable) : instanceDocuments);
+ }
+
+ private Element[] genInstancesForXSDTypeDef(boolean genXSIType, Hashtable namespaceTable, String tagName, Document doc)
+ {
+ IXSDFragment[] fragments = getAllFragments();
+ Vector instanceDocumentsCopy = new Vector();
+ for (int i = 0; i < fragments.length; i++)
+ {
+ Element[] fragmentInstances = fragments[i].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ if (fragmentInstances.length > 0)
+ instanceDocumentsCopy.add(fragmentInstances[0]);
+ }
+ Element[] instanceDocuments = new Element[instanceDocumentsCopy.size()];
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ instanceDocuments[i] = (Element)instanceDocumentsCopy.get(i);
+ }
+ return setElementsTagName(instanceDocuments, tagName);
+ }
+
+ private Element[] genInstancesForXSDParticle(boolean genXSIType, Hashtable namespaceTable, String tagName, Document doc)
+ {
+ IXSDFragment[] childFrags = getAllFragments();
+ Element[] instanceDocuments = new Element[childFrags.length];
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ Element[] childInstances = childFrags[i].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ Element instanceDocument = doc.createElement(tagName);
+ for (int j = 0; j < childInstances.length; j++)
+ {
+ if (childInstances[j] != null)
+ instanceDocument.appendChild(childInstances[j]);
+ }
+ instanceDocuments[i] = instanceDocument;
+ }
+ return instanceDocuments;
+ }
+
+ private XSDModelGroup getXSDModelGroup(XSDParticle xsdParticle)
+ {
+ if (xsdParticle != null)
+ {
+ XSDParticleContent xsdParticleContent = xsdParticle.getContent();
+ if (xsdParticleContent != null)
+ {
+ if (xsdParticleContent instanceof XSDModelGroupDefinition)
+ {
+ XSDModelGroupDefinition xsdModelGroupDef = (XSDModelGroupDefinition)xsdParticleContent;
+ if (xsdModelGroupDef.isModelGroupDefinitionReference())
+ xsdModelGroupDef = xsdModelGroupDef.getResolvedModelGroupDefinition();
+ return xsdModelGroupDef.getModelGroup();
+ }
+ else if (xsdParticleContent instanceof XSDModelGroup)
+ return (XSDModelGroup)xsdParticleContent;
+ }
+ }
+ return null;
+ }
+
+ private List getInheritedParticles(XSDComplexTypeDefinition complexType)
+ {
+ Vector v = new Vector();
+ if (complexType.getDerivationMethod().getValue() == XSDComplexFinal.EXTENSION)
+ {
+ XSDTypeDefinition extType = complexType.getBaseType();
+ if (extType != null && extType != complexType && extType instanceof XSDComplexTypeDefinition)
+ {
+ XSDComplexTypeContent extTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent((XSDComplexTypeDefinition)extType);
+ if (extTypeContent instanceof XSDParticle)
+ {
+ XSDModelGroup xsdModelGroup = getXSDModelGroup((XSDParticle)extTypeContent);
+ if (xsdModelGroup != null)
+ {
+ v.addAll(getInheritedParticles((XSDComplexTypeDefinition)extType));
+ v.addAll(xsdModelGroup.getParticles());
+ }
+ }
+ }
+ }
+ return v;
+ }
+
+ private void gatherInheritedParticles(XSDComplexTypeDefinition complexType)
+ {
+ if (complexType.getDerivationMethod().getValue() == XSDComplexFinal.EXTENSION)
+ {
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ if (complexTypeContent instanceof XSDParticle)
+ {
+ XSDModelGroup xsdModelGroup = getXSDModelGroup((XSDParticle)complexTypeContent);
+ if (xsdModelGroup != null)
+ {
+ List inheritedParticles = getInheritedParticles(complexType);
+ List particles = xsdModelGroup.getParticles();
+ particles.addAll(0, inheritedParticles);
+ }
+ }
+ }
+ }
+
+ public String createComplexInstance()
+ {
+ XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition)getXSDTypeDefinition();
+ gatherInheritedParticles(complexType);
+ XSDComplexTypeContent complexTypeContent = XSDTypeDefinitionUtil.getXSDComplexTypeContent(complexType);
+ XSDToFragmentConfiguration thisConfig = getXSDToFragmentConfiguration();
+ XSDToFragmentConfiguration xsdConfig = new XSDToFragmentConfiguration();
+ xsdConfig.setXSDComponent(complexTypeContent);
+ xsdConfig.setStyle(thisConfig.getStyle());
+ xsdConfig.setPartEncoding(thisConfig.getPartEncoding());
+ xsdConfig.setWSDLPartName(thisConfig.getWSDLPartName());
+ String newID = genID();
+ addFragment(newID, getXSDToFragmentController().getFragment(xsdConfig, newID, newID));
+ return newID;
+ }
+
+ public String createInstance()
+ {
+ return createComplexInstance();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexRangeFragment.java
new file mode 100644
index 000000000..c3453ce18
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDComplexRangeFragment.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDComplexRangeFragment extends XSDComplexFragment {
+ public XSDComplexRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDComplexRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDComplexRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDefaultFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDefaultFragment.java
new file mode 100644
index 000000000..981aca99f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDefaultFragment.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public class XSDDefaultFragment extends XSDFragment {
+ public XSDDefaultFragment(String id, String name, XSDToFragmentConfiguration config) {
+ super(id, name, config);
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ String[] param = new String[1];
+ param[0] = parser.getParameter(getID());
+ setParameterValues(getID(), param);
+ return isElement(addRootElement(param[0]));
+ }
+
+ private String addRootElement(String element) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(FragmentConstants.ROOT_ELEMENT_START_TAG);
+ sb.append(element);
+ sb.append(FragmentConstants.ROOT_ELEMENT_END_TAG);
+ return sb.toString();
+ }
+
+ private boolean isElement(String elementString) {
+ try {
+ return (XMLUtils.stringToElement(elementString) != null);
+ }
+ catch (Throwable t) {
+ return false;
+ }
+ }
+
+ public boolean validateAllParameterValues() {
+ String param = getParameterValue(getID(), 0);
+ return (param == null || isElement(addRootElement(param)));
+ }
+
+ public boolean validateParameterValues(String paramKey) {
+ String param = getParameterValue(getID(), 0);
+ return (param == null || isElement(addRootElement(param)));
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex) {
+ String param = getParameterValue(getID(), 0);
+ return (param == null || isElement(addRootElement(param)));
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ StringBuffer sb = new StringBuffer();
+ boolean paramValid = true;
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ String instanceString = XMLUtils.serialize(instanceDocuments[i], true);
+ if (instanceString != null && instanceString.length() > 0)
+ sb.append(instanceString);
+ else
+ paramValid = false;
+ }
+ String[] param = {sb.toString()};
+ setParameterValues(getID(), param);
+ return paramValid;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) {
+ String param = getParameterValue(getID(), 0);
+ if (param == null)
+ return new Element[0];
+ Element root;
+ try {
+ root = (Element)doc.importNode(XMLUtils.stringToElement(addRootElement(param)), true);
+ }
+ catch (Throwable t) {
+ return new Element[0];
+ }
+ NodeList nl = root.getChildNodes();
+ Vector instanceDocumentVector = new Vector();
+ for (int i = 0; i < nl.getLength(); i++) {
+ Node node = nl.item(i);
+ if (node instanceof Element)
+ instanceDocumentVector.add(node);
+ }
+ Element[] instanceDocuments = new Element[instanceDocumentVector.size()];
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ instanceDocuments[i] = (Element)instanceDocumentVector.get(i);
+ }
+ return instanceDocuments;
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDDefaultRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDDefaultWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDelegationFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDelegationFragment.java
new file mode 100644
index 000000000..dc03c29e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDDelegationFragment.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDDelegationFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public class XSDDelegationFragment extends XSDFragment implements IXSDDelegationFragment
+{
+ private IXSDFragment xsdFragment_;
+
+ public XSDDelegationFragment(String id, String name, XSDToFragmentConfiguration config)
+ {
+ super(id, name, config);
+ xsdFragment_ = null;
+ }
+
+ public void setName(String name) {
+ super.setName(name);
+ if (xsdFragment_ != null)
+ xsdFragment_.setName(name);
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ return xsdFragment_.processParameterValues(parser);
+ }
+
+ public void setParameterValues(String paramKey, String[] params)
+ {
+ xsdFragment_.setParameterValues(paramKey, params);
+ }
+
+ public void setParameterValues(String paramKey, Vector params)
+ {
+ xsdFragment_.setParameterValues(paramKey, params);
+ }
+
+ public String[] getParameterValues(String paramKey)
+ {
+ return xsdFragment_.getParameterValues(paramKey);
+ }
+
+ public String getParameterValue(String paramKey, int paramIndex)
+ {
+ return xsdFragment_.getParameterValue(paramKey, paramIndex);
+ }
+
+ public boolean validateAllParameterValues()
+ {
+ return xsdFragment_.validateAllParameterValues();
+ }
+
+ public boolean validateParameterValues(String paramKey)
+ {
+ return xsdFragment_.validateParameterValues(paramKey);
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex)
+ {
+ return xsdFragment_.validateParameterValue(paramKey, paramIndex);
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ return xsdFragment_.setParameterValuesFromInstanceDocuments(instanceDocuments);
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ return xsdFragment_.genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ }
+
+ public String getInformationFragment()
+ {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment()
+ {
+ return "/wsdl/fragment/XSDDelegationRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment()
+ {
+ return "/wsdl/fragment/XSDDelegationWFragmentJSP.jsp";
+ }
+
+ public void setXSDDelegationFragment(IXSDFragment xsdFragment)
+ {
+ xsdFragment_ = xsdFragment;
+ }
+
+ public IXSDFragment getXSDDelegationFragment()
+ {
+ return xsdFragment_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java
new file mode 100644
index 000000000..1baaff75d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDElementFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDForm;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public class XSDElementFragment extends XSDDelegationFragment implements IXSDElementFragment
+{
+ private int minOccurs_;
+ private int maxOccurs_;
+
+ public XSDElementFragment(String id, String name, XSDToFragmentConfiguration config)
+ {
+ super(id, name, config);
+ if (config != null)
+ {
+ minOccurs_ = config.getMinOccurs();
+ maxOccurs_ = config.getMaxOccurs();
+ }
+ else
+ {
+ minOccurs_ = FragmentConstants.DEFAULT_MIN_OCCURS;
+ maxOccurs_ = FragmentConstants.DEFAULT_MAX_OCCURS;
+ }
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ IXSDFragment elementTypeFragment = getXSDDelegationFragment();
+ if (!elementTypeFragment.processParameterValues(parser))
+ return false;
+ String[] params = getParameterValues(elementTypeFragment.getID());
+ if (params != null && !withinRange(params.length))
+ return false;
+ return true;
+ }
+
+ public boolean validateAllParameterValues()
+ {
+ IXSDFragment elementTypeFragment = getXSDDelegationFragment();
+ String[] params = getParameterValues(elementTypeFragment.getID());
+ if (params != null && !withinRange(params.length))
+ return false;
+ if (!elementTypeFragment.validateAllParameterValues())
+ return false;
+ return true;
+ }
+
+ public boolean validateParameterValues(String paramKey)
+ {
+ String[] params = getParameterValues(paramKey);
+ if (params != null && !withinRange(params.length))
+ return false;
+ if (!getXSDDelegationFragment().validateParameterValues(paramKey))
+ return false;
+ return true;
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex)
+ {
+ if (!withinRange(paramIndex + 1))
+ return false;
+ XSDElementDeclaration xsdElement = (XSDElementDeclaration)getXSDToFragmentConfiguration().getXSDComponent();
+ String param = getParameterValue(paramKey, paramIndex);
+ if (param != null && param.length() <= 0 && !xsdElement.isNillable())
+ return false;
+ if (!getXSDDelegationFragment().validateParameterValue(paramKey, paramIndex))
+ return false;
+ return true;
+ }
+
+ public void setXSDToFragmentConfiguration(XSDToFragmentConfiguration config)
+ {
+ super.setXSDToFragmentConfiguration(config);
+ minOccurs_ = config.getMinOccurs();
+ maxOccurs_ = config.getMaxOccurs();
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ Element[] instanceDocumentsCopy = instanceDocuments;
+ XSDToFragmentConfiguration config = getXSDToFragmentConfiguration();
+ String wsdlPartName = config.getWSDLPartName();
+ if (config.getIsWSDLPart() && config.getStyle() == FragmentConstants.STYLE_RPC && wsdlPartName != null && wsdlPartName.length() > 0 && instanceDocumentsCopy.length == 1 && wsdlPartName.equals(instanceDocumentsCopy[0].getTagName()))
+ {
+ NodeList nl = instanceDocumentsCopy[0].getChildNodes();
+ Vector childElements = new Vector();
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node node = nl.item(i);
+ if (node.getNodeType() == Node.ELEMENT_NODE)
+ childElements.add(node);
+ }
+ instanceDocumentsCopy = (Element[])childElements.toArray(new Element[0]);
+ }
+ IXSDFragment elementTypeFragment = getXSDDelegationFragment();
+ instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocumentsCopy, getName());
+ return elementTypeFragment.setParameterValuesFromInstanceDocuments(setElementsTagName(instanceDocumentsCopy, elementTypeFragment.getName()));
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ Element[] instanceDocuments = getXSDDelegationFragment().genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ instanceDocuments = setElementsTagName(instanceDocuments, getInstanceDocumentTagName(namespaceTable));
+ XSDToFragmentConfiguration config = getXSDToFragmentConfiguration();
+ String wsdlPartName = config.getWSDLPartName();
+ if (config.getIsWSDLPart() && config.getStyle() == FragmentConstants.STYLE_RPC && wsdlPartName != null && wsdlPartName.length() > 0)
+ {
+ Element[] instanceDocumentsCopy = instanceDocuments;
+ instanceDocuments = new Element[1];
+ instanceDocuments[0] = doc.createElement(wsdlPartName);
+ for (int i = 0; i < instanceDocumentsCopy.length; i++)
+ {
+ if (instanceDocumentsCopy[i] != null)
+ instanceDocuments[0].appendChild(instanceDocumentsCopy[i]);
+ }
+ }
+ return instanceDocuments;
+ }
+
+ protected boolean isInstanceNamespaceQualified()
+ {
+ XSDToFragmentConfiguration config = getXSDToFragmentConfiguration();
+ if (config.getPartEncoding() == FragmentConstants.ENCODING_LITERAL)
+ {
+ XSDElementDeclaration xsdElement = (XSDElementDeclaration)config.getXSDComponent();
+ if (xsdElement.isGlobal())
+ return true;
+ else
+ {
+ if (xsdElement.isSetForm())
+ return (xsdElement.getForm().getValue() == XSDForm.QUALIFIED);
+ else
+ return (xsdElement.getSchema().getElementFormDefault().getValue() == XSDForm.QUALIFIED);
+ }
+ }
+ else
+ return false;
+ }
+
+ protected String getInstanceDocumentTagName(Hashtable namespaceTable)
+ {
+ XSDToFragmentConfiguration config = getXSDToFragmentConfiguration();
+ XSDElementDeclaration xsdElement = (XSDElementDeclaration)config.getXSDComponent();
+ StringBuffer tagName = new StringBuffer();
+ if (isInstanceNamespaceQualified())
+ {
+ String nsURI = null;
+ // port to org.eclipse.xsd
+ if (xsdElement.getResolvedElementDeclaration() != null)
+ nsURI = xsdElement.getResolvedElementDeclaration().getTargetNamespace();
+ else
+ nsURI = xsdElement.getTargetNamespace();
+ if (nsURI != null && nsURI.length() > 0)
+ {
+ String prefix = getPrefixFromNamespaceURI(nsURI, namespaceTable);
+ tagName.append(prefix);
+ tagName.append(FragmentConstants.COLON);
+ }
+ }
+ String xsdElementName = xsdElement.getName();
+ if (xsdElementName == null || xsdElementName.length() <= 0)
+ {
+ // port to org.eclipse.xsd
+ if (xsdElement.getResolvedElementDeclaration() != null)
+ xsdElementName = xsdElement.getResolvedElementDeclaration().getName();
+ else
+ xsdElementName = getName();
+ }
+ tagName.append(xsdElementName);
+ return tagName.toString();
+ }
+
+ private boolean withinRange(int size)
+ {
+ if (size < minOccurs_)
+ return false;
+ if (maxOccurs_ != FragmentConstants.UNBOUNDED && size > maxOccurs_)
+ return false;
+ return true;
+ }
+
+ public void setMinOccurs(int minOccurs)
+ {
+ minOccurs_ = minOccurs;
+ }
+
+ public int getMinOccurs()
+ {
+ return minOccurs_;
+ }
+
+ public void setMaxOccurs(int maxOccurs)
+ {
+ maxOccurs_ = maxOccurs;
+ }
+
+ public int getMaxOccurs()
+ {
+ return maxOccurs_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDEmptyFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDEmptyFragment.java
new file mode 100644
index 000000000..0f164220e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDEmptyFragment.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import java.util.Vector;
+
+public class XSDEmptyFragment extends XSDFragment {
+ private int occurance_;
+
+ public XSDEmptyFragment(String id, String name, XSDToFragmentConfiguration config) {
+ super(id, name, config);
+ occurance_ = 0;
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ String occurance = parser.getParameter(getID());
+ try {
+ occurance_ = Integer.parseInt(occurance);
+ return validateAllParameterValues();
+ }
+ catch (Throwable t) {
+ occurance_ = -1;
+ return false;
+ }
+ }
+
+ public void setParameterValues(String paramKey, String[] params) {
+ }
+
+ public void setParameterValues(String paramKey, Vector params) {
+ }
+
+ public String[] getParameterValues(String paramKey) {
+ if (occurance_ < 0)
+ return null;
+ else {
+ String[] params = new String[occurance_];
+ for (int i = 0; i < params.length; i++) {
+ params[i] = "";
+ }
+ return params;
+ }
+ }
+
+ public String getParameterValue(String paramKey, int paramIndex) {
+ if (paramIndex >= 0 && paramIndex < occurance_)
+ return "";
+ else
+ return null;
+ }
+
+ public boolean validateAllParameterValues() {
+ XSDToFragmentConfiguration xsdConfig = getXSDToFragmentConfiguration();
+ int min = xsdConfig.getMinOccurs();
+ int max = xsdConfig.getMaxOccurs();
+ return (occurance_ >= 0 && occurance_ >= min && (max == FragmentConstants.UNBOUNDED || occurance_ <= max));
+ }
+
+ public boolean validateParameterValues(String paramKey) {
+ return validateAllParameterValues();
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex) {
+ return validateAllParameterValues();
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ boolean paramsValid = true;
+ for (int i = 0; i < instanceDocumentsCopy.length; i++) {
+ NodeList nodeList = instanceDocumentsCopy[i].getChildNodes();
+ if (nodeList.getLength() > 1)
+ paramsValid = false;
+ else if (nodeList.getLength() != 0) {
+ Node node = nodeList.item(0);
+ if (node.getNodeType() != Node.TEXT_NODE || !isWhitespace(node.getNodeValue()))
+ paramsValid = false;
+ }
+ }
+ occurance_ = instanceDocumentsCopy.length;
+ return paramsValid && validateAllParameterValues();
+ }
+
+ private boolean isWhitespace(String s) {
+ char[] chars = s.toCharArray();
+ for (int i = 0; i < chars.length; i++) {
+ if (!Character.isWhitespace(chars[i]) || !Character.isSpaceChar(chars[i]))
+ return false;
+ }
+ return true;
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDEmptyWFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDEmptyRFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDFragment.java
new file mode 100644
index 000000000..1a10ad60e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDFragment.java
@@ -0,0 +1,317 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDForm;
+import java.util.Vector;
+import java.util.Hashtable;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Attr;
+
+public abstract class XSDFragment extends Fragment implements IXSDFragment
+{
+ private XSDToFragmentConfiguration config_;
+ private XSDTypeDefinition typeDef_;
+ private int seed_;
+
+ public XSDFragment(String id, String name, XSDToFragmentConfiguration config)
+ {
+ super(id, name);
+ config_ = config;
+ if (config_ != null)
+ {
+ XSDComponent component = config.getXSDComponent();
+ if (component instanceof XSDTypeDefinition)
+ typeDef_ = (XSDTypeDefinition)component;
+ else
+ typeDef_ = null;
+ }
+ seed_ = 0;
+ }
+
+ public void setXSDToFragmentConfiguration(XSDToFragmentConfiguration config)
+ {
+ config_ = config;
+ if (config_ != null)
+ {
+ XSDComponent component = config.getXSDComponent();
+ if (component instanceof XSDTypeDefinition)
+ setXSDTypeDefinition((XSDTypeDefinition)component);
+ }
+ }
+
+ public XSDToFragmentConfiguration getXSDToFragmentConfiguration()
+ {
+ return config_;
+ }
+
+ public void setXSDTypeDefinition(XSDTypeDefinition typeDef)
+ {
+ typeDef_ = typeDef;
+ }
+
+ public XSDTypeDefinition getXSDTypeDefinition()
+ {
+ return typeDef_;
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ String[] params = new String[instanceDocumentsCopy.length];
+ boolean paramsValid = internalEquals(instanceDocumentsCopy, instanceDocuments);
+ for (int i = 0; i < instanceDocumentsCopy.length; i++)
+ {
+ params[i] = "";
+ NodeList nodeList = instanceDocumentsCopy[i].getChildNodes();
+ if (nodeList.getLength() > 0)
+ {
+ Node node = nodeList.item(0);
+ if (nodeList.getLength() > 1)
+ paramsValid = false;
+ if (node.getNodeType() != Node.TEXT_NODE)
+ paramsValid = false;
+ else
+ params[i] = node.getNodeValue();
+ }
+ else
+ paramsValid = false;
+ }
+ setParameterValues(getID(), params);
+ return paramsValid && validateAllParameterValues();
+ }
+
+ protected Element[] getInstanceDocumentsByTagName(Element[] instanceDocuments, String tagName)
+ {
+ if (instanceDocuments == null)
+ return new Element[0];
+ Vector instancesCopy = new Vector();
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ if (instanceDocuments[i] == null)
+ continue;
+ String instanceTagName = trimPrefix(instanceDocuments[i].getTagName());
+ if (instanceTagName.equals(tagName))
+ instancesCopy.add(instanceDocuments[i]);
+ }
+ Element[] instances = new Element[instancesCopy.size()];
+ instancesCopy.copyInto(instances);
+ return instances;
+ }
+
+ protected String trimPrefix(String s)
+ {
+ String sCopy = new String(s);
+ int colonIndex = sCopy.indexOf(FragmentConstants.COLON);
+ if (colonIndex != -1 && colonIndex + 1 < sCopy.length() && !((String.valueOf(sCopy.charAt(colonIndex + 1))).equals(FragmentConstants.COLON)))
+ sCopy = sCopy.substring(colonIndex + 1, sCopy.length());
+ return sCopy;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ String[] params = getParameterValues(getID());
+ if (params == null)
+ return new Element[0];
+ Element[] instanceDocuments = new Element[params.length];
+ String tagName = getInstanceDocumentTagName(namespaceTable);
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ Element instanceDocument = doc.createElement(tagName);
+ Node textNode = doc.createTextNode(params[i]);
+ instanceDocument.appendChild(textNode);
+ instanceDocuments[i] = instanceDocument;
+ }
+ return (genXSIType ? addXSIType(instanceDocuments, namespaceTable) : instanceDocuments);
+ }
+
+ public String genID()
+ {
+ StringBuffer newID = new StringBuffer();
+ newID.append(getID());
+ newID.append(FragmentConstants.ID_SEPERATOR);
+ newID.append(seed_++);
+ return newID.toString();
+ }
+
+ protected boolean isInstanceNamespaceQualified()
+ {
+ XSDSchema xsdSchema = config_.getXSDComponent().getSchema();
+ return (!config_.getIsWSDLPart() && config_.getPartEncoding() == FragmentConstants.ENCODING_LITERAL && xsdSchema.getElementFormDefault().getValue() == XSDForm.QUALIFIED);
+ }
+
+ protected String getInstanceDocumentTagName(Hashtable namespaceTable)
+ {
+ StringBuffer tagName = new StringBuffer();
+ if (isInstanceNamespaceQualified())
+ {
+ String nsURI = config_.getXSDComponent().getSchema().getTargetNamespace();
+ String prefix = getPrefixFromNamespaceURI(nsURI, namespaceTable);
+ tagName.append(prefix);
+ tagName.append(FragmentConstants.COLON);
+ }
+ tagName.append(getName());
+ return tagName.toString();
+ }
+
+ protected Element[] addXSIType(Element[] instanceDocuments, Hashtable namespaceTable)
+ {
+ XSDComponent xsdComponent = config_.getXSDComponent();
+ if (instanceDocuments != null && (xsdComponent instanceof XSDNamedComponent))
+ {
+ String xsdComponentName = ((XSDNamedComponent)xsdComponent).getName();
+ if (xsdComponentName != null && xsdComponentName.length() > 0)
+ {
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ if (instanceDocuments[i] == null)
+ continue;
+ String xsiURI = FragmentConstants.URI_XSI;
+ String xsiPrefix = getPrefixFromNamespaceURI(xsiURI, namespaceTable);
+ String xsiTypeURI = xsdComponent.getSchema().getTargetNamespace();
+ String xsiTypePrefix = getPrefixFromNamespaceURI(xsiTypeURI, namespaceTable);
+ ;
+ StringBuffer attrName = new StringBuffer();
+ attrName.append(xsiPrefix);
+ attrName.append(FragmentConstants.COLON);
+ attrName.append(FragmentConstants.XSI_TYPE);
+ StringBuffer attrValue = new StringBuffer();
+ attrValue.append(xsiTypePrefix);
+ attrValue.append(FragmentConstants.COLON);
+ attrValue.append(xsdComponentName);
+ instanceDocuments[i].setAttribute(attrName.toString(), attrValue.toString());
+ }
+ }
+ }
+ return instanceDocuments;
+ }
+
+ public boolean validateAllParameterValues()
+ {
+ if (!super.validateAllParameterValues())
+ return false;
+ String[] params = getParameterValues(getID());
+ int length = (params != null) ? params.length : 0;
+ int min = config_.getMinOccurs();
+ int max = config_.getMaxOccurs();
+ return (length >= min && (max == FragmentConstants.UNBOUNDED || length <= max));
+ }
+
+ protected String getPrefixFromNamespaceURI(String nsURI, Hashtable namespaceTable)
+ {
+ String prefix = (String)namespaceTable.get(nsURI);
+ int i = 0;
+ while (prefix == null || prefix.length() <= 0)
+ {
+ StringBuffer prefixCopy = new StringBuffer();
+ prefixCopy.append(FragmentConstants.QNAME_PREFIX);
+ prefixCopy.append(String.valueOf(i));
+ i++;
+ if (!namespaceTable.contains(prefixCopy.toString()))
+ {
+ namespaceTable.put(nsURI, prefixCopy.toString());
+ prefix = prefixCopy.toString();
+ }
+ }
+ return prefix;
+ }
+
+ private Element removeDupNSFromChildren(Element element, String[] nsNames, String[] nsValues)
+ {
+ NodeList children = element.getChildNodes();
+ for (int i = 0; i < children.getLength(); i++)
+ {
+ Node child = children.item(i);
+ if (child instanceof Element)
+ {
+ for (int j = 0; j < nsNames.length; j++)
+ {
+ String childNSValue = ((Element)child).getAttribute(nsNames[j]);
+ if (childNSValue != null && childNSValue.equals(nsValues[j]))
+ ((Element)child).removeAttribute(nsNames[j]);
+ }
+ }
+ }
+ return element;
+ }
+
+ protected Element setElementTagName(Element e, String tagName)
+ {
+ if (!e.getTagName().equals(tagName))
+ {
+ try
+ {
+ Document doc = e.getOwnerDocument();
+ NodeList children = e.getChildNodes();
+ NamedNodeMap attributes = e.getAttributes();
+ Element eCopy = doc.createElement(tagName);
+ for (int i = 0; i < children.getLength(); i++)
+ {
+ Node child = children.item(i);
+ if (child != null)
+ {
+ eCopy.appendChild(child);
+ // When you append a node from one element to another,
+ // the original element will lose its reference to this node,
+ // therefore, the size of the node list will decrease by 1.
+ i--;
+ }
+ }
+ for (int j = 0; j < attributes.getLength(); j++)
+ {
+ Node attr = attributes.item(j);
+ if (attr != null && (attr instanceof Attr))
+ {
+ Attr attribute = (Attr)attr;
+ eCopy.setAttribute(attribute.getName(), attribute.getValue());
+ }
+ }
+ return eCopy;
+ }
+ catch (Exception exception)
+ {
+ }
+ }
+ return e;
+ }
+
+ protected Element[] setElementsTagName(Element[] e, String tagName)
+ {
+ Element[] eCopy = new Element[e.length];
+ for (int i = 0; i < eCopy.length; i++)
+ {
+ eCopy[i] = setElementTagName(e[i], tagName);
+ }
+ return eCopy;
+ }
+
+ protected boolean internalEquals(Element[] instanceDocumentsCopy, Element[] instanceDocuments)
+ {
+ if (!config_.getIsWSDLPart())
+ {
+ int length = (instanceDocuments != null) ? instanceDocuments.length : 0;
+ int lengthCopy = (instanceDocumentsCopy != null) ? instanceDocumentsCopy.length : 0;
+ return (length == lengthCopy);
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupAllFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupAllFragment.java
new file mode 100644
index 000000000..414e3fe97
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupAllFragment.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDGroupAllFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+import org.w3c.dom.Element;
+import java.util.Vector;
+
+public class XSDGroupAllFragment extends XSDGroupFragment implements IXSDGroupAllFragment {
+ private String groupID_;
+
+ public XSDGroupAllFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ groupID_ = null;
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ String groupID = parser.getParameter(getID());
+ if (groupID_ != null && groupID != null && groupID_.equals(groupID)) {
+ setGroupMemberIDsOrdering(parser.getParameterValues(groupID_));
+ boolean valuesValid = true;
+ IXSDFragment[] groupMemberFragments = getGroupMemberFragments(groupID_);
+ for (int i = 0; i < groupMemberFragments.length; i++) {
+ if (groupMemberFragments[i] != null && !groupMemberFragments[i].processParameterValues(parser))
+ valuesValid = false;
+ }
+ return valuesValid;
+ }
+ else {
+ groupID_ = null;
+ removeGroupIDs();
+ return true;
+ }
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ removeGroupIDs();
+ boolean paramsValid = true;
+ if (instanceDocuments != null && instanceDocuments.length > 0) {
+ groupID_ = createInstance();
+ IXSDFragment[] groupMemberFrags = getGroupMemberFragments(groupID_);
+ String[] groupMemberIDsOrder = new String[groupMemberFrags.length];
+ int orderIndex = 0;
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ boolean paramsAssigned = false;
+ for (int j = 0; j < groupMemberFrags.length; j++) {
+ if (groupMemberFrags[j] != null && groupMemberFrags[j].getName().equals(trimPrefix(instanceDocuments[i].getTagName()))) {
+ Element[] childInstance = {instanceDocuments[i]};
+ if (!groupMemberFrags[j].setParameterValuesFromInstanceDocuments(childInstance))
+ paramsValid = false;
+ groupMemberIDsOrder[orderIndex] = groupMemberFrags[j].getID();
+ orderIndex++;
+ paramsAssigned = true;
+ groupMemberFrags[j] = null;
+ break;
+ }
+ }
+ if (!paramsAssigned)
+ paramsValid = false;
+ }
+ for (int k = 0; k < groupMemberFrags.length; k++) {
+ if (groupMemberFrags[k] != null) {
+ groupMemberIDsOrder[orderIndex] = groupMemberFrags[k].getID();
+ orderIndex++;
+ }
+ }
+ setGroupMemberIDsOrdering(groupMemberIDsOrder);
+ }
+ return paramsValid;
+ }
+
+ public String getGroupAllInstance() {
+ if (groupID_ == null)
+ groupID_ = createGroupInstance();
+ return groupID_;
+ }
+
+ public String createInstance() {
+ return getGroupAllInstance();
+ }
+
+ public boolean setGroupMemberIDsOrdering(String[] groupMemberIDs) {
+ if (groupMemberIDs == null)
+ return false;
+ String[] existingGroupMemberIDs = getGroupMemberIDs(groupID_);
+ if (existingGroupMemberIDs.length != groupMemberIDs.length)
+ return false;
+ Vector existingGroupMemberIDsVector = new Vector();
+ for (int i = 0; i < existingGroupMemberIDs.length; i++) {
+ existingGroupMemberIDsVector.add(existingGroupMemberIDs[i]);
+ }
+ for (int j = 0; j < groupMemberIDs.length; j++) {
+ if (!existingGroupMemberIDsVector.remove(groupMemberIDs[j]))
+ return false;
+ }
+ if (setFragmentsOrder(groupMemberIDs)) {
+ setGroupMemberIDs(groupID_, groupMemberIDs);
+ return true;
+ }
+ else
+ return false;
+ }
+
+ public boolean moveUpGroupMemberID(String groupMemberID) {
+ String[] groupMemberIDs = getGroupMemberIDs(groupID_);
+ if (groupMemberID.equals(groupMemberIDs[0]))
+ return false;
+ for (int i = 1; i < groupMemberIDs.length; i++) {
+ if (groupMemberID.equals(groupMemberIDs[i])) {
+ groupMemberIDs[i] = groupMemberIDs[i - 1];
+ groupMemberIDs[i - 1] = groupMemberID;
+ if (setFragmentsOrder(groupMemberIDs)) {
+ setGroupMemberIDs(groupID_, groupMemberIDs);
+ return true;
+ }
+ else
+ return false;
+ }
+ }
+ return false;
+ }
+
+ public boolean moveDownGroupMemberID(String groupMemberID) {
+ String[] groupMemberIDs = getGroupMemberIDs(groupID_);
+ if (groupMemberID.equals(groupMemberIDs[groupMemberIDs.length - 1]))
+ return false;
+ for (int i = 0; i < groupMemberIDs.length - 1; i++) {
+ if (groupMemberID.equals(groupMemberIDs[i])) {
+ groupMemberIDs[i] = groupMemberIDs[i + 1];
+ groupMemberIDs[i + 1] = groupMemberID;
+ if (setFragmentsOrder(groupMemberIDs)) {
+ setGroupMemberIDs(groupID_, groupMemberIDs);
+ return true;
+ }
+ else
+ return false;
+ }
+ }
+ return false;
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDGroupRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDGroupAllWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFixFragment.java
new file mode 100644
index 000000000..4f6d724cc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFixFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class XSDGroupChoiceFixFragment extends XSDGroupChoiceFragment {
+ public XSDGroupChoiceFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDGroupChoiceFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java
new file mode 100644
index 000000000..d755cf9e7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDGroupChoiceFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDModelGroup;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import java.util.Hashtable;
+import java.util.Vector;
+
+public abstract class XSDGroupChoiceFragment extends XSDGroupFragment implements IXSDGroupChoiceFragment {
+ private XSDParticle[] choices_;
+ private Hashtable choiceIndexes_;
+
+ public XSDGroupChoiceFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ choices_ = null;
+ choiceIndexes_ = new Hashtable();
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ super.processParameterValues(parser);
+ String[] groupIDs = getGroupIDs();
+ choiceIndexes_.clear();
+ boolean paramsValid = true;
+ for (int i = 0; i < groupIDs.length; i++) {
+ String selectedChoiceFragID = parser.getParameter(groupIDs[i]);
+ int choiceIndex = 0;
+ IXSDFragment[] choiceFrags = getGroupMemberFragments(groupIDs[i]);
+ for (int j = 0; j < choiceFrags.length; j++) {
+ if (choiceFrags[j].getID().equals(selectedChoiceFragID)) {
+ choiceIndex = j;
+ paramsValid = (paramsValid && choiceFrags[j].validateAllParameterValues());
+ break;
+ }
+ }
+ setChoiceIndex(groupIDs[i], choiceIndex);
+ }
+ return paramsValid;
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ removeGroupIDs();
+ choiceIndexes_.clear();
+ boolean paramsValid = true;
+ if (instanceDocuments != null) {
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ String groupID = createGroupChoiceInstance(0);
+ IXSDFragment[] choiceFrags = getGroupMemberFragments(groupID);
+ for (int j = 0; j < choiceFrags.length; j++) {
+ if (choiceFrags[j].getName().equals(trimPrefix(instanceDocuments[i].getTagName()))) {
+ XSDToFragmentConfiguration xsdConfig = choiceFrags[j].getXSDToFragmentConfiguration();
+ Element[] childInstances = getInstanceDocumentPartition(instanceDocuments, i, xsdConfig.getMinOccurs(), xsdConfig.getMaxOccurs());
+ if (!choiceFrags[j].setParameterValuesFromInstanceDocuments(childInstances))
+ paramsValid = false;
+ setChoiceIndex(groupID, j);
+ if (childInstances.length > 0)
+ i = i + childInstances.length - 1; // minus 1 because there's an i++ in the outer for loop
+ break;
+ }
+ }
+ }
+ }
+ return paramsValid;
+ }
+
+ private Element[] getInstanceDocumentPartition(Element[] instanceDocuments, int start, int minSize, int maxSize) {
+ String tagName = instanceDocuments[start].getTagName();
+ int size = 1;
+ for (int i = start + 1; i < instanceDocuments.length; i++) {
+ if (instanceDocuments[i].getTagName().equals(tagName))
+ size++;
+ else
+ break;
+ }
+ if (maxSize != FragmentConstants.UNBOUNDED && size > maxSize) {
+ size = size - minSize;
+ if (size > maxSize)
+ size = maxSize;
+ }
+ Element[] subset = new Element[size];
+ for (int j = 0; j < subset.length; j++) {
+ subset[j] = instanceDocuments[start + j];
+ }
+ return subset;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) {
+ Vector instanceDocumentsCopy = new Vector();
+ String[] groupIDs = getGroupIDs();
+ for (int i = 0; i < groupIDs.length; i++) {
+ IXSDFragment[] choiceFrags = getGroupMemberFragments(groupIDs[i]);
+ int choiceIndex = getChoiceIndex(groupIDs[i]);
+ Element[] choiceFragInstances = choiceFrags[choiceIndex].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ for (int j = 0; j < choiceFragInstances.length; j++) {
+ instanceDocumentsCopy.add(choiceFragInstances[j]);
+ }
+ }
+ Element[] instanceDocuments = new Element[instanceDocumentsCopy.size()];
+ instanceDocumentsCopy.copyInto(instanceDocuments);
+ return instanceDocuments;
+ }
+
+ public XSDParticle[] getChoices() {
+ if (choices_ == null) {
+ EList particles = getXSDModelGroup().getParticles();
+ choices_ = new XSDParticle[particles.size()];
+ for (int i = 0; i < choices_.length; i++) {
+ choices_[i] = (XSDParticle)particles.get(i);
+ }
+ }
+ return choices_;
+ }
+
+ public String createGroupChoiceInstance(int choiceIndex) {
+ getChoices();
+ if (choiceIndex < 0 || choiceIndex > choices_.length - 1)
+ return null;
+ String groupID = createGroupInstance();
+ setChoiceIndex(groupID, choiceIndex);
+ return groupID;
+ }
+
+ public String createInstance() {
+ return createGroupChoiceInstance(0);
+ }
+
+ public int getChoiceIndex(String groupID) {
+ Integer index = (Integer)choiceIndexes_.get(groupID);
+ if (index != null)
+ return index.intValue();
+ else
+ return 0;
+ }
+
+ public void setChoiceIndex(String groupID, int choiceIndex) {
+ choiceIndexes_.put(groupID, new Integer(choiceIndex));
+ }
+
+ public boolean validateAllParameterValues()
+ {
+ String[] groupIDs = getGroupIDs();
+ for (int i = 0; i < groupIDs.length; i++)
+ {
+ int selectionIndex = getChoiceIndex(groupIDs[i]);
+ if (!getGroupMemberFragments(groupIDs[i])[selectionIndex].validateAllParameterValues())
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceRangeFragment.java
new file mode 100644
index 000000000..ca3bffb4c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceRangeFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class XSDGroupChoiceRangeFragment extends XSDGroupChoiceFragment {
+ public XSDGroupChoiceRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDGroupChoiceRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupFragment.java
new file mode 100644
index 000000000..485716ed5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupFragment.java
@@ -0,0 +1,262 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDGroupFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDWildcard;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDParticleContent;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import java.util.Hashtable;
+import java.util.Vector;
+
+public abstract class XSDGroupFragment extends XSDMapFragment implements IXSDGroupFragment {
+ private XSDModelGroup xsdModelGroup_;
+ private Vector groupIDsOrder_;
+ private Hashtable groupIDs_;
+
+ public XSDGroupFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller);
+ xsdModelGroup_ = xsdModelGroup;
+ groupIDsOrder_ = new Vector();
+ groupIDs_ = new Hashtable();
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ boolean valuesValid = true;
+ String[] params = parser.getParameterValues(getID());
+ Vector frags = new Vector();
+ Vector groupIDsOrderCopy = new Vector();
+ Hashtable groupIDsCopy = new Hashtable();
+ for (int i = 0; params != null && i < params.length; i++) {
+ if (params[i] != null) {
+ groupIDsOrderCopy.add(params[i]);
+ groupIDsCopy.put(params[i], getGroupMemberIDs(params[i]));
+ IXSDFragment[] groupMemberFragments = getGroupMemberFragments(params[i]);
+ for (int j = 0; j < groupMemberFragments.length; j++) {
+ if (groupMemberFragments[j] != null) {
+ frags.add(groupMemberFragments[j]);
+ if (!groupMemberFragments[j].processParameterValues(parser))
+ valuesValid = false;
+ }
+ }
+ }
+ }
+ groupIDsOrder_ = groupIDsOrderCopy;
+ groupIDs_ = groupIDsCopy;
+ removeAllFragments();
+ addFragments(frags);
+ return valuesValid;
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ removeGroupIDs();
+ boolean paramsValid = true;
+ String prevGroupID = null;
+ String currGroupID = null;
+ int groupMemberIndex = 0;
+ for (int i = 0; i < instanceDocuments.length; ) {
+ if (currGroupID == null) {
+ String newGroupID = createInstance();
+ prevGroupID = currGroupID;
+ currGroupID = newGroupID;
+ }
+ Element[] instancePartition = null;
+ int j = groupMemberIndex;
+ boolean paramsAssigned = false;
+ int wildcardFragIndex = -1;
+ do {
+ IXSDFragment[] groupMemberFrags = getGroupMemberFragments(currGroupID);
+ XSDComponent xsdComponent = groupMemberFrags[j].getXSDToFragmentConfiguration().getXSDComponent();
+ if (xsdComponent instanceof XSDWildcard) {
+ if (wildcardFragIndex < 0)
+ wildcardFragIndex = j;
+ }
+ else if (groupMemberFrags[j].getName().equals(trimPrefix(instanceDocuments[i].getTagName()))) {
+ instancePartition = getInstanceDocumentPartition(instanceDocuments, i, groupMemberFrags[j].getXSDToFragmentConfiguration().getMaxOccurs());
+ if (!groupMemberFrags[j].setParameterValuesFromInstanceDocuments(instancePartition))
+ paramsValid = false;
+ paramsAssigned = true;
+ }
+ if (j == groupMemberFrags.length - 1) {
+ j = 0;
+ String newGroupID;
+ if (!paramsAssigned)
+ newGroupID = createInstance();
+ else
+ newGroupID = null;
+ prevGroupID = currGroupID;
+ currGroupID = newGroupID;
+ }
+ else
+ j++;
+ } while (!paramsAssigned && j != groupMemberIndex);
+ groupMemberIndex = j;
+ if (!paramsAssigned) {
+ instancePartition = getInstanceDocumentPartition(instanceDocuments, i, FragmentConstants.UNBOUNDED);
+ if (wildcardFragIndex >= 0) {
+ if (wildcardFragIndex >= groupMemberIndex) {
+ removeGroupID(currGroupID);
+ currGroupID = prevGroupID;
+ }
+ groupMemberIndex = wildcardFragIndex;
+ IXSDFragment[] groupMemberFrags = getGroupMemberFragments(currGroupID);
+ if (!groupMemberFrags[wildcardFragIndex].setParameterValuesFromInstanceDocuments(instancePartition))
+ paramsValid = false;
+ paramsAssigned = true;
+ }
+ else if (currGroupID != null && (prevGroupID == null || !currGroupID.equals(prevGroupID))) {
+ paramsValid = false;
+ removeGroupID(currGroupID);
+ currGroupID = prevGroupID;
+ }
+ }
+ i = i + instancePartition.length;
+ }
+ return paramsValid;
+ }
+
+ private Element[] getInstanceDocumentPartition(Element[] instanceDocuments, int start, int maxSize) {
+ String tagName = instanceDocuments[start].getTagName();
+ int size = 1;
+ for (int i = start + 1; i < instanceDocuments.length; i++) {
+ if (maxSize != FragmentConstants.UNBOUNDED && size >= maxSize)
+ break;
+ else if (instanceDocuments[i].getTagName().equals(tagName))
+ size++;
+ else
+ break;
+ }
+ Element[] subset = new Element[size];
+ for (int j = 0; j < subset.length; j++) {
+ subset[j] = instanceDocuments[start + j];
+ }
+ return subset;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) {
+ IXSDFragment[] groupMemberFragments = getAllFragments();
+ Vector instanceDocumentsCopy = new Vector();
+ for (int i = 0; i < groupMemberFragments.length; i++) {
+ Element[] fragmentInstances = groupMemberFragments[i].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ for (int j = 0; j < fragmentInstances.length; j++) {
+ instanceDocumentsCopy.add(fragmentInstances[j]);
+ }
+ }
+ Element[] instanceDocuments = new Element[instanceDocumentsCopy.size()];
+ for (int k = 0; k < instanceDocuments.length; k++) {
+ instanceDocuments[k] = (Element)instanceDocumentsCopy.get(k);
+ }
+ return instanceDocuments;
+ }
+
+ public void setXSDModelGroup(XSDModelGroup xsdModelGroup) {
+ xsdModelGroup_ = xsdModelGroup;
+ }
+
+ public XSDModelGroup getXSDModelGroup() {
+ return xsdModelGroup_;
+ }
+
+ public String[] getGroupIDs() {
+ String[] groupIDs = new String[groupIDsOrder_.size()];
+ for (int i = 0; i < groupIDs.length; i++) {
+ groupIDs[i] = (String)groupIDsOrder_.get(i);
+ }
+ return groupIDs;
+ }
+
+ protected void removeGroupIDs() {
+ removeAllFragments();
+ groupIDsOrder_.clear();
+ groupIDs_.clear();
+ }
+
+ protected void removeGroupID(String groupID) {
+ String[] memberFragIDs = getGroupMemberIDs(groupID);
+ removeFragments(memberFragIDs);
+ groupIDsOrder_.remove(groupID);
+ groupIDs_.remove(groupID);
+ }
+
+ protected void setGroupMemberIDs(String groupID, String[] groupMemberIDs) {
+ if (groupID != null) {
+ if (!groupIDsOrder_.contains(groupID))
+ groupIDsOrder_.add(groupID);
+ if (groupMemberIDs != null)
+ groupIDs_.put(groupID, groupMemberIDs);
+ else
+ groupIDs_.put(groupID, new String[0]);
+ }
+ }
+
+ protected void setGroupMemberFragments(String groupID, IXSDFragment[] groupMemberFragments) {
+ addFragments(groupMemberFragments);
+ String[] ids = new String[groupMemberFragments.length];
+ for (int i = 0; i < ids.length; i++) {
+ ids[i] = groupMemberFragments[i].getID();
+ }
+ setGroupMemberIDs(groupID, ids);
+ }
+
+ public String[] getGroupMemberIDs(String groupID) {
+ if (groupID != null) {
+ String[] groupMemberIDs = (String[])groupIDs_.get(groupID);
+ if (groupMemberIDs != null)
+ return groupMemberIDs;
+ }
+ return new String[0];
+ }
+
+ public IXSDFragment[] getGroupMemberFragments(String groupID) {
+ String[] groupMemberIDs = getGroupMemberIDs(groupID);
+ IXSDFragment[] groupMemberFragments = new IXSDFragment[groupMemberIDs.length];
+ for (int i = 0; i < groupMemberFragments.length; i++) {
+ groupMemberFragments[i] = getFragment(groupMemberIDs[i]);
+ }
+ return groupMemberFragments;
+ }
+
+ protected String createGroupInstance() {
+ String groupID = genID();
+ EList particles = getXSDModelGroup().getParticles();
+ String[] groupMemberIDs = new String[particles.size()];
+ for (int i = 0; i < particles.size(); i++) {
+ XSDParticle xsdParticle = (XSDParticle)particles.get(i);
+ XSDParticleContent xsdParticleContent = xsdParticle.getContent();
+ XSDToFragmentConfiguration thisConfig = getXSDToFragmentConfiguration();
+ XSDToFragmentConfiguration xsdConfig = new XSDToFragmentConfiguration();
+ if (xsdParticleContent instanceof XSDComponent)
+ xsdConfig.setXSDComponent((XSDComponent)xsdParticleContent);
+ else
+ xsdConfig.setXSDComponent(null);
+ xsdConfig.setStyle(thisConfig.getStyle());
+ xsdConfig.setPartEncoding(thisConfig.getPartEncoding());
+ xsdConfig.setWSDLPartName(thisConfig.getWSDLPartName());
+ groupMemberIDs[i] = genID();
+ addFragment(groupMemberIDs[i], getXSDToFragmentController().getFragment(xsdConfig, groupMemberIDs[i], groupMemberIDs[i]));
+ }
+ setGroupMemberIDs(groupID, groupMemberIDs);
+ return groupID;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFixFragment.java
new file mode 100644
index 000000000..31a1a372c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFixFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class XSDGroupSeqFixFragment extends XSDGroupSeqFragment {
+ public XSDGroupSeqFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDGroupRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFragment.java
new file mode 100644
index 000000000..e30813040
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqFragment.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDGroupSeqFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public abstract class XSDGroupSeqFragment extends XSDGroupFragment implements IXSDGroupSeqFragment {
+ public XSDGroupSeqFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String createGroupSeqInstance() {
+ return createGroupInstance();
+ }
+
+ public String createInstance() {
+ return createGroupSeqInstance();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqRangeFragment.java
new file mode 100644
index 000000000..afb6a59fb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupSeqRangeFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDModelGroup;
+
+public class XSDGroupSeqRangeFragment extends XSDGroupSeqFragment {
+ public XSDGroupSeqRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) {
+ super(id, name, config, controller, xsdModelGroup);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDGroupRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDGroupSeqRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDMapFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDMapFragment.java
new file mode 100644
index 000000000..1cd330cf1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDMapFragment.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDMapFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+import java.util.Vector;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Enumeration;
+
+public abstract class XSDMapFragment extends XSDFragment implements IXSDMapFragment {
+ private XSDToFragmentController controller_;
+ private Vector fragmentsOrder_;
+ private Hashtable fragments_;
+
+ public XSDMapFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config);
+ controller_ = controller;
+ fragmentsOrder_ = new Vector();
+ fragments_ = new Hashtable();
+ }
+
+ public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException {
+ boolean valuesValid = true;
+ String[] params = parser.getParameterValues(getID());
+ Vector frags = new Vector();
+ if (params != null) {
+ for (int i = 0; i < params.length; i++) {
+ if (params[i] != null) {
+ IXSDFragment frag = getFragment(params[i]);
+ if (frag != null) {
+ frags.add(frag);
+ if (!frag.processParameterValues(parser))
+ valuesValid = false;
+ }
+ }
+ }
+ }
+ removeAllFragments();
+ addFragments(frags);
+ return valuesValid;
+ }
+
+ public void setParameterValues(String paramKey, String[] params) {
+ IXSDFragment frag = getFragment(paramKey);
+ if (frag != null)
+ frag.setParameterValues(paramKey, params);
+ }
+
+ public String[] getParameterValues(String paramKey) {
+ IXSDFragment frag = getFragment(paramKey);
+ return (frag != null) ? frag.getParameterValues(paramKey) : null;
+ }
+
+ public boolean validateAllParameterValues() {
+ IXSDFragment[] fragments = getAllFragments();
+ for (int i = 0; i < fragments.length; i++) {
+ if (!fragments[i].validateAllParameterValues())
+ return false;
+ }
+ return true;
+ }
+
+ public boolean validateParameterValues(String paramKey) {
+ IXSDFragment frag = getFragment(paramKey);
+ return (frag != null) ? frag.validateParameterValues(paramKey) : true;
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex) {
+ IXSDFragment frag = getFragment(paramKey);
+ return (frag != null) ? frag.validateParameterValue(paramKey, paramIndex) : true;
+ }
+
+ public void setXSDToFragmentController(XSDToFragmentController controller) {
+ controller_ = controller;
+ }
+
+ public XSDToFragmentController getXSDToFragmentController() {
+ return controller_;
+ }
+
+ protected void addFragment(String id, IXSDFragment frag) {
+ addFragment(id, frag, true);
+ }
+
+ protected void addFragments(String[] id, IXSDFragment[] frags) {
+ addFragments(id, frags, true);
+ }
+
+ protected void addFragment(IXSDFragment frag) {
+ addFragment(frag, true);
+ }
+
+ protected void addFragments(IXSDFragment[] frags) {
+ addFragments(frags, true);
+ }
+
+ protected void addFragments(Vector frags) {
+ addFragments(frags, true);
+ }
+
+ protected void addFragment(String id, IXSDFragment frag, boolean addToController) {
+ fragmentsOrder_.add(id);
+ fragments_.put(id, frag);
+ controller_.addToCache(id, frag);
+ }
+
+ protected void addFragments(String[] id, IXSDFragment[] frags, boolean addToController) {
+ for (int i = 0; i < id.length && i < frags.length; i++) {
+ addFragment(id[i], frags[i], addToController);
+ }
+ }
+
+ protected void addFragment(IXSDFragment frag, boolean addToController) {
+ addFragment(frag.getID(), frag, addToController);
+ }
+
+ protected void addFragments(IXSDFragment[] frags, boolean addToController) {
+ for (int i = 0; i < frags.length; i++) {
+ addFragment(frags[i].getID(), frags[i], addToController);
+ }
+ }
+
+ protected void addFragments(Vector frags, boolean addToController) {
+ Iterator it = frags.iterator();
+ while (it.hasNext()) {
+ Object obj = it.next();
+ if (obj instanceof IXSDFragment) {
+ IXSDFragment frag = (IXSDFragment)obj;
+ addFragment(frag.getID(), frag, addToController);
+ }
+ }
+ }
+
+ public String[] getFragmentsOrder() {
+ String[] fragmentsOrder = new String[fragmentsOrder_.size()];
+ for (int i = 0; i < fragmentsOrder.length; i++) {
+ fragmentsOrder[i] = (String)fragmentsOrder_.get(i);
+ }
+ return fragmentsOrder;
+ }
+
+ protected boolean setFragmentsOrder(String[] fragmentsOrder) {
+ if (fragmentsOrder.length != fragmentsOrder_.size())
+ return false;
+ Vector fragmentsOrderCopy = new Vector(fragmentsOrder_);
+ for (int i = 0; i < fragmentsOrder.length; i++) {
+ if (!fragmentsOrderCopy.remove(fragmentsOrder[i]))
+ return false;
+ }
+ fragmentsOrder_.clear();
+ for (int j = 0; j < fragmentsOrder.length; j++) {
+ fragmentsOrder_.add(fragmentsOrder[j]);
+ }
+ return true;
+ }
+
+ public IXSDFragment getFragment(String id) {
+ return (IXSDFragment)fragments_.get(id);
+ }
+
+ public IXSDFragment[] getFragments(String[] ids) {
+ IXSDFragment[] frags = new IXSDFragment[ids.length];
+ for (int i = 0; i < frags.length; i++) {
+ frags[i] = getFragment(ids[i]);
+ }
+ return frags;
+ }
+
+ public IXSDFragment[] getAllFragments() {
+ IXSDFragment[] fragments = new IXSDFragment[fragmentsOrder_.size()];
+ for (int i = 0; i < fragmentsOrder_.size(); i++) {
+ fragments[i] = getFragment((String)fragmentsOrder_.get(i));
+ }
+ return fragments;
+ }
+
+ protected void removeFragment(String id) {
+ removeFragment(id, true);
+ }
+
+ protected void removeFragments(String[] ids) {
+ removeFragments(ids, true);
+ }
+
+ protected void removeAllFragments() {
+ removeAllFragments(true);
+ }
+
+ protected void removeFragment(String id, boolean removeFromController) {
+ fragmentsOrder_.remove(id);
+ fragments_.remove(id);
+ if (removeFromController)
+ controller_.removeFromCache(id);
+ }
+
+ protected void removeFragments(String[] ids, boolean removeFromController) {
+ for (int i = 0; i < ids.length; i++) {
+ removeFragment(ids[i], removeFromController);
+ }
+ }
+
+ protected void removeAllFragments(boolean removeFromController) {
+ if (removeFromController)
+ {
+ Enumeration ids = fragments_.keys();
+ while (ids.hasMoreElements())
+ {
+ String id = (String)ids.nextElement();
+ controller_.removeFromCache(id);
+ }
+ }
+ fragmentsOrder_.clear();
+ fragments_.clear();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeFixFragment.java
new file mode 100644
index 000000000..ebf6ba524
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeFixFragment.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+public class XSDSimpleAtomicDateTimeFixFragment extends XSDSimpleAtomicFixFragment {
+ private int calendarType_;
+ public XSDSimpleAtomicDateTimeFixFragment(String id, String name, XSDToFragmentConfiguration config, int calendarType) {
+ super(id, name, config);
+ calendarType_ = calendarType;
+ }
+
+ public String getWriteFragment() {
+ StringBuffer fragmentLink = new StringBuffer("/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp?");
+ fragmentLink.append(ActionInputs.CALENDAR_TYPE).append('=').append(calendarType_);
+ return fragmentLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeRangeFragment.java
new file mode 100644
index 000000000..add26d0af
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicDateTimeRangeFragment.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+public class XSDSimpleAtomicDateTimeRangeFragment extends XSDSimpleAtomicRangeFragment {
+ private int calendarType_;
+ public XSDSimpleAtomicDateTimeRangeFragment(String id, String name, XSDToFragmentConfiguration config, int calendarType) {
+ super(id, name, config);
+ calendarType_ = calendarType;
+ }
+
+ public String getWriteFragment() {
+ StringBuffer fragmentLink = new StringBuffer("/wsdl/fragment/XSDSimpleAtomicDateTimeRangeWFragmentJSP.jsp?");
+ fragmentLink.append(ActionInputs.CALENDAR_TYPE).append('=').append(calendarType_);
+ return fragmentLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFixFragment.java
new file mode 100644
index 000000000..1e0155eaa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFixFragment.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*;
+import org.eclipse.emf.common.util.EList;
+
+public class XSDSimpleAtomicEnumFixFragment extends XSDSimpleAtomicEnumFragment {
+ public XSDSimpleAtomicEnumFixFragment(String id, String name, XSDToFragmentConfiguration config, EList elist) {
+ super(id, name, config, elist);
+ }
+
+ public XSDSimpleAtomicEnumFixFragment(String id, String name, XSDToFragmentConfiguration config, OptionVector v)
+ {
+ super(id, name, config, v);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicEnumFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFragment.java
new file mode 100644
index 000000000..919cd4af1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumFragment.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*;
+import org.eclipse.xsd.*;
+
+public abstract class XSDSimpleAtomicEnumFragment extends XSDSimpleAtomicFragment {
+ private OptionVector optionVector_;
+ public XSDSimpleAtomicEnumFragment(String id, String name, XSDToFragmentConfiguration config, EList elist) {
+ super(id, name, config);
+ optionVector_ = new OptionVector();
+ for (int i=0;i<elist.size();i++)
+ {
+ String enumValue = ((XSDEnumerationFacet)elist.get(i)).getLexicalValue();
+ optionVector_.addOption(enumValue,enumValue);
+ }
+ }
+
+ public XSDSimpleAtomicEnumFragment(String id, String name, XSDToFragmentConfiguration config, OptionVector v)
+ {
+ super(id, name, config);
+ optionVector_ = new OptionVector();
+ for (int i=0;i<v.size();i++)
+ optionVector_.addOption(v.getDisplayValue(i),v.getValue(i));
+ }
+
+ public final OptionVector getOptionVector()
+ {
+ return optionVector_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumRangeFragment.java
new file mode 100644
index 000000000..5a74bbd62
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicEnumRangeFragment.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*;
+import org.eclipse.emf.common.util.EList;
+
+public class XSDSimpleAtomicEnumRangeFragment extends XSDSimpleAtomicEnumFragment {
+ public XSDSimpleAtomicEnumRangeFragment(String id, String name, XSDToFragmentConfiguration config, EList elist) {
+ super(id, name, config, elist);
+ }
+
+ public XSDSimpleAtomicEnumRangeFragment(String id, String name, XSDToFragmentConfiguration config, OptionVector v)
+ {
+ super(id, name, config, v);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicEnumRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFixFragment.java
new file mode 100644
index 000000000..5c8dddfcf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFixFragment.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+public class XSDSimpleAtomicFixFragment extends XSDSimpleAtomicFragment {
+ public XSDSimpleAtomicFixFragment(String id, String name, XSDToFragmentConfiguration config) {
+ super(id, name, config);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFragment.java
new file mode 100644
index 000000000..d82a1d83f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicFragment.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*;
+import org.eclipse.xsd.*;
+
+public abstract class XSDSimpleAtomicFragment extends XSDFragment implements IXSDSimpleAtomicFragment {
+ public XSDSimpleAtomicFragment(String id, String name, XSDToFragmentConfiguration config) {
+ super(id, name, config);
+ }
+
+ public boolean validateParameterValue(String paramKey, int paramIndex) {
+ String param = getParameterValue(paramKey, paramIndex);
+ if (param != null && !((XSDSimpleTypeDefinition)getXSDTypeDefinition()).isValidLiteral(param))
+ return false;
+ else
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicRangeFragment.java
new file mode 100644
index 000000000..e3bbd7600
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleAtomicRangeFragment.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+
+public class XSDSimpleAtomicRangeFragment extends XSDSimpleAtomicFragment {
+ public XSDSimpleAtomicRangeFragment(String id, String name, XSDToFragmentConfiguration config) {
+ super(id, name, config);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleAtomicRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFixFragment.java
new file mode 100644
index 000000000..e265bac5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFixFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDSimpleListFixFragment extends XSDSimpleListFragment {
+ public XSDSimpleListFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleListFixWFragmentJSP.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java
new file mode 100644
index 000000000..3246215df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDSimpleListFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDLengthFacet;
+import org.eclipse.xsd.XSDMinLengthFacet;
+import org.eclipse.xsd.XSDMaxLengthFacet;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import java.util.StringTokenizer;
+import java.util.Hashtable;
+
+public abstract class XSDSimpleListFragment extends XSDMapFragment implements IXSDSimpleListFragment
+{
+ public XSDSimpleListFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller)
+ {
+ super(id, name, config, controller);
+ }
+
+ public void setName(String name)
+ {
+ super.setName(name);
+ IXSDFragment[] fragments = getAllFragments();
+ for (int i = 0; i < fragments.length; i++)
+ {
+ fragments[i].setName(name);
+ }
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments)
+ {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ String[] params = new String[instanceDocumentsCopy.length];
+ boolean paramsValid = internalEquals(instanceDocumentsCopy, instanceDocuments);
+ for (int i = 0; i < instanceDocumentsCopy.length; i++)
+ {
+ params[i] = "";
+ NodeList nodeList = instanceDocumentsCopy[i].getChildNodes();
+ if (nodeList.getLength() > 0)
+ {
+ Node node = nodeList.item(0);
+ if (nodeList.getLength() > 1)
+ paramsValid = false;
+ if (node.getNodeType() != Node.TEXT_NODE)
+ paramsValid = false;
+ else
+ params[i] = node.getNodeValue();
+ }
+ else
+ paramsValid = false;
+ }
+ removeAllFragments();
+ for (int i = 0; i < params.length; i++)
+ {
+ IXSDFragment childFrag = getFragment(createListInstance());
+ StringTokenizer st = new StringTokenizer(params[i].trim());
+ String[] childParams = new String[st.countTokens()];
+ for (int j = 0; j < childParams.length; j++)
+ {
+ childParams[j] = st.nextToken();
+ }
+ childFrag.setParameterValues(childFrag.getID(), childParams);
+ paramsValid = paramsValid && childFrag.validateAllParameterValues();
+ }
+ return paramsValid;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc)
+ {
+ IXSDFragment[] fragments = getAllFragments();
+ Element[] instanceDocuments = new Element[fragments.length];
+ String tagName = getInstanceDocumentTagName(namespaceTable);
+ for (int i = 0; i < fragments.length; i++)
+ {
+ Element instanceDocument = doc.createElement(tagName);
+ StringBuffer listValue = new StringBuffer();
+ String[] params = fragments[i].getParameterValues(fragments[i].getID());
+ for (int j = 0; params != null && j < params.length; j++)
+ {
+ if (j != 0)
+ listValue.append(FragmentConstants.LIST_SEPERATOR);
+ listValue.append(params[j]);
+ }
+ Node textNode = doc.createTextNode(listValue.toString());
+ instanceDocument.appendChild(textNode);
+ instanceDocuments[i] = instanceDocument;
+ }
+ return (genXSIType ? addXSIType(instanceDocuments, namespaceTable) : instanceDocuments);
+ }
+
+ public String createListInstance()
+ {
+ String newID = genID();
+ XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)getXSDTypeDefinition();
+ int min = 0;
+ int max = FragmentConstants.UNBOUNDED;
+ XSDLengthFacet xsdLengthFacet = simpleType.getLengthFacet();
+ // port to org.eclipse.xsd
+ if (xsdLengthFacet != null)
+ {
+ min = xsdLengthFacet.getValue();
+ max = xsdLengthFacet.getValue();
+ }
+ else
+ {
+ XSDMinLengthFacet xsdMinLengthFacet = simpleType.getMinLengthFacet();
+ XSDMaxLengthFacet xsdMaxLengthFacet = simpleType.getMaxLengthFacet();
+ // port to org.eclipse.xsd
+ if (xsdMinLengthFacet != null)
+ min = xsdMinLengthFacet.getValue();
+ if (xsdMaxLengthFacet != null)
+ max = xsdMaxLengthFacet.getValue();
+ }
+ XSDToFragmentConfiguration thisConfig = getXSDToFragmentConfiguration();
+ XSDToFragmentConfiguration xsdConfig = new XSDToFragmentConfiguration();
+ xsdConfig.setXSDComponent(simpleType.getItemTypeDefinition());
+ xsdConfig.setStyle(thisConfig.getStyle());
+ xsdConfig.setPartEncoding(thisConfig.getPartEncoding());
+ xsdConfig.setWSDLPartName(thisConfig.getWSDLPartName());
+ xsdConfig.setMinOccurs(min);
+ xsdConfig.setMaxOccurs(max);
+ IXSDFragment frag = getXSDToFragmentController().getFragment(xsdConfig, newID, getName());
+ frag.setID(newID);
+ frag.setName(getName());
+ addFragment(newID, frag);
+ return newID;
+ }
+
+ public String createInstance()
+ {
+ return createListInstance();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListRangeFragment.java
new file mode 100644
index 000000000..aeb95054f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListRangeFragment.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDSimpleListRangeFragment extends XSDSimpleListFragment {
+ public XSDSimpleListRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleListRangeWFragmentJSP.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFixFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFixFragment.java
new file mode 100644
index 000000000..b6c2242f8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFixFragment.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDSimpleUnionFixFragment extends XSDSimpleUnionFragment {
+ public XSDSimpleUnionFixFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleUnionFixWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFragment.java
new file mode 100644
index 000000000..a5a06a6c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionFragment.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDSimpleUnionFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import java.util.Vector;
+import java.util.Hashtable;
+
+public abstract class XSDSimpleUnionFragment extends XSDMapFragment implements IXSDSimpleUnionFragment {
+ private XSDSimpleTypeDefinition[] memberTypes_;
+
+ public XSDSimpleUnionFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ memberTypes_ = null;
+ }
+
+ public void setName(String name) {
+ super.setName(name);
+ IXSDFragment[] fragments = getAllFragments();
+ for (int i = 0; i < fragments.length; i++) {
+ fragments[i].setName(name);
+ }
+ }
+
+ public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) {
+ Element[] instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocuments, getName());
+ int numTypes = getMemberTypeDefinitions().length;
+ boolean paramsValid = internalEquals(instanceDocumentsCopy, instanceDocuments);
+ Vector memberFragments = new Vector();
+ for (int i = 0; i < instanceDocumentsCopy.length; i++) {
+ IXSDFragment compatibleFrag = null;
+ for (int j = 0; j < numTypes; j++) {
+ IXSDFragment memberFrag = getFragment(createUnionInstance(j));
+ Element[] memberInstanceDocument = new Element[1];
+ memberInstanceDocument[0] = setElementTagName(instanceDocumentsCopy[i], memberFrag.getName());
+ if (memberFrag.setParameterValuesFromInstanceDocuments(memberInstanceDocument)) {
+ if (memberFrag.validateAllParameterValues()) {
+ compatibleFrag = memberFrag;
+ break;
+ }
+ else if (compatibleFrag == null)
+ compatibleFrag = memberFrag;
+ }
+ }
+ if (compatibleFrag != null)
+ memberFragments.add(compatibleFrag);
+ else
+ paramsValid = false;
+ }
+ removeAllFragments();
+ addFragments(memberFragments);
+ return paramsValid;
+ }
+
+ public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) {
+ IXSDFragment[] fragments = getAllFragments();
+ Vector instanceDocumentsCopy = new Vector();
+ for (int i = 0; i < fragments.length; i++) {
+ Element[] fragmentInstances = fragments[i].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc);
+ if (fragmentInstances.length > 0)
+ instanceDocumentsCopy.add(fragmentInstances[0]);
+ }
+ Element[] instanceDocuments = new Element[instanceDocumentsCopy.size()];
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ instanceDocuments[i] = (Element)instanceDocumentsCopy.get(i);
+ }
+ return setElementsTagName(instanceDocuments, getInstanceDocumentTagName(namespaceTable));
+ }
+
+ public XSDSimpleTypeDefinition[] getMemberTypeDefinitions() {
+ if (memberTypes_ == null) {
+ EList memberTypes = ((XSDSimpleTypeDefinition)getXSDTypeDefinition()).getMemberTypeDefinitions();
+ memberTypes_ = new XSDSimpleTypeDefinition[memberTypes.size()];
+ for (int i = 0; i < memberTypes_.length; i++) {
+ memberTypes_[i] = (XSDSimpleTypeDefinition)memberTypes.get(i);
+ }
+ }
+ return memberTypes_;
+ }
+
+ public String createUnionInstance(int memberTypeIndex) {
+ getMemberTypeDefinitions();
+ if (memberTypeIndex < 0 || memberTypeIndex > memberTypes_.length - 1)
+ return null;
+ String newID = genID();
+ XSDToFragmentConfiguration thisConfig = getXSDToFragmentConfiguration();
+ XSDToFragmentConfiguration xsdConfig = new XSDToFragmentConfiguration();
+ xsdConfig.setXSDComponent(memberTypes_[memberTypeIndex]);
+ xsdConfig.setStyle(thisConfig.getStyle());
+ xsdConfig.setPartEncoding(thisConfig.getPartEncoding());
+ xsdConfig.setWSDLPartName(thisConfig.getWSDLPartName());
+ IXSDFragment frag = getXSDToFragmentController().getFragment(xsdConfig, newID, getName());
+ frag.setID(newID);
+ frag.setName(getName());
+ addFragment(newID, frag);
+ return newID;
+ }
+
+ public String createInstance() {
+ return createUnionInstance(0);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionRangeFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionRangeFragment.java
new file mode 100644
index 000000000..ec2bb8d02
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleUnionRangeFragment.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.impl;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController;
+
+public class XSDSimpleUnionRangeFragment extends XSDSimpleUnionFragment {
+ public XSDSimpleUnionRangeFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller) {
+ super(id, name, config, controller);
+ }
+
+ public String getInformationFragment() {
+ return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp";
+ }
+
+ public String getReadFragment() {
+ return "/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp";
+ }
+
+ public String getWriteFragment() {
+ return "/wsdl/fragment/XSDSimpleUnionRangeWFragmentJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/HTTPUtil.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/HTTPUtil.java
new file mode 100644
index 000000000..5519e744d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/HTTPUtil.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.util;
+
+import java.util.Hashtable;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.axis.Constants;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDSimpleAtomicFragment;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDSimpleListFragment;
+import org.w3c.dom.Element;
+
+public class HTTPUtil
+{
+ private HTTPUtil()
+ {
+ }
+
+ public static String genURLEncodedParameters(IXSDFragment fragment)
+ {
+ if (fragment instanceof IXSDSimpleListFragment)
+ return genURLEncodedParamsFromListFragment((IXSDSimpleListFragment)fragment);
+ else if (fragment instanceof IXSDSimpleAtomicFragment)
+ return genURLEncodedParamsFromAtomicFragment((IXSDSimpleAtomicFragment)fragment);
+ else
+ return genURLEncodedXMLParameters(fragment);
+ }
+
+ private static String genURLEncodedParamsFromAtomicFragment(IXSDSimpleAtomicFragment fragment)
+ {
+ StringBuffer urlEncodedParam = new StringBuffer();
+ String[] params = fragment.getParameterValues(fragment.getID());
+ for (int i = 0; i < params.length; i++)
+ {
+ urlEncodedParam.append(URLUtils.encode(fragment.getName()));
+ urlEncodedParam.append("=");
+ urlEncodedParam.append(URLUtils.encode(params[i]));
+ if (i < params.length - 1)
+ urlEncodedParam.append("&");
+ }
+ return urlEncodedParam.toString();
+ }
+
+ private static String genURLEncodedParamsFromListFragment(IXSDSimpleListFragment fragment)
+ {
+ StringBuffer urlEncodedParam = new StringBuffer();
+ IXSDFragment[] childFrags = fragment.getAllFragments();
+ for (int i = 0; i < childFrags.length; i++)
+ {
+ urlEncodedParam.append(URLUtils.encode(fragment.getName()));
+ urlEncodedParam.append("=");
+ String[] params = childFrags[i].getParameterValues(childFrags[i].getID());
+ StringBuffer paramBuffer = new StringBuffer();
+ for (int j = 0; j < params.length; j++)
+ {
+ paramBuffer.append(params[j]);
+ if (j < params.length - 1)
+ paramBuffer.append(FragmentConstants.LIST_SEPERATOR);
+ }
+ urlEncodedParam.append(URLUtils.encode(paramBuffer.toString()));
+ if (i < childFrags.length - 1)
+ urlEncodedParam.append("&");
+ }
+ return urlEncodedParam.toString();
+ }
+
+ private static String genURLEncodedXMLParameters(IXSDFragment fragment)
+ {
+ StringBuffer urlEncodedParam = new StringBuffer();
+ Hashtable soapEnvelopeNamespaceTable = new Hashtable();
+ soapEnvelopeNamespaceTable.put(Constants.URI_SOAP11_ENV, Constants.NS_PREFIX_SOAP_ENV);
+ soapEnvelopeNamespaceTable.put(Constants.URI_2001_SCHEMA_XSI, Constants.NS_PREFIX_SCHEMA_XSI);
+ soapEnvelopeNamespaceTable.put(Constants.URI_2001_SCHEMA_XSD, Constants.NS_PREFIX_SCHEMA_XSD);
+ Element[] instanceDocuments = new Element[0];
+ try
+ {
+ instanceDocuments = fragment.genInstanceDocumentsFromParameterValues(true, soapEnvelopeNamespaceTable, XMLUtils.createNewDocument(null));
+ }
+ catch (ParserConfigurationException pce)
+ {
+ }
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ urlEncodedParam.append(URLUtils.encode(fragment.getName()));
+ urlEncodedParam.append("=");
+ urlEncodedParam.append(URLUtils.encode(XMLUtils.serialize(instanceDocuments[i], true)));
+ if (i < instanceDocuments.length - 1)
+ urlEncodedParam.append("&");
+ }
+ return urlEncodedParam.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/OptionVector.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/OptionVector.java
new file mode 100644
index 000000000..1d165c097
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/OptionVector.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.util;
+
+import java.util.*;
+
+public class OptionVector
+{
+ private Vector options_;
+
+ public OptionVector()
+ {
+ options_ = new Vector();
+ }
+
+ public void addOption(String displayValue,String value)
+ {
+ options_.addElement(new Option(displayValue,value));
+ }
+
+ public String getDisplayValue(int position)
+ {
+ Option option = (Option)options_.elementAt(position);
+ return option.getDisplayValue();
+ }
+
+ public String getValue(int position)
+ {
+ Option option = (Option)options_.elementAt(position);
+ return option.getValue();
+ }
+
+ public int size()
+ {
+ return options_.size();
+ }
+
+ private final class Option
+ {
+ private String displayValue_;
+ private String value_;
+ public Option(String displayValue,String value)
+ {
+ displayValue_ = displayValue;
+ value_ = value;
+ }
+
+ public final String getDisplayValue()
+ {
+ return displayValue_;
+ }
+
+ public final String getValue()
+ {
+ return value_;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/XSDTypeDefinitionUtil.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/XSDTypeDefinitionUtil.java
new file mode 100644
index 000000000..ed9622d2d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/util/XSDTypeDefinitionUtil.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.fragment.util;
+
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDComplexTypeContent;
+
+public class XSDTypeDefinitionUtil {
+ private XSDTypeDefinitionUtil() {
+ }
+
+ public static boolean isXSDBuiltInTypeDefinition(XSDTypeDefinition type) {
+ if (type == null)
+ return false;
+ String ns = type.getTargetNamespace();
+ return (ns != null && ns.equals(FragmentConstants.URI_XSD));
+ }
+
+ public static boolean isRootTypeDefinition(XSDTypeDefinition type) {
+ if (type == null)
+ return true;
+ XSDTypeDefinition baseType = type.getBaseType();
+ if (baseType == null)
+ return true;
+ String typeNS = type.getTargetNamespace();
+ String baseTypeNS = baseType.getTargetNamespace();
+ String typeName = type.getName();
+ String baseTypeName = baseType.getName();
+ boolean sameNS;
+ boolean sameName;
+ if (typeNS == null && baseTypeNS == null)
+ sameNS = true;
+ else if (typeNS != null && baseTypeNS != null && typeNS.equals(baseTypeNS))
+ sameNS = true;
+ else
+ sameNS = false;
+ if (typeName == null && baseTypeName == null)
+ sameName = true;
+ else if (typeName != null && baseTypeName != null && typeName.equals(baseTypeName))
+ sameName = true;
+ else
+ sameName = false;
+ return (sameNS && sameName);
+ }
+
+ public static XSDTypeDefinition resolveToXSDBuiltInTypeDefinition(XSDTypeDefinition type) {
+ if (type == null)
+ return null;
+ XSDTypeDefinition currType = type;
+ while (!isXSDBuiltInTypeDefinition(currType)) {
+ if (isRootTypeDefinition(currType))
+ return null;
+ currType = currType.getBaseType();
+ }
+ return currType;
+ }
+
+ public static boolean isSoapEncArray(XSDTypeDefinition type) {
+ XSDTypeDefinition currType = type;
+ if (currType != null)
+ while(currType != null) {
+ String ns = currType.getTargetNamespace();
+ String name = currType.getName();
+ if (FragmentConstants.URI_SOAP.equals(ns) && FragmentConstants.QNAME_LOCAL_NAME_ARRAY.equals(name))
+ return true;
+ else if (isRootTypeDefinition(currType))
+ return false;
+ else
+ currType = currType.getBaseType();
+ }
+ return false;
+ }
+
+ /**
+ * Returns the complex type content given a complex type.
+ * If complexType is a user defined type:
+ * This method will return the user defined complex content of this type or the content of the extended
+ * or derived type iff the extended or derived type is not a built-in XSD type (for example, xsd:anyType).
+ * If complexType is a built-in XSD type:
+ * It will return the complex content of this built-in XSD complex type. It will not return the
+ * complex content of its extended or derived type.
+ * @param complexType XSDComplexTypeDefinition complex type.
+ * @return XSDComplexTypeContent XSDComplexTypeContent the resolved complex type content.
+ **/
+ public static XSDComplexTypeContent getXSDComplexTypeContent(XSDComplexTypeDefinition complexType)
+ {
+ if (!isXSDBuiltInTypeDefinition(complexType))
+ {
+ XSDTypeDefinition type = complexType;
+ while (!isXSDBuiltInTypeDefinition(type) && (type instanceof XSDComplexTypeDefinition))
+ {
+ XSDComplexTypeContent complexTypeContent = ((XSDComplexTypeDefinition)type).getContent();
+ if (complexTypeContent != null)
+ return complexTypeContent;
+ if (isRootTypeDefinition(type))
+ return null;
+ type = type.getBaseType();
+ }
+ return null;
+ }
+ else
+ return complexType.getContent();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/DetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/DetailsTool.java
new file mode 100644
index 000000000..e60ca2e9a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/DetailsTool.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+
+public abstract class DetailsTool extends FormTool {
+
+ public String formLink_;
+
+ public DetailsTool(ToolManager toolManager, String alt, String formLink) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ formLink_ = formLink;
+ }
+
+ protected void initDefaultProperties() {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return formLink_;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/InvokeWSDLOperationTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/InvokeWSDLOperationTool.java
new file mode 100644
index 000000000..77c8ef9f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/InvokeWSDLOperationTool.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*;
+
+public class InvokeWSDLOperationTool extends FormTool {
+
+ private String fragmentViewID_;
+ private String fragmentNameAnchorID_;
+ private String endPoint_;
+
+ public InvokeWSDLOperationTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsdl/images/invoke_wsdl_operation_enabled.gif", "wsdl/images/invoke_wsdl_operation_highlighted.gif", alt);
+ fragmentViewID_ = FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM;
+ fragmentNameAnchorID_ = null;
+ endPoint_ = null;
+ }
+
+ protected void initDefaultProperties() {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ StringBuffer formLink = new StringBuffer();
+ formLink.append("wsdl/forms/InvokeWSDLOperationForm.jsp");
+ String nameAnchorID = getFragmentNameAnchorID();
+ if (nameAnchorID != null && nameAnchorID.length() > 0) {
+ formLink.append("#");
+ formLink.append(nameAnchorID);
+ setFragmentNameAnchorID(null);
+ }
+ return formLink.toString();
+ }
+
+ public String getFormActionLink(int operationType,String fragmentViewID)
+ {
+ switch (operationType)
+ {
+ case WSDLOperationElement.OPERATION_TYPE_SOAP:
+ if (fragmentViewID.equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE))
+ return "wsdl/actions/InvokeWSDLSOAPOperationSourceActionJSP.jsp";
+ else
+ return "wsdl/actions/InvokeWSDLSOAPOperationFormActionJSP.jsp";
+ case WSDLOperationElement.OPERATION_TYPE_HTTP_GET:
+ return "wsdl/actions/InvokeWSDLHttpGetOperationFormActionJSP.jsp";
+ case WSDLOperationElement.OPERATION_TYPE_HTTP_POST:
+ default:
+ return "wsdl/actions/InvokeWSDLHttpPostOperationFormActionJSP.jsp";
+ }
+ }
+
+ public String getFragmentViewID() {
+ return fragmentViewID_;
+ }
+
+ public void setFragmentViewID(String fragmentViewID) {
+ fragmentViewID_ = fragmentViewID;
+ }
+
+ public String getFragmentNameAnchorID() {
+ return fragmentNameAnchorID_;
+ }
+
+ public void setFragmentNameAnchorID(String fragmentNameAnchorID) {
+ fragmentNameAnchorID_ = fragmentNameAnchorID;
+ }
+
+ public String getEndPoint()
+ {
+ return endPoint_;
+ }
+
+ public void setEndPoint(String endPoint)
+ {
+ endPoint_ = endPoint;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/OpenWSDLTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/OpenWSDLTool.java
new file mode 100644
index 000000000..d352109b5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/OpenWSDLTool.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+
+public class OpenWSDLTool extends FormTool {
+
+ public OpenWSDLTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsdl/images/open_wsdl_enabled.gif", "wsdl/images/open_wsdl_highlighted.gif", alt);
+ }
+
+ protected void initDefaultProperties() {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsdl/forms/OpenWSDLForm.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/SOAPMessageQueue.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/SOAPMessageQueue.java
new file mode 100644
index 000000000..470babde4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/SOAPMessageQueue.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+import java.util.*;
+
+public class SOAPMessageQueue extends MessageQueue
+{
+ private Vector cachedMessageList_;
+
+ public SOAPMessageQueue()
+ {
+ super();
+ cachedMessageList_ = new Vector();
+ }
+
+ public void clear()
+ {
+ cachedMessageList_.removeAllElements();
+ messageList_.removeAllElements();
+ }
+
+ public String getMessagesFromList()
+ {
+ if (messageList_.size() == 0)
+ copyMessages(cachedMessageList_,messageList_);
+ else
+ copyMessages(messageList_,cachedMessageList_);
+ return super.getMessagesFromList();
+ }
+
+ private final void copyMessages(Vector sourceList,Vector destList)
+ {
+ for (int i=0;i<sourceList.size();i++)
+ destList.addElement(sourceList.elementAt(i));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLAddToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLAddToFavoritesTool.java
new file mode 100644
index 000000000..271d671b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLAddToFavoritesTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLAddToFavoritesAction;
+
+public class WSDLAddToFavoritesTool extends ActionTool {
+ public WSDLAddToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return WSDLAddToFavoritesAction.getActionLink(selectedNode.getNodeId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingDetailsTool.java
new file mode 100644
index 000000000..4b90d81e6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingDetailsTool.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class WSDLBindingDetailsTool extends DetailsTool {
+
+ public WSDLBindingDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt, "wsdl/forms/WSDLBindingDetailsForm.jsp");
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingNode.java
new file mode 100644
index 000000000..f3315139e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLBindingNode.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+// WSDL binding node for the WSDL Navigator Tree View
+public class WSDLBindingNode extends WSDLNavigatorNode
+{
+ public WSDLBindingNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"wsdl/images/wsdl_binding_node.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(WSDLModelConstants.REL_WSDL_OPERATION)) {
+ WSDLOperationNode wsdlOperationNode = new WSDLOperationNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(wsdlOperationNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(WSDLModelConstants.REL_WSDL_OPERATION)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(WSDLModelConstants.REL_WSDL_OPERATION)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ setVisibilityOfChildren(false);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ new WSDLBindingDetailsTool(toolManager_, wsdlPerspective.getMessage("ALT_WSDL_BINDING_DETAILS"));
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLDetailsTool.java
new file mode 100644
index 000000000..279eadff7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLDetailsTool.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class WSDLDetailsTool extends DetailsTool {
+
+ public static final int FORM_VIEW_ID = 0;
+ public static final int SOURCE_VIEW_ID = 1;
+
+ private int viewId_;
+
+ public WSDLDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt, "wsdl/forms/WSDLDetailsForm.jsp");
+ viewId_ = FORM_VIEW_ID;
+ }
+
+ public int getViewId() {
+ return viewId_;
+ }
+
+ public void setViewId(int viewId) {
+ if (viewId == FORM_VIEW_ID || viewId == SOURCE_VIEW_ID)
+ viewId_ = viewId;
+ }
+
+ public void toggleViewId() {
+ if (viewId_ == FORM_VIEW_ID)
+ viewId_ = SOURCE_VIEW_ID;
+ else
+ viewId_ = FORM_VIEW_ID;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToFileSystemTool.java
new file mode 100644
index 000000000..3b191a3b4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToFileSystemTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToFileSystemTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLImportWSDLToFileSystemAction;
+
+public class WSDLImportWSDLToFileSystemTool extends ImportToFileSystemTool {
+ public WSDLImportWSDLToFileSystemTool(ToolManager toolManager,String alt) {
+ super(toolManager,alt);
+ }
+
+ public final String getSelectToolActionHref(boolean forHistory) {
+ Node node = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getActionLink() {
+ Node node = toolManager_.getNode();
+ return WSDLImportWSDLToFileSystemAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToWorkbenchTool.java
new file mode 100644
index 000000000..5dccc9500
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLImportWSDLToWorkbenchTool.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToWorkbenchTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+
+public class WSDLImportWSDLToWorkbenchTool extends ImportToWorkbenchTool {
+ public WSDLImportWSDLToWorkbenchTool(ToolManager toolManager,String alt) {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node node = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getFormLink() {
+ return "wsdl/forms/WSDLImportWSDLToWorkbenchForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLLaunchWebServiceWizardTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLLaunchWebServiceWizardTool.java
new file mode 100644
index 000000000..36f9780eb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLLaunchWebServiceWizardTool.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.LaunchWebServiceWizardTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction;
+
+public class WSDLLaunchWebServiceWizardTool extends LaunchWebServiceWizardTool {
+ public WSDLLaunchWebServiceWizardTool(ToolManager toolManager,String alt) {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node node = toolManager_.getNode();
+ return SelectWSDLPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
+ }
+
+ public final String getFormLink() {
+ return "wsdl/forms/WSDLLaunchWebServiceWizardForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLMainNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLMainNode.java
new file mode 100644
index 000000000..39af7e79c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLMainNode.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+// Root node for the WSDL Navigator Tree View
+public class WSDLMainNode extends WSDLNavigatorNode
+{
+ public WSDLMainNode(TreeElement element,NodeManager nodeManager)
+ {
+ super(element,nodeManager,1,"images/root_main.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(WSDLModelConstants.REL_WSDL)) {
+ WSDLNode wsdlNode = new WSDLNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(wsdlNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(WSDLModelConstants.REL_WSDL)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(WSDLModelConstants.REL_WSDL)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ new OpenWSDLTool(toolManager_, wsdlPerspective.getMessage("ALT_OPEN_WSDL"));
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNavigatorNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNavigatorNode.java
new file mode 100644
index 000000000..45db89bb7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNavigatorNode.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*;
+
+public abstract class WSDLNavigatorNode extends Node
+{
+ public WSDLNavigatorNode(TreeElement element,NodeManager nodeManager,int nodeDepth,String imagePath)
+ {
+ super(element,nodeManager,nodeDepth,imagePath);
+ }
+
+ // wsdl/actions/ToggleWSDLNavigatorNodeAction.jsp?nodeId=...
+ public final String getToggleNodeActionHref()
+ {
+ return ToggleWSDLNavigatorNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ // wsdl/actions/SelectWSDLNavigatorNodeAction.jsp?nodeId=...
+ public final String getLinkActionHref()
+ {
+ return SelectWSDLNavigatorNodeAction.getActionLink(nodeId_,false);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNode.java
new file mode 100644
index 000000000..c5ffb765f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLNode.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+// WSDL node for the WSDL Navigator Tree View
+public class WSDLNode extends WSDLNavigatorNode
+{
+ public WSDLNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"images/wsdl.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(WSDLModelConstants.REL_WSDL_SERVICE)) {
+ WSDLServiceNode wsdlServiceNode = new WSDLServiceNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(wsdlServiceNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(WSDLModelConstants.REL_WSDL_SERVICE)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(WSDLModelConstants.REL_WSDL_SERVICE)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ setVisibilityOfChildren(false);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ new WSDLDetailsTool(toolManager_, wsdlPerspective.getMessage("ALT_WSDL_DETAILS"));
+ new WSDLImportWSDLToWorkbenchTool(toolManager_, controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new WSDLImportWSDLToFileSystemTool(toolManager_, controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new WSDLLaunchWebServiceWizardTool(toolManager_, controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new WSDLAddToFavoritesTool(toolManager_, wsdlPerspective.getMessage("ALT_ADD_WSDL_TO_FAVORITES"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLOperationNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLOperationNode.java
new file mode 100644
index 000000000..611c96efd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLOperationNode.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+// WSDL operation node for the WSDL Navigator Tree View
+public class WSDLOperationNode extends WSDLNavigatorNode
+{
+ public WSDLOperationNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"wsdl/images/wsdl_operation_node.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ }
+ });
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ new InvokeWSDLOperationTool(toolManager_, wsdlPerspective.getMessage("ALT_INVOKE_WSDL_OPERATION"));
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLPerspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLPerspective.java
new file mode 100644
index 000000000..51782d049
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLPerspective.java
@@ -0,0 +1,369 @@
+/*******************************************************************************
+ * 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.wsdl.perspective;
+
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Vector;
+
+import javax.servlet.ServletContext;
+import javax.wsdl.Service;
+
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryRegistryImpl;
+import org.eclipse.wst.ws.internal.datamodel.BasicModel;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Perspective;
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.OpenWSDLAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SwitchPerspectiveFromWSDLAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.UpdateWSDLBindingAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.BindingTypes;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLBindingElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLServiceElement;
+import org.eclipse.xsd.impl.XSDPackageImpl;
+import org.eclipse.xsd.util.XSDResourceFactoryImpl;
+
+public class WSDLPerspective extends Perspective
+{
+ public static final int STATUS_CONTENT_DEFAULT = 0;
+ public static final int STATUS_CONTENT_RESULT_FORM = 1;
+ public static final int STATUS_CONTENT_RESULT_SOURCE = 2;
+
+ private BasicModel model_;
+ private NodeManager nodeManager_;
+ private String perspectiveContentFramesetCols_;
+ private String savedPerspectiveContentFramesetCols_;
+ private String actionsContainerFramesetRows_;
+ private String savedActionsContainerFramesetRows_;
+ private int statusContentType_;
+
+ private SOAPMessageQueue soapRequestQueue_;
+ private SOAPMessageQueue soapResponseQueue_;
+ private Node operationNode_;
+
+ static
+ {
+ // Initialize the XSD subsystem.
+ (new ResourceFactoryRegistryImpl()).getExtensionToFactoryMap().put("xsd",new XSDResourceFactoryImpl());
+ // port to org.eclipse.xsd
+ // Init.init();
+ EcorePackageImpl.init();
+ XSDPackageImpl.init();
+ }
+
+ public WSDLPerspective(Controller controller)
+ {
+ super("wsdl",controller);
+ }
+
+ public final void initPerspective(ServletContext application)
+ {
+ model_ = new BasicModel("wsdlModel");
+ TreeElement treeElement = new TreeElement(getMessage("NODE_NAME_WSDL_MAIN"), model_);
+ model_.setRootElement(treeElement);
+ nodeManager_ = new NodeManager(controller_);
+ WSDLMainNode wsdlMainNode = new WSDLMainNode(treeElement, nodeManager_);
+ nodeManager_.setRootNode(wsdlMainNode);
+
+ // Starting frameset sizes.
+ perspectiveContentFramesetCols_ = "30%,*";
+ savedPerspectiveContentFramesetCols_ = perspectiveContentFramesetCols_;
+ actionsContainerFramesetRows_ = "75%,*";
+ savedActionsContainerFramesetRows_ = actionsContainerFramesetRows_;
+
+ // Message status pane
+ statusContentType_ = STATUS_CONTENT_DEFAULT;
+ soapRequestQueue_ = new SOAPMessageQueue();
+ soapResponseQueue_ = new SOAPMessageQueue();
+ operationNode_ = null;
+ }
+
+ public final void preloadWSDL(String[] wsdlURLs) {
+ if (wsdlURLs != null) {
+ for (int i = 0; i < wsdlURLs.length; i++) {
+ OpenWSDLAction openWSDLAction = new OpenWSDLAction(controller_);
+ Hashtable propertyTable = openWSDLAction.getPropertyTable();
+ String decodedWSDLURL = URLUtils.decode(wsdlURLs[i]);
+ propertyTable.put(ActionInputs.QUERY_INPUT_WSDL_URL, decodedWSDLURL);
+ openWSDLAction.run();
+ }
+ if (wsdlURLs.length > 0)
+ controller_.setCurrentPerspective(ActionInputs.PERSPECTIVE_WSDL);
+ }
+ }
+
+ public final void preloadEndpoints(String[] wsdlURLs, String[] endpoints)
+ {
+ if (wsdlURLs != null && wsdlURLs.length > 0 && endpoints != null && endpoints.length > 0)
+ {
+ String wsdlURL = wsdlURLs[0];
+ Vector wsdlNodes = nodeManager_.getRootNode().getChildNodes();
+ for (Iterator wsdlNodesIterator = wsdlNodes.iterator(); wsdlNodesIterator.hasNext();)
+ {
+ Node wsdlNode = (Node)wsdlNodesIterator.next();
+ if (wsdlNode.getNodeName().equals(wsdlURL))
+ {
+ Vector serviceNodes = wsdlNode.getChildNodes();
+ for (Iterator serviceNodesIterator = serviceNodes.iterator(); serviceNodesIterator.hasNext();)
+ {
+ Node serviceNode = (Node)serviceNodesIterator.next();
+ Vector bindingNodes = serviceNode.getChildNodes();
+ String[] nodeIds = new String[bindingNodes.size()];
+ for (int i = 0; i < nodeIds.length; i++)
+ nodeIds[i] = String.valueOf(((Node)bindingNodes.get(i)).getNodeId());
+ UpdateWSDLBindingAction action = new UpdateWSDLBindingAction(controller_);
+ Hashtable propertyTable = new Hashtable();
+ propertyTable.put(ActionInputs.NODEID, nodeIds);
+ propertyTable.put(WSDLActionInputs.END_POINT, endpoints);
+ action.setPropertyTable(propertyTable);
+ action.execute(false);
+ }
+ return;
+ }
+ }
+ }
+ }
+
+ public final void preselectServiceOrBinding(String[] wsdlURLs,String[] serviceQNameStrings,String[] bindingNameStrings)
+ {
+ if (wsdlURLs != null && wsdlURLs.length > 0)
+ {
+ String wsdlURL = wsdlURLs[0];
+ Vector wsdlNodes = nodeManager_.getRootNode().getChildNodes();
+ if (serviceQNameStrings != null && serviceQNameStrings.length > 0)
+ preselectService(wsdlURL,serviceQNameStrings[0]);
+ else
+ {
+ if (bindingNameStrings != null && bindingNameStrings.length > 0)
+ preselectBinding(wsdlURL,bindingNameStrings[0]);
+ }
+ }
+ }
+
+ private final void preselectService(String wsdlURL,String serviceQNameString)
+ {
+ Vector wsdlNodes = nodeManager_.getRootNode().getChildNodes();
+ for (int i=0;i<wsdlNodes.size();i++)
+ {
+ Node wsdlNode = (Node)wsdlNodes.elementAt(i);
+ if (wsdlNode.getNodeName().equals(wsdlURL))
+ {
+ Vector serviceNodes = wsdlNode.getChildNodes();
+ for (int j=0;j<serviceNodes.size();j++)
+ {
+ Node serviceNode = (Node)serviceNodes.elementAt(j);
+ WSDLServiceElement serviceElement = (WSDLServiceElement)serviceNode.getTreeElement();
+ Service service = serviceElement.getService();
+ if (service.getQName().toString().equals(serviceQNameString))
+ {
+ nodeManager_.setSelectedNodeId(serviceNode.getNodeId());
+ nodeManager_.makeSelectedNodeVisible();
+ controller_.setCurrentPerspective(ActionInputs.PERSPECTIVE_WSDL);
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ private final void preselectBinding(String wsdlURL,String bindingNameString)
+ {
+ Vector wsdlNodes = nodeManager_.getRootNode().getChildNodes();
+ for (int i=0;i<wsdlNodes.size();i++)
+ {
+ Node wsdlNode = (Node)wsdlNodes.elementAt(i);
+ if (wsdlNode.getNodeName().equals(wsdlURL))
+ {
+ Vector serviceNodes = wsdlNode.getChildNodes();
+ for (int j=0;j<serviceNodes.size();j++)
+ {
+ Node serviceNode = (Node)serviceNodes.elementAt(j);
+ Vector bindingNodes = serviceNode.getChildNodes();
+ for (int k=0;k<bindingNodes.size();k++)
+ {
+ Node bindingNode = (Node)bindingNodes.elementAt(k);
+ WSDLBindingElement bindingElement = (WSDLBindingElement)bindingNode.getTreeElement();
+ if (bindingElement.getBinding().getQName().toString().equals(bindingNameString))
+ {
+ nodeManager_.setSelectedNodeId(bindingNode.getNodeId());
+ nodeManager_.makeSelectedNodeVisible();
+ controller_.setCurrentPerspective(ActionInputs.PERSPECTIVE_WSDL);
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public NodeManager getNodeManager()
+ {
+ return nodeManager_;
+ }
+
+ public String getPerspectiveContentPage()
+ {
+ return "wsdl/wsdl_perspective_content.jsp";
+ }
+
+ public int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSDL;
+ }
+
+ public String getPanesFile()
+ {
+ return "wsdl/scripts/wsdlpanes.jsp";
+ }
+
+ public String getFramesetsFile()
+ {
+ return "wsdl/scripts/wsdlframesets.jsp";
+ }
+
+ public String getProcessFramesetsForm()
+ {
+ return "wsdl/forms/ProcessWSDLFramesetsForm.jsp";
+ }
+
+ public String getTreeContentVar()
+ {
+ return "wsdlNavigatorContent";
+ }
+
+ public String getTreeContentPage()
+ {
+ return "wsdl/wsdl_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar()
+ {
+ return "wsdlPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage()
+ {
+ return "wsdl/wsdl_properties_container.jsp";
+ }
+
+ public String getStatusContentVar()
+ {
+ return "wsdlStatusContent";
+ }
+
+ public String getStatusContentPage()
+ {
+ return "wsdl/wsdl_status_content.jsp";
+ }
+
+ public final String getPerspectiveContentFramesetCols()
+ {
+ return perspectiveContentFramesetCols_;
+ }
+
+ public final void setPerspectiveContentFramesetCols(String cols)
+ {
+ perspectiveContentFramesetCols_ = cols;
+ }
+
+ public final void setSavedPerspectiveContentFramesetCols(String cols)
+ {
+ savedPerspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getSavedPerspectiveContentFramesetCols()
+ {
+ return savedPerspectiveContentFramesetCols_;
+ }
+
+ public final String getActionsContainerFramesetRows()
+ {
+ return actionsContainerFramesetRows_;
+ }
+
+ public final void setActionsContainerFramesetRows(String rows)
+ {
+ actionsContainerFramesetRows_ = rows;
+ }
+
+ public final void setSavedActionsContainerFramesetRows(String rows)
+ {
+ savedActionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSavedActionsContainerFramesetRows()
+ {
+ return savedActionsContainerFramesetRows_;
+ }
+
+ public final String getSwitchPerspectiveFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ return SwitchPerspectiveFromWSDLAction.getFormActionLink(targetPerspectiveId,forHistory);
+ }
+
+ public final int getStatusContentType()
+ {
+ return statusContentType_;
+ }
+
+ public final void setStatusContentType(int statusContentType)
+ {
+ statusContentType_ = statusContentType;
+ }
+
+ public final SOAPMessageQueue getSOAPRequestQueue()
+ {
+ return soapRequestQueue_;
+ }
+
+ public final SOAPMessageQueue getSOAPResponseQueue()
+ {
+ return soapResponseQueue_;
+ }
+
+ public final Node getOperationNode()
+ {
+ return operationNode_;
+ }
+
+ public final void setOperationNode(Node operationNode)
+ {
+ operationNode_ = operationNode;
+ }
+
+ public final String getSOAPEnvelopeXMLLink(int soapEnvelopeType)
+ {
+ StringBuffer link = new StringBuffer("wsdl/soap_envelope_xml.jsp?");
+ link.append(WSDLActionInputs.SOAP_ENVELOPE_TYPE).append('=').append(soapEnvelopeType);
+ return link.toString();
+ }
+
+ public final String getBindingTypeString(int bindingType)
+ {
+ switch (bindingType)
+ {
+ case BindingTypes.SOAP:
+ return getMessage("FORM_LABEL_BINDING_TYPE_SOAP");
+ case BindingTypes.HTTP_GET:
+ return getMessage("FORM_LABEL_BINDING_TYPE_HTTP_GET");
+ case BindingTypes.HTTP_POST:
+ return getMessage("FORM_LABEL_BINDING_TYPE_HTTP_POST");
+ default:
+ return getMessage("FORM_LABEL_BINDING_TYPE_UNSUPPORTED");
+ }
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceDetailsTool.java
new file mode 100644
index 000000000..457fe9b61
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceDetailsTool.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+
+public class WSDLServiceDetailsTool extends DetailsTool {
+
+ public WSDLServiceDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt, "wsdl/forms/WSDLServiceDetailsForm.jsp");
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceNode.java
new file mode 100644
index 000000000..5937378b8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/perspective/WSDLServiceNode.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*;
+
+// WSDL service node for the WSDL Navigator Tree View
+public class WSDLServiceNode extends WSDLNavigatorNode
+{
+ public WSDLServiceNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
+ {
+ super(element,nodeManager,nodeDepth,"wsdl/images/wsdl_service_node.gif");
+ element.addListener(new ElementAdapter()
+ {
+ public void relAdded(RelAddEvent event)
+ {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(WSDLModelConstants.REL_WSDL_BINDING)) {
+ WSDLBindingNode wsdlBindingNode = new WSDLBindingNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(wsdlBindingNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event)
+ {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(WSDLModelConstants.REL_WSDL_BINDING)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(WSDLModelConstants.REL_WSDL_BINDING)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ setVisibilityOfChildren(false);
+ }
+
+ protected final void initTools()
+ {
+ Controller controller = nodeManager_.getController();
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ new WSDLServiceDetailsTool(toolManager_, wsdlPerspective.getMessage("ALT_WSDL_SERVICE_DETAILS"));
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transformer/FragmentTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transformer/FragmentTransformer.java
new file mode 100644
index 000000000..8b85259db
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transformer/FragmentTransformer.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * 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.wsdl.transformer;
+
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Vector;
+import javax.wsdl.Part;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLOperationElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class FragmentTransformer implements ITransformer
+{
+ protected Controller controller;
+
+ public FragmentTransformer(Controller controller)
+ {
+ this.controller = controller;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append("<root>");
+ WSDLOperationElement operElement = (WSDLOperationElement)controller.getWSDLPerspective().getNodeManager().getSelectedNode().getTreeElement();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = (IXSDFragment)operElement.getFragment(part);
+ Element[] elements = new Element[0];
+ try
+ {
+ elements = frag.genInstanceDocumentsFromParameterValues(!operElement.isUseLiteral(), new Hashtable(), XMLUtils.createNewDocument(null));
+ }
+ catch (ParserConfigurationException pce)
+ {
+ }
+ for (int i = 0; i < elements.length; i++)
+ sb.append(XMLUtils.serialize(elements[i], true));
+ }
+ sb.append("</root>");
+ properties.put(FragmentConstants.SOURCE_CONTENT, sb.toString());
+ return properties;
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ String source = (String) properties.get(FragmentConstants.SOURCE_CONTENT);
+ if (source != null)
+ {
+ try
+ {
+ Element root = XMLUtils.stringToElement(source);
+ if (root != null)
+ {
+ NodeList childNodes = root.getChildNodes();
+ Vector childrenVector = new Vector();
+ for (int i = 0; i < childNodes.getLength(); i++)
+ {
+ Node child = childNodes.item(i);
+ if (child instanceof Element)
+ childrenVector.add(child);
+ }
+ Element[] children = (Element[])childrenVector.toArray(new Element[0]);
+ WSDLOperationElement operElement = (WSDLOperationElement) controller.getWSDLPerspective().getNodeManager().getSelectedNode().getTreeElement();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = (IXSDFragment)operElement.getFragment(part);
+ frag.setParameterValuesFromInstanceDocuments(children);
+ }
+ }
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return properties;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/ChunkedInputStream.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/ChunkedInputStream.java
new file mode 100644
index 000000000..8f610328f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/ChunkedInputStream.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsdl.transport;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class ChunkedInputStream extends FilterInputStream
+{
+ protected long chunkSize = 0l;
+ protected volatile boolean closed = false;
+ private static final int maxCharLong = (Long.toHexString(Long.MAX_VALUE)).toString().length();
+
+ private ChunkedInputStream()
+ {
+ super(null);
+ }
+
+ public ChunkedInputStream(InputStream is)
+ {
+ super(is);
+ }
+
+ public int read() throws IOException
+ {
+ byte[] d = new byte[1];
+ int rc = read(d, 0, 1);
+ return rc > 0 ? (d[0] & 0xFF) : rc;
+ }
+
+ public int read(byte[] b) throws IOException
+ {
+ return read(b, 0, b.length);
+ }
+
+ public synchronized int read(byte[] b, int off, int len) throws IOException
+ {
+ if (closed)
+ return -1;
+ int cs = (int) Math.min(Integer.MAX_VALUE, chunkSize);
+ int totalread = 0;
+ int bytesread = 0;
+ try
+ {
+ do
+ {
+ if (chunkSize < 1L)
+ {
+ if (0l == getChunked())
+ {
+ if (totalread == 0)
+ return -1;
+ else
+ return totalread;
+ }
+ }
+ bytesread = in.read(b, off + totalread, Math.min(len - totalread, (int) Math.min(chunkSize, Integer.MAX_VALUE)));
+ if (bytesread > 0)
+ {
+ totalread += bytesread;
+ chunkSize -= bytesread;
+ }
+ }
+ while (len - totalread > 0 && bytesread > -1);
+ }
+ catch (IOException e)
+ {
+ closed = true;
+ throw e;
+ }
+ return totalread;
+ }
+
+ public long skip(final long n) throws IOException
+ {
+ if (closed)
+ return 0;
+ long skipped = 0l;
+ byte[] b = new byte[1024];
+ int bread = -1;
+ do
+ {
+ bread = read(b, 0, b.length);
+ if (bread > 0)
+ skipped += bread;
+ }
+ while (bread != -1 && skipped < n);
+ return skipped;
+ }
+
+ public int available() throws IOException
+ {
+ if (closed)
+ return 0;
+ int rc = (int) Math.min(chunkSize, Integer.MAX_VALUE);
+ return Math.min(rc, in.available());
+ }
+
+ protected long getChunked() throws IOException
+ {
+ //StringBuffer buf= new StringBuffer(1024);
+ byte[] buf = new byte[maxCharLong + 2];
+ int bufsz = 0;
+ chunkSize = -1L;
+ int c = -1;
+ do
+ {
+ c = in.read();
+ if (c > -1)
+ {
+ if (c != '\r' && c != '\n' && c != ' ' && c != '\t')
+ {
+ buf[bufsz++] = ((byte) c);
+ }
+ }
+ }
+ while (c > -1 && (c != '\n' || bufsz == 0) && bufsz < buf.length);
+ if (c < 0)
+ {
+ closed = true;
+ }
+ String sbuf = new String(buf, 0, bufsz);
+ if (bufsz > maxCharLong)
+ {
+ closed = true;
+ throw new IOException("Chunked input stream failed to receive valid chunk size:" + sbuf);
+ }
+ try
+ {
+ chunkSize = Long.parseLong(sbuf, 16);
+ }
+ catch (NumberFormatException ne)
+ {
+ closed = true;
+ throw new IOException("'" + sbuf + "' " + ne.getMessage());
+ }
+ if (chunkSize < 1L)
+ closed = true;
+ if (chunkSize != 0L && c < 0)
+ {
+ //If chunk size is zero try and be tolerant that there maybe no cr or lf
+ // at the end.
+ throw new IOException("HTTP Chunked stream closed in middle of chunk.");
+ }
+ if (chunkSize < 0L)
+ throw new IOException("HTTP Chunk size received " + chunkSize + " is less than zero.");
+ return chunkSize;
+ }
+
+ public void close() throws IOException
+ {
+ synchronized (this)
+ {
+ if (closed)
+ return;
+ closed = true;
+ }
+ byte[] b = new byte[1024];
+ int bread = -1;
+ do
+ {
+ bread = read(b, 0, b.length);
+ }
+ while (bread != -1);
+ }
+
+ /*
+ * public void mark(int readlimit)
+ * {
+ * }
+ */
+
+ public void reset() throws IOException
+ {
+ throw new IOException("Don't support marked streams");
+ }
+
+ public boolean markSupported()
+ {
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPException.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPException.java
new file mode 100644
index 000000000..28588328d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPException.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.wsdl.transport;
+
+import java.util.Map;
+
+public class HTTPException extends RuntimeException
+{
+ /**
+ * Comment for <code>serialVersionUID</code>
+ */
+ private static final long serialVersionUID = 3256438105900134961L;
+private int statusCode;
+ private String statusMessage;
+ private Map headers;
+
+ public HTTPException(int statusCode, String statusMessage, Map headers)
+ {
+ super(statusMessage);
+ this.statusCode = statusCode;
+ this.statusMessage = statusMessage;
+ this.headers = headers;
+ }
+
+ public int getStatusCode()
+ {
+ return statusCode;
+ }
+
+ public String getStatusMessage()
+ {
+ return statusMessage;
+ }
+
+ public Map getHeaders()
+ {
+ return headers;
+ }
+
+ public String getHeader(String key)
+ {
+ Object value = headers.get(key);
+ if (value != null)
+ return value.toString();
+ else
+ return null;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPResponse.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPResponse.java
new file mode 100644
index 000000000..65b61afd4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPResponse.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * 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.wsdl.transport;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+public class HTTPResponse
+{
+ private boolean statusSet;
+ private int statusCode;
+ private String statusMessage;
+ private Hashtable headers;
+ private byte[] payload;
+
+ public HTTPResponse()
+ {
+ reset();
+ }
+
+ public void reset()
+ {
+ statusSet = false;
+ statusCode = -1;
+ statusMessage = null;
+ if (headers != null)
+ headers.clear();
+ else
+ headers = new Hashtable();
+ payload = new byte[0];
+ }
+
+ public boolean isStatusSet()
+ {
+ return statusSet;
+ }
+
+ public int getStatusCode()
+ {
+ return statusCode;
+ }
+
+ public void setStatusCode(int statusCode)
+ {
+ statusSet = true;
+ this.statusCode = statusCode;
+ }
+
+ public String getStatusMessage()
+ {
+ return statusMessage;
+ }
+
+ public void setStatusMessage(String statusMessage)
+ {
+ this.statusMessage = statusMessage;
+ }
+
+ public void addHeader(String key, String value)
+ {
+ headers.put(key, value);
+ }
+
+ public String getHeader(String key)
+ {
+ return (String) headers.get(key);
+ }
+
+ public Map getHeaders()
+ {
+ return headers;
+ }
+
+ public byte[] getPayload()
+ {
+ return payload;
+ }
+
+ public void setPayload(byte[] payload)
+ {
+ this.payload = payload;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java
new file mode 100644
index 000000000..ab48e3e64
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java
@@ -0,0 +1,495 @@
+/*******************************************************************************
+ * 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.wsdl.transport;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils;
+
+import sun.misc.BASE64Encoder;
+
+import org.w3c.dom.Element;
+
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.Hashtable;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import javax.net.ssl.SSLSocketFactory;
+
+public class HTTPTransport
+{
+ private final String SYS_PROP_HTTPS_PROXY_HOST = "https.proxyHost";
+ private final String SYS_PROP_HTTPS_PROXY_PORT = "https.proxyPort";
+ private final String SYS_PROP_HTTP_PROXY_HOST = "http.proxyHost";
+ private final String SYS_PROP_HTTP_PROXY_PORT = "http.proxyPort";
+ private final String SYS_PROP_HTTP_PROXY_USER_NAME = "http.proxyUserName";
+ private final String SYS_PROP_HTTP_PROXY_PASSWORD = "http.proxyPassword";
+
+ private final String HTTP_METHOD = "POST";
+ private final String HTTP_VERSION = "HTTP/1.1";
+ private final String HTTP_HEADER_SOAP_ACTION = "SOAPAction";
+ public static final String HTTP_HEADER_AUTH = "Authorization";
+ public static final String HTTP_HEADER_WWW_AUTH = "WWW-Authenticate";
+ private final String HTTP_HEADER_PROXY_AUTH = "Proxy-authorization";
+ private final String HTTP_HEADER_COOKIE = "Cookie";
+ private final String HTTP_HEADER_COOKIE2 = "Cookie2";
+ private final String HTTP_HEADER_HOST = "Host";
+ private final String HTTP_HEADER_CONTENT_TYPE = "Content-Type";
+ public static final String HTTP_HEADER_CONTENT_LENGTH = "Content-Length";
+ private final String HTTP_HEADER_ACCEPT = "Accept";
+ private final String HTTP_HEADER_USER_AGENT = "User-Agent";
+ private final String HTTP_HEADER_CACHE_CONTROL = "Cache-Control";
+ private final String HTTP_HEADER_PRAGMA = "Pragma";
+ private final String HTTP_HEADER_TRANSFER_ENCODEING = "Transfer-Encoding";
+ private final String HTTP_HEADER_CONNECTION = "Connection";
+
+ private final int HTTP_CODE_CONTINUE = 100;
+ private final int HTTP_CODE_OK = 200;
+ private final int HTTP_CODE_EXCEPTION = 300;
+
+ private final String IBM_WEB_SERVICES_EXPLORER = "IBM Web Services Explorer";
+ private final String TEXT_XML = "text/xml";
+ private final String CONTENT_TYPE_VALUE = "text/xml; charset=utf-8";
+ private final String ACCEPT_VALUE = "application/soap+xml, application/dime, multipart/related, text/*";
+ public static final String BASIC = "Basic";
+ private final String NO_CACHE = "no-cache";
+ private final String CHUNKED = "chunked";
+ private final String CLOSE = "close";
+ private final String HTTPS = "https";
+ private final char QUOTE = '\"';
+ public static final char COLON = ':';
+ private final char SPACE = ' ';
+ private final char TAB = '\t';
+ private final char R = '\r';
+ private final char N = '\n';
+ private final char ROOT = '/';
+ private final String NEW_LINE = "\r\n";
+ private final String EMPTY_STRING = "";
+
+ private final int DEFAULT_HTTP_PORT = 80;
+ private final int DEFAULT_HTTPS_PORT = 443;
+ private final String DEFAULT_SOAP_ENCODING = "UTF-8";
+ private final String DEFAULT_HTTP_HEADER_ENCODING = "iso-8859-1";
+
+ private String httpBasicAuthUsername;
+ private String httpBasicAuthPassword;
+ private boolean maintainSession = false;
+ private String cookie;
+ private String cookie2;
+ private boolean useChunked = false;
+ private HTTPResponse httpResponse;
+
+ public String getHttpBasicAuthUsername()
+ {
+ return httpBasicAuthUsername;
+ }
+
+ public void setHttpBasicAuthUsername(String httpBasicAuthUsername)
+ {
+ this.httpBasicAuthUsername = httpBasicAuthUsername;
+ }
+
+ public String getHttpBasicAuthPassword()
+ {
+ return httpBasicAuthPassword;
+ }
+
+ public void setHttpBasicAuthPassword(String httpBasicAuthPassword)
+ {
+ this.httpBasicAuthPassword = httpBasicAuthPassword;
+ }
+
+ private String getMethod(URL url)
+ {
+ StringBuffer sb = new StringBuffer(HTTP_METHOD);
+ sb.append(SPACE);
+ String httpProxyHost = System.getProperty(SYS_PROP_HTTP_PROXY_HOST);
+ String httpsProxyHost = System.getProperty(SYS_PROP_HTTPS_PROXY_HOST);
+ if (httpProxyHost != null && httpProxyHost.length() > 0 && httpsProxyHost != null && httpsProxyHost.length() > 0)
+ sb.append(url.toString());
+ else
+ {
+ String file = url.getFile();
+ if (file != null && file.length() > 0)
+ sb.append(file);
+ else
+ sb.append(ROOT);
+ }
+ sb.append(SPACE);
+ sb.append(HTTP_VERSION);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+
+ private String getHost(URL url)
+ {
+ StringBuffer sb = new StringBuffer(HTTP_HEADER_HOST);
+ sb.append(COLON);
+ sb.append(SPACE);
+ sb.append(url.getHost());
+ sb.append(COLON);
+ int port = url.getPort();
+ if (port > 0)
+ sb.append(String.valueOf(port));
+ else if (url.getProtocol().equalsIgnoreCase(HTTPS))
+ sb.append(DEFAULT_HTTPS_PORT);
+ else
+ sb.append(DEFAULT_HTTP_PORT);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+
+ private String getContentType()
+ {
+ return getHTTPHeader(HTTP_HEADER_CONTENT_TYPE, CONTENT_TYPE_VALUE);
+ }
+
+ private String getContentLength(String payload)
+ {
+ return getHTTPHeader(HTTP_HEADER_CONTENT_LENGTH, String.valueOf(payload.length()));
+ }
+
+ private String getSOAPAction(String soapAction)
+ {
+ StringBuffer sb = new StringBuffer(HTTP_HEADER_SOAP_ACTION);
+ sb.append(COLON);
+ sb.append(SPACE);
+ sb.append(QUOTE);
+ if (soapAction != null)
+ sb.append(soapAction);
+ sb.append(QUOTE);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+
+ private String getCookie()
+ {
+ if (maintainSession)
+ return getHTTPHeader(HTTP_HEADER_COOKIE, cookie);
+ else
+ return EMPTY_STRING;
+ }
+
+ private String getCookie2()
+ {
+ if (maintainSession)
+ return getHTTPHeader(HTTP_HEADER_COOKIE2, cookie2);
+ else
+ return EMPTY_STRING;
+ }
+
+ private String getWWWAuthentication()
+ {
+ if (httpBasicAuthUsername != null && httpBasicAuthPassword != null)
+ {
+ StringBuffer sb = new StringBuffer(httpBasicAuthUsername);
+ sb.append(COLON);
+ sb.append(httpBasicAuthPassword);
+ BASE64Encoder encoder = new BASE64Encoder();
+ String encodedUserNamePassword = encoder.encode(sb.toString().getBytes());
+ sb.setLength(0);
+ sb.append(HTTP_HEADER_AUTH);
+ sb.append(COLON);
+ sb.append(SPACE);
+ sb.append(BASIC);
+ sb.append(SPACE);
+ sb.append(encodedUserNamePassword);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+ else
+ return EMPTY_STRING;
+ }
+
+ private String getProxyAuthentication()
+ {
+ String proxyUserName = System.getProperty(SYS_PROP_HTTP_PROXY_USER_NAME);
+ String proxyPassword = System.getProperty(SYS_PROP_HTTP_PROXY_PASSWORD);
+ if (proxyUserName != null && proxyPassword != null)
+ {
+ StringBuffer sb = new StringBuffer(proxyUserName);
+ sb.append(COLON);
+ sb.append(proxyPassword);
+ BASE64Encoder encoder = new BASE64Encoder();
+ String encodedUserNamePassword = encoder.encode(sb.toString().getBytes());
+ sb.setLength(0);
+ sb.append(HTTP_HEADER_PROXY_AUTH);
+ sb.append(COLON);
+ sb.append(SPACE);
+ sb.append(BASIC);
+ sb.append(SPACE);
+ sb.append(encodedUserNamePassword);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+ else
+ return EMPTY_STRING;
+ }
+
+ private String getAccept()
+ {
+ return getHTTPHeader(HTTP_HEADER_ACCEPT, ACCEPT_VALUE);
+ }
+
+ private String getUserAgent()
+ {
+ return getHTTPHeader(HTTP_HEADER_USER_AGENT, IBM_WEB_SERVICES_EXPLORER);
+ }
+
+ private String getCacheControl()
+ {
+ return getHTTPHeader(HTTP_HEADER_CACHE_CONTROL, NO_CACHE);
+ }
+
+ private String getPragma()
+ {
+ return getHTTPHeader(HTTP_HEADER_PRAGMA, NO_CACHE);
+ }
+
+ private String getConnection()
+ {
+ return getHTTPHeader(HTTP_HEADER_CONNECTION, CLOSE);
+ }
+
+ private String getHTTPHeader(String key, String value)
+ {
+ if (value != null)
+ {
+ StringBuffer sb = new StringBuffer(key);
+ sb.append(COLON);
+ sb.append(SPACE);
+ sb.append(value);
+ sb.append(NEW_LINE);
+ return sb.toString();
+ }
+ else
+ return EMPTY_STRING;
+ }
+
+ public void send(URL url, String soapAction, String payload) throws UnknownHostException, IOException
+ {
+ StringBuffer httpHeader = new StringBuffer();
+ httpHeader.append(getMethod(url));
+ httpHeader.append(getHost(url));
+ httpHeader.append(getContentType());
+ httpHeader.append(getContentLength(payload));
+ httpHeader.append(getAccept());
+ httpHeader.append(getUserAgent());
+ httpHeader.append(getCacheControl());
+ httpHeader.append(getPragma());
+ httpHeader.append(getSOAPAction(soapAction));
+ httpHeader.append(getWWWAuthentication());
+ httpHeader.append(getProxyAuthentication());
+ httpHeader.append(getCookie());
+ httpHeader.append(getCookie2());
+ httpHeader.append(getConnection());
+ httpHeader.append(NEW_LINE); // new line between the HTTP header and the payload
+ Socket socket = buildSocket(url);
+ InputStream is = socket.getInputStream();
+ OutputStream os = socket.getOutputStream();
+ os.write(httpHeader.toString().getBytes(DEFAULT_HTTP_HEADER_ENCODING));
+ os.write(payload.getBytes(DEFAULT_SOAP_ENCODING));
+ os.flush();
+ httpResponse = new HTTPResponse();
+ readHTTPResponseHeader(is, httpResponse);
+ int code = httpResponse.getStatusCode();
+ if (code == HTTP_CODE_CONTINUE)
+ {
+ httpResponse.reset();
+ readHTTPResponseHeader(is, httpResponse);
+ }
+ readHTTPResponsePayload(is, httpResponse);
+ os.close();
+ is.close();
+ socket.close();
+ code = httpResponse.getStatusCode();
+ String contentType = httpResponse.getHeader(HTTP_HEADER_CONTENT_TYPE.toLowerCase());
+ if (code >= HTTP_CODE_EXCEPTION && (contentType == null || contentType.toLowerCase().indexOf(TEXT_XML.toLowerCase()) == -1))
+ throw new HTTPException(code, httpResponse.getStatusMessage(), httpResponse.getHeaders());
+ }
+
+ private void readHTTPResponseHeader(InputStream is, HTTPResponse resp) throws IOException
+ {
+ byte b = 0;
+ int len = 0;
+ int colonIndex = -1;
+ String key;
+ String value;
+ boolean readTooMuch = false;
+ ByteArrayOutputStream baos;
+ for (baos = new ByteArrayOutputStream(4096);;)
+ {
+ if (!readTooMuch)
+ b = (byte)is.read();
+ if (b == -1)
+ break;
+ readTooMuch = false;
+ if ((b != R) && (b != N))
+ {
+ if ((b == COLON) && (colonIndex == -1))
+ colonIndex = len;
+ len++;
+ baos.write(b);
+ }
+ else if (b == R)
+ continue;
+ else // b == N
+ {
+ if (len == 0)
+ break;
+ b = (byte)is.read();
+ readTooMuch = true;
+ // A space or tab at the begining of a line means the header continues.
+ if ((b == SPACE) || (b == TAB))
+ continue;
+ baos.close();
+ byte[] bArray = baos.toByteArray();
+ baos.reset();
+ if (colonIndex != -1)
+ {
+ key = new String(bArray, 0, colonIndex, DEFAULT_HTTP_HEADER_ENCODING);
+ value = new String(bArray, colonIndex + 1, len - 1 - colonIndex, DEFAULT_HTTP_HEADER_ENCODING);
+ colonIndex = -1;
+ }
+ else
+ {
+ key = new String(bArray, 0, len, DEFAULT_HTTP_HEADER_ENCODING);
+ value = EMPTY_STRING;
+ }
+ if (!resp.isStatusSet())
+ {
+ // Reader status code
+ int start = key.indexOf(SPACE) + 1;
+ String s = key.substring(start).trim();
+ int end = s.indexOf(SPACE);
+ if (end != -1)
+ s = s.substring(0, end);
+ try
+ {
+ resp.setStatusCode(Integer.parseInt(s));
+ }
+ catch (NumberFormatException nfe)
+ {
+ resp.setStatusCode(-1);
+ }
+ resp.setStatusMessage(key.substring(start + end + 1));
+ }
+ else
+ resp.addHeader(key.toLowerCase().trim(), value.trim());
+ len = 0;
+ }
+ }
+ baos.close();
+ }
+
+ private void readHTTPResponsePayload(InputStream is, HTTPResponse resp) throws IOException
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try
+ {
+ byte b = (byte)is.read();
+ while (b != -1)
+ {
+ baos.write(b);
+ b = (byte)is.read();
+ }
+ }
+ catch (SocketTimeoutException ste)
+ {
+ }
+ baos.close();
+ resp.setPayload(baos.toByteArray());
+ }
+
+ public BufferedReader receive()
+ {
+ if (httpResponse != null)
+ {
+ try
+ {
+ byte[] payload = httpResponse.getPayload();
+ Element soapEnvelope = null;
+ if (CHUNKED.equalsIgnoreCase(httpResponse.getHeader(HTTP_HEADER_TRANSFER_ENCODEING.toLowerCase())))
+ {
+ ByteArrayInputStream bais = new ByteArrayInputStream(payload);
+ ChunkedInputStream cis = new ChunkedInputStream(bais);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ byte b;
+ while ((b = (byte)cis.read()) != -1)
+ baos.write(b);
+ baos.close();
+ cis.close();
+ bais.close();
+ soapEnvelope = XMLUtils.byteArrayToElement(baos.toByteArray(), false);
+ }
+ else
+ {
+ soapEnvelope = XMLUtils.byteArrayToElement(payload, false);
+ }
+ // remove XML namespace declaration
+ if (soapEnvelope != null)
+ return new BufferedReader(new InputStreamReader(new ByteArrayInputStream(XMLUtils.serialize(soapEnvelope, true).getBytes(DEFAULT_SOAP_ENCODING))));
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ return null;
+ }
+
+ public Hashtable getHeaders()
+ {
+ Hashtable headers = new Hashtable();
+ if (httpResponse != null)
+ headers.putAll(httpResponse.getHeaders());
+ return headers;
+ }
+
+ private Socket buildSocket(URL url) throws UnknownHostException, IOException
+ {
+ Socket s = null;
+ String host = url.getHost();
+ int port = url.getPort();
+ String proxyHost = System.getProperty(SYS_PROP_HTTP_PROXY_HOST);
+ int proxyPort = Integer.getInteger(SYS_PROP_HTTP_PROXY_PORT, DEFAULT_HTTP_PORT).intValue();
+ String proxyUserName = System.getProperty(SYS_PROP_HTTP_PROXY_USER_NAME);
+ String proxyPassword = System.getProperty(SYS_PROP_HTTP_PROXY_PASSWORD);
+ if (url.getProtocol().equalsIgnoreCase(HTTPS))
+ {
+ proxyHost = System.getProperty(SYS_PROP_HTTPS_PROXY_HOST);
+ proxyPort = Integer.getInteger(SYS_PROP_HTTPS_PROXY_PORT, DEFAULT_HTTPS_PORT).intValue();
+ if (proxyHost != null && proxyHost.length() > 0)
+ {
+ // TODO:
+ // SSL with proxy server
+ }
+ else
+ s = SSLSocketFactory.getDefault().createSocket(host, (port > 0 ? port : DEFAULT_HTTPS_PORT));
+ // Removing dependency on soap.jar
+ // s = SSLUtils.buildSSLSocket(host, (port > 0 ? port : DEFAULT_HTTPS_PORT), proxyHost, proxyPort);
+ // TODO:
+ // Build an SSL socket that supports proxyUser and proxyPassword,
+ // as demonstrated in the following (original) line of code:
+ // s = SSLUtils.buildSSLSocket(host, (port > 0 ? port : DEFAULT_HTTPS_PORT), proxyHost, proxyPort, proxyUserName, proxyPassword);
+ }
+ else if (proxyHost != null && proxyHost.length() > 0)
+ s = new Socket(proxyHost, proxyPort);
+ else
+ s = new Socket(host, (port > 0 ? port : DEFAULT_HTTP_PORT));
+ return s;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/util/SoapHelper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/util/SoapHelper.java
new file mode 100644
index 000000000..96259e20e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/util/SoapHelper.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.util;
+
+import org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.apache.axis.Constants;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class SoapHelper
+{
+ private static Hashtable defaultSoapEnvelopeNamespaces_ = null;
+
+ private static final void initDefaultSoapEnvelopeNamespaces()
+ {
+ defaultSoapEnvelopeNamespaces_ = new Hashtable();
+ defaultSoapEnvelopeNamespaces_.put(Constants.URI_SOAP11_ENV,Constants.NS_PREFIX_SOAP_ENV);
+ defaultSoapEnvelopeNamespaces_.put(Constants.URI_2001_SCHEMA_XSI,Constants.NS_PREFIX_SCHEMA_XSI);
+ defaultSoapEnvelopeNamespaces_.put(Constants.URI_2001_SCHEMA_XSD,Constants.NS_PREFIX_SCHEMA_XSD);
+ }
+
+ public static final void addDefaultSoapEnvelopeNamespaces(Hashtable soapEnvelopeNamespaces)
+ {
+ if (defaultSoapEnvelopeNamespaces_ == null)
+ initDefaultSoapEnvelopeNamespaces();
+ Enumeration defaultSoapEnvelopeNamespaceURIs = defaultSoapEnvelopeNamespaces_.keys();
+ while (defaultSoapEnvelopeNamespaceURIs.hasMoreElements())
+ {
+ String defaultSoapEnvelopeNamespaceURI = (String)defaultSoapEnvelopeNamespaceURIs.nextElement();
+ soapEnvelopeNamespaces.put(defaultSoapEnvelopeNamespaceURI,(String)defaultSoapEnvelopeNamespaces_.get(defaultSoapEnvelopeNamespaceURI));
+ }
+ }
+
+ public static final boolean isDefaultSoapEnvelopeNamespace(String namespaceURI,String namespacePrefix)
+ {
+ if (defaultSoapEnvelopeNamespaces_ == null)
+ initDefaultSoapEnvelopeNamespaces();
+ if (defaultSoapEnvelopeNamespaces_.get(namespaceURI) != null)
+ return true;
+ return false;
+ }
+
+ public static final Element createSoapEnvelopeElement(Document doc,Hashtable soapEnvelopeNamespaceTable)
+ {
+ Element soapEnvelopeElement = doc.createElement("soapenv:Envelope");
+ Enumeration e = soapEnvelopeNamespaceTable.keys();
+ while (e.hasMoreElements())
+ {
+ String soapEnvelopeNamespaceURI = (String)e.nextElement();
+ StringBuffer soapEnvelopeNamespaceAttr = new StringBuffer("xmlns:");
+ soapEnvelopeNamespaceAttr.append((String)soapEnvelopeNamespaceTable.get(soapEnvelopeNamespaceURI));
+ soapEnvelopeElement.setAttribute(soapEnvelopeNamespaceAttr.toString(),soapEnvelopeNamespaceURI);
+ }
+ return soapEnvelopeElement;
+ }
+
+ public static final Element createSoapBodyElement(Document doc)
+ {
+ return doc.createElement("soapenv:Body");
+ }
+
+ public static final Element createRPCWrapperElement(Document doc,Hashtable soapEnvelopeNamespaceTable,String encodingNamespaceURI,String operationName, String encodingStyle)
+ {
+ int nsId = 0;
+ StringBuffer wrapperElementName = new StringBuffer();
+ String encodingNamespacePrefix = (String)soapEnvelopeNamespaceTable.get(encodingNamespaceURI);
+ if (encodingNamespacePrefix != null)
+ wrapperElementName.append(encodingNamespacePrefix);
+ else
+ {
+ // Loop until we generate a unique prefix.
+ do
+ {
+ wrapperElementName.setLength(0);
+ wrapperElementName.append("ns").append(nsId);
+ if (!soapEnvelopeNamespaceTable.containsValue(wrapperElementName.toString()))
+ break;
+ nsId++;
+ } while (true);
+ }
+ String wrapperElementNamePrefix = wrapperElementName.toString();
+ wrapperElementName.append(':').append(operationName);
+ Element wrapperElement = doc.createElement(wrapperElementName.toString());
+ StringBuffer namespaceAttrName = new StringBuffer("xmlns:");
+ namespaceAttrName.append(wrapperElementNamePrefix);
+ wrapperElement.setAttribute(namespaceAttrName.toString(),encodingNamespaceURI);
+ if (encodingStyle != null)
+ wrapperElement.setAttribute("soapenv:encodingStyle",encodingStyle);
+ return wrapperElement;
+ }
+
+ public static final String encodeNamespaceDeclaration(String prefix, String uri)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append(prefix);
+ sb.append(" ");
+ sb.append(uri);
+ String result = URLUtils.encode(sb.toString());
+ return result;
+ }
+
+ public static final String[] decodeNamespaceDeclaration(String s)
+ {
+ String sCopy = URLUtils.decode(s);
+ int index = sCopy.indexOf(" ");
+ String[] nsDecl = new String[2];
+ if (index != -1)
+ {
+ nsDecl[0] = sCopy.substring(0, index);
+ nsDecl[1] = sCopy.substring(index+1, sCopy.length());
+ }
+ else
+ {
+ nsDecl[0] = null;
+ nsDecl[1] = sCopy;
+ }
+ return nsDecl;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/xsd/WSDLPartsToXSDTypeMapper.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/xsd/WSDLPartsToXSDTypeMapper.java
new file mode 100644
index 000000000..e570d6ba3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/xsd/WSDLPartsToXSDTypeMapper.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 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.wsdl.xsd;
+
+import org.eclipse.xsd.*;
+
+import javax.xml.namespace.QName;
+import javax.wsdl.*;
+
+import java.util.*;
+
+public class WSDLPartsToXSDTypeMapper
+{
+ private final char POUND = '#';
+ private Vector xsdSchemaList_;
+ private Hashtable partToXSDCache_;
+
+ public WSDLPartsToXSDTypeMapper() {
+ xsdSchemaList_ = new Vector();
+ partToXSDCache_ = new Hashtable();
+ }
+
+ public void addSchemas(Vector schemaList) {
+ for (int i=0;i<schemaList.size();i++) {
+ Object schema = schemaList.elementAt(i);
+ if (schema != null)
+ xsdSchemaList_.addElement(schema);
+ }
+ }
+
+ public XSDNamedComponent getXSDType(Part part, String id) {
+ XSDNamedComponent component = getXSDTypeFromCache(id);
+ if (component != null)
+ return component;
+ component = getXSDTypeFromSchema(part);
+ if (component != null)
+ addToCache(id, component);
+ return component;
+ }
+
+ public XSDNamedComponent getXSDTypeFromCache(String id) {
+ return (XSDNamedComponent)partToXSDCache_.get(id);
+ }
+
+ public XSDNamedComponent getXSDTypeFromSchema(Part part) {
+ boolean isElementDeclaration = (part.getTypeName() == null);
+ QName qName = isElementDeclaration ? part.getElementName() : part.getTypeName();
+ return getXSDTypeFromSchema(qName.getNamespaceURI(), qName.getLocalPart(), isElementDeclaration);
+ }
+
+ public XSDNamedComponent getXSDTypeFromSchema(String namespaceURI, String localName, boolean isElementDeclaration) {
+ for (int i = 0; i < xsdSchemaList_.size(); i++) {
+ XSDSchema xsdSchema = (XSDSchema)xsdSchemaList_.elementAt(i);
+ Vector components = new Vector();
+ if (isElementDeclaration)
+ components.addAll(xsdSchema.getElementDeclarations());
+ else
+ components.addAll(xsdSchema.getTypeDefinitions());
+ for (Iterator it = components.iterator(); it.hasNext(); ) {
+ XSDNamedComponent component = (XSDNamedComponent)it.next();
+ String compNSURI = component.getTargetNamespace();
+ String compLocalname = component.getName();
+ if (compNSURI != null && compLocalname != null && compNSURI.equals(namespaceURI) && compLocalname.equals(localName))
+ return component;
+ }
+ }
+ return null;
+ }
+
+ public XSDNamedComponent resolveXSDNamedComponent(XSDNamedComponent component)
+ {
+ if (component != null)
+ {
+ String uri = component.getURI();
+ String qname = component.getQName();
+ for (int i = 0; i < xsdSchemaList_.size(); i++)
+ {
+ XSDSchema xsdSchema = (XSDSchema)xsdSchemaList_.elementAt(i);
+ if (xsdSchema != null && xsdSchema.getTargetNamespace().equals(trimQName(uri, qname)))
+ {
+ XSDNamedComponent resolvedComponent = null;
+ if (component instanceof XSDTypeDefinition)
+ resolvedComponent = xsdSchema.resolveTypeDefinition(qname);
+ else if (component instanceof XSDElementDeclaration)
+ resolvedComponent = xsdSchema.resolveElementDeclaration(qname);
+ else if (component instanceof XSDModelGroupDefinition)
+ resolvedComponent = xsdSchema.resolveModelGroupDefinition(qname);
+ if (isComponentResolvable(resolvedComponent))
+ return resolvedComponent;
+ }
+ }
+ }
+ return null;
+ }
+
+ private String trimQName(String uri, String qname)
+ {
+ int index = uri.indexOf(qname);
+ if (index != -1)
+ {
+ String ns = uri.substring(0, index);
+ if (ns.charAt(index-1) == POUND)
+ return ns.substring(0, index-1);
+ else
+ return ns;
+ }
+ else
+ return uri;
+ }
+
+ private void addToCache(String id, XSDNamedComponent component) {
+ partToXSDCache_.put(id,component);
+ }
+
+ protected boolean isComponentResolvable(XSDComponent component)
+ {
+ if (component == null)
+ return false;
+ XSDSchema schema = component.getSchema();
+ if (schema == null)
+ return false;
+ if (schema.getTargetNamespace() == null)
+ return false;
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToFavoritesAction.java
new file mode 100644
index 000000000..ad2960429
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToFavoritesAction.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class AddBusinessToFavoritesAction extends AddToFavoritesAction
+{
+ public AddBusinessToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean favoriteExists()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ Object obj = selectedElement.getAllUDDILinks().getElementWithViewId(viewID).getObject();
+ WsilUddiBusinessElement wsilUddiBusinessElement = (WsilUddiBusinessElement) obj;
+ String businessName = wsilUddiBusinessElement.getName();
+ String inquiryAPI = wsilUddiBusinessElement.getUDDILinkInquiryAPI();
+ String businessKey = wsilUddiBusinessElement.getUDDILinkBusinessKey();
+ if (businessName == null)
+ businessName = businessKey;
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_NAME, businessName);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API, inquiryAPI);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY, businessKey);
+ return favoriteExists(table, FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_LINKS, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_BUSINESS);
+ return transformers;
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ Object obj = selectedElement.getAllUDDILinks().getElementWithViewId(viewID).getObject();
+ WsilUddiBusinessElement wsilUddiBusinessElement = (WsilUddiBusinessElement) obj;
+ String businessName = wsilUddiBusinessElement.getName();
+ String inquiryAPI = wsilUddiBusinessElement.getUDDILinkInquiryAPI();
+ String businessKey = wsilUddiBusinessElement.getUDDILinkBusinessKey();
+ if (businessName == null)
+ businessName = businessKey;
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_NAME, businessName);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_INQUIRY_API, inquiryAPI);
+ table.put(FavoritesModelConstants.PROP_UDDI_BUSINESS_KEY, businessKey);
+ if (isMultipleLinkAction() && favoriteExists(table, FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_FAVORITES_ALREADY_EXISTS", businessName));
+ return false;
+ }
+ if (addToFavorites(table, FavoritesModelConstants.REL_UDDI_BUSINESS_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL", businessName));
+ return true;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_FAVORITES", businessName));
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..22b34b0b9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddBusinessToUDDIPerspectiveAction.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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.wsil.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindBusinessUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class AddBusinessToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddBusinessToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_LINKS, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_BUSINESS);
+ return transformers;
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = wsilPerspective.getNodeManager().getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ String inquiryURL = null;
+ String businessKey = null;
+ String businessName = null;
+ if (selectedElement instanceof WsilElement)
+ {
+ ListElement le = ((WsilElement) selectedElement).getAllUDDILinks().getElementWithViewId(viewID);
+ WsilUddiBusinessElement wsilUddiBusinessElement = (WsilUddiBusinessElement) le.getObject();
+ inquiryURL = wsilUddiBusinessElement.getUDDILinkInquiryAPI();
+ businessKey = wsilUddiBusinessElement.getUDDILinkBusinessKey();
+ businessName = wsilUddiBusinessElement.getName();
+ if (businessName == null)
+ businessName = businessKey;
+ }
+ else
+ return false;
+ // return false if unable to find or create a registry node/element in the
+ // UDDI perspective
+ if (!createRegistryInUDDIPerspective(inquiryURL, null, inquiryURL))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE", businessName));
+ return false;
+ }
+ // prepare the action
+ RegFindBusinessUUIDAction action = new RegFindBusinessUUIDAction(controller_);
+ // populate property table
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY, businessKey);
+ propertyTable.put(UDDIActionInputs.QUERY_NAME, businessName);
+ // run the action
+ if (!action.run())
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_BUSINESS_NOT_FOUND", businessName));
+ return false;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", businessName));
+ return true;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToFavoritesAction.java
new file mode 100644
index 000000000..62a754662
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToFavoritesAction.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class AddServiceToFavoritesAction extends AddToFavoritesAction
+{
+ public AddServiceToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean favoriteExists()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ Object obj = selectedElement.getAllUDDIServices().getElementWithViewId(viewID).getObject();
+ WsilUddiServiceElement wsilUddiServiceElement = (WsilUddiServiceElement) obj;
+ String serviceName = wsilUddiServiceElement.getName();
+ String inquiryAPI = wsilUddiServiceElement.getUDDIServiceInquiryAPI();
+ String serviceKey = wsilUddiServiceElement.getUDDIServiceKey();
+ if (serviceName == null)
+ serviceName = serviceKey;
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_NAME, serviceName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API, inquiryAPI);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY, serviceKey);
+ return favoriteExists(table, FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_SERVICE);
+ return transformers;
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ Object obj = selectedElement.getAllUDDIServices().getElementWithViewId(viewID).getObject();
+ WsilUddiServiceElement wsilUddiServiceElement = (WsilUddiServiceElement) obj;
+ String serviceName = wsilUddiServiceElement.getName();
+ String inquiryAPI = wsilUddiServiceElement.getUDDIServiceInquiryAPI();
+ String serviceKey = wsilUddiServiceElement.getUDDIServiceKey();
+ if (serviceName == null)
+ serviceName = serviceKey;
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_NAME, serviceName);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_INQUIRY_API, inquiryAPI);
+ table.put(FavoritesModelConstants.PROP_UDDI_SERVICE_KEY, serviceKey);
+ if (isMultipleLinkAction() && favoriteExists(table, FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_FAVORITES_ALREADY_EXISTS", serviceName));
+ return false;
+ }
+ if (addToFavorites(table, FavoritesModelConstants.REL_UDDI_SERVICE_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL", serviceName));
+ return true;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_FAVORITES", serviceName));
+ return false;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..621f73d71
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddServiceToUDDIPerspectiveAction.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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.wsil.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.RegFindServiceUUIDAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class AddServiceToUDDIPerspectiveAction extends AddToUDDIPerspectiveAction
+{
+ public AddServiceToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_SERVICE);
+ return transformers;
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = wsilPerspective.getNodeManager().getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ String inquiryURL = null;
+ String serviceKey = null;
+ String serviceName = null;
+ if (selectedElement instanceof WsilElement)
+ {
+ ListElement le = ((WsilElement) selectedElement).getAllUDDIServices().getElementWithViewId(viewID);
+ WsilUddiServiceElement wsilUddiServiceElement = (WsilUddiServiceElement) le.getObject();
+ inquiryURL = wsilUddiServiceElement.getUDDIServiceInquiryAPI();
+ serviceKey = wsilUddiServiceElement.getUDDIServiceKey();
+ serviceName = wsilUddiServiceElement.getName();
+ if (serviceName == null)
+ serviceName = serviceKey;
+ }
+ else
+ return false;
+ // return false if unable to find or create a registry node/element in the
+ // UDDI perspective
+ if (!createRegistryInUDDIPerspective(inquiryURL, null, inquiryURL))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE", serviceName));
+ return false;
+ }
+ // prepare the action
+ RegFindServiceUUIDAction action = new RegFindServiceUUIDAction(controller_);
+ // populate property table
+ Hashtable propertyTable = action.getPropertyTable();
+ propertyTable.put(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY, serviceKey);
+ propertyTable.put(UDDIActionInputs.QUERY_NAME, serviceName);
+ // run the action
+ if (!action.run())
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_SERVICE_NOT_FOUND", serviceName));
+ return false;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL", serviceName));
+ return true;
+ }
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToFavoritesAction.java
new file mode 100644
index 000000000..9808c3ff8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToFavoritesAction.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.FavoritesFolderElement;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import javax.servlet.http.*;
+
+public abstract class AddToFavoritesAction extends MultipleLinkAction {
+ protected NodeManager nodeManager_;
+
+ public AddToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ nodeManager_ = controller.getWSILPerspective().getNodeManager();
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink() {
+ return "wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp";
+ }
+
+ public static AddToFavoritesAction newAction(HttpServletRequest request, Controller controller) {
+ String nodeID = request.getParameter(ActionInputs.NODEID);
+ NodeManager nodeManager = controller.getWSILPerspective().getNodeManager();
+ Tool selectedTool = nodeManager.getNode(Integer.parseInt(nodeID)).getToolManager().getSelectedTool();
+ if (selectedTool instanceof ListWSDLServicesTool)
+ return new AddWSDLServiceToFavoritesAction(controller);
+ else if (selectedTool instanceof ListUDDIServicesTool)
+ return new AddServiceToFavoritesAction(controller);
+ else if (selectedTool instanceof ListUDDIBusinessTool)
+ return new AddBusinessToFavoritesAction(controller);
+ else
+ return new AddWSILToFavoritesAction(controller);
+ }
+
+ protected boolean addToFavorites(Hashtable table, String rel) {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favNodeManager = favPerspective.getNodeManager();
+ TreeElement favRootElement = favNodeManager.getRootNode().getTreeElement();
+ Enumeration e = favRootElement.getElements(rel);
+ if (!e.hasMoreElements()) return false;
+ FavoritesFolderElement favFolderElement = (FavoritesFolderElement)e.nextElement();
+ return favFolderElement.addFavorite(table);
+ }
+
+ protected boolean favoriteExists(Hashtable table, String rel) {
+ FavoritesPerspective favPerspective = controller_.getFavoritesPerspective();
+ NodeManager favNodeManager = favPerspective.getNodeManager();
+ TreeElement favRootElement = favNodeManager.getRootNode().getTreeElement();
+ Enumeration e = favRootElement.getElements(rel);
+ if (!e.hasMoreElements()) return false;
+ FavoritesFolderElement favFolderElement = (FavoritesFolderElement)e.nextElement();
+ return favFolderElement.favoriteExists(table);
+ }
+
+ public abstract boolean favoriteExists();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToUDDIPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToUDDIPerspectiveAction.java
new file mode 100644
index 000000000..a3572247b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddToUDDIPerspectiveAction.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.Action;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.OpenRegistryAction;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.RegistryNode;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.UDDIMainNode;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+import java.util.Hashtable;
+import java.util.Vector;
+import javax.servlet.http.*;
+
+public abstract class AddToUDDIPerspectiveAction extends MultipleLinkAction
+{
+ public AddToUDDIPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp";
+ }
+
+ public static Action newAction(HttpServletRequest request, Controller controller)
+ {
+ String nodeID = request.getParameter(ActionInputs.NODEID);
+ NodeManager nodeManager = controller.getWSILPerspective().getNodeManager();
+ Tool selectedTool = nodeManager.getNode(Integer.parseInt(nodeID)).getToolManager().getSelectedTool();
+ if (selectedTool instanceof ListUDDIServicesTool)
+ return new AddServiceToUDDIPerspectiveAction(controller);
+ else if (selectedTool instanceof ListUDDIBusinessTool)
+ return new AddBusinessToUDDIPerspectiveAction(controller);
+ else
+ return new NullAction();
+ }
+
+ protected boolean createRegistryInUDDIPerspective(String inquiryAPI, String publishAPI, String registryName)
+ {
+ Vector registryNodes = getRegistryNodesByInquiryURL(inquiryAPI);
+ if (registryNodes != null)
+ {
+ // Always attempt to use an existing registry.
+ Node registryNode = (Node) registryNodes.elementAt(0);
+ NodeManager nodeManager = registryNode.getNodeManager();
+ nodeManager.setSelectedNodeId(registryNode.getNodeId());
+ return true;
+ }
+ // open the registry if it is not already opened in the UDDI perspective
+ OpenRegistryAction openRegAction = new OpenRegistryAction(controller_);
+ // populate the property table
+ Hashtable propertyTable = openRegAction.getPropertyTable();
+ if (Validator.validateString(registryName))
+ propertyTable.put(UDDIActionInputs.REGISTRY_NAME, registryName);
+ else
+ return false;
+ if (Validator.validateURL(inquiryAPI))
+ propertyTable.put(UDDIActionInputs.INQUIRY_URL, inquiryAPI);
+ else
+ return false;
+ // run the action
+ if (!openRegAction.run())
+ return false;
+ return true;
+ }
+
+ protected Vector getRegistryNodesByInquiryURL(String inquiryURL)
+ {
+ Vector registryNodes = null;
+ NodeManager navigatorManager = controller_.getUDDIPerspective().getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode) (navigatorManager.getRootNode());
+ Vector childNodes = uddiMainNode.getChildNodes();
+ for (int i = 0; i < childNodes.size(); i++)
+ {
+ Node childNode = (Node) childNodes.elementAt(i);
+ if (childNode instanceof RegistryNode)
+ {
+ RegistryElement regElement = (RegistryElement) childNode.getTreeElement();
+ if (regElement.getInquiryURL().equals(inquiryURL))
+ {
+ if (registryNodes == null)
+ registryNodes = new Vector();
+ registryNodes.addElement(childNode);
+ }
+ }
+ }
+ return registryNodes;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSDLServiceToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSDLServiceToFavoritesAction.java
new file mode 100644
index 000000000..9fa0a0f4e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSDLServiceToFavoritesAction.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class AddWSDLServiceToFavoritesAction extends AddToFavoritesAction
+{
+ public AddWSDLServiceToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean favoriteExists()
+ {
+ String wsdlURL = getWsdlUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSDL_URL, wsdlURL);
+ return favoriteExists(table, FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_WSDL_SERVICES, ActionInputs.VIEWID, WSILViewSelectionTransformer.WSDL_SERVICE);
+ return transformers;
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ String wsdlURL = getWsdlUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSDL_URL, wsdlURL);
+ if (isMultipleLinkAction() && favoriteExists(table, FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_FAVORITES_ALREADY_EXISTS", wsdlURL));
+ return false;
+ }
+ if (addToFavorites(table, FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL", wsdlURL));
+ return true;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_FAVORITES", wsdlURL));
+ return false;
+ }
+ }
+
+ private String getWsdlUrl()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ WsilWsdlServiceElement wsilWsdlServiceElement;
+ Object obj = selectedElement.getAllWSDLServices().getElementWithViewId(viewID).getObject();
+ wsilWsdlServiceElement = (WsilWsdlServiceElement) obj;
+ return wsilWsdlServiceElement.getWSDLServiceURL();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSILToFavoritesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSILToFavoritesAction.java
new file mode 100644
index 000000000..bb622d690
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/AddWSILToFavoritesAction.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+
+import java.util.Hashtable;
+
+public class AddWSILToFavoritesAction extends AddToFavoritesAction
+{
+ public AddWSILToFavoritesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean favoriteExists()
+ {
+ String wsilURL = getWsilUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSIL_URL, wsilURL);
+ return favoriteExists(table, FavoritesModelConstants.REL_WSIL_FOLDER_NODE);
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ String wsilURL = getWsilUrl();
+ Hashtable table = new Hashtable();
+ table.put(FavoritesModelConstants.PROP_WSIL_URL, wsilURL);
+ if (isMultipleLinkAction() && favoriteExists(table, FavoritesModelConstants.REL_WSIL_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_FAVORITES_ALREADY_EXISTS", wsilURL));
+ return false;
+ }
+ if (addToFavorites(table, FavoritesModelConstants.REL_WSIL_FOLDER_NODE))
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL", wsilURL));
+ return true;
+ }
+ else
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_TO_FAVORITES", wsilURL));
+ return false;
+ }
+ }
+
+ private String getWsilUrl()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement selectedElement = (WsilElement) selectedNode.getTreeElement();
+ return selectedElement.getWsilUrl();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ClearWSILAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ClearWSILAction.java
new file mode 100644
index 000000000..3615086cc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ClearWSILAction.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ClearNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class ClearWSILAction extends ClearNodeAction {
+
+ public ClearWSILAction(Controller controller)
+ {
+ super(controller, controller.getWSILPerspective().getNodeManager());
+ propertyTable_.put(ActionInputs.NODEID, String.valueOf(controller.getWSILPerspective().getNodeManager().getSelectedNodeId()));
+ }
+
+ public static String getActionLink(int nodeID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/ClearWSILActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ return actionLink.toString();
+ }
+
+ public String getTreeContentVar() {
+ return "wsilNavigatorContent";
+ }
+
+ public String getTreeContentPage() {
+ return "wsil/wsil_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar() {
+ return "wsilPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage() {
+ return "wsil/wsil_properties_container.jsp";
+ }
+
+ public String getStatusContentVar() {
+ return "wsilStatusContent";
+ }
+
+ public String getStatusContentPage() {
+ return "wsil/wsil_status_content.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSDLToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSDLToFileSystemAction.java
new file mode 100644
index 000000000..f6e63c7c7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSDLToFileSystemAction.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+import java.io.OutputStream;
+import javax.wsdl.Definition;
+import org.uddi4j.client.UDDIProxy;
+
+public class ImportWSDLToFileSystemAction extends ImportToFileSystemAction
+{
+ private Definition def_;
+ private String wsdlFileName_;
+ private NodeManager nodeManager_;
+
+ public ImportWSDLToFileSystemAction(Controller controller)
+ {
+ super(controller);
+ nodeManager_ = controller.getWSILPerspective().getNodeManager();
+ }
+
+ public static final String getActionLink(int nodeId, int toolId, int viewId, int viewToolId)
+ {
+ return ImportToFileSystemAction.getActionLink(nodeId, toolId, viewId, viewToolId, "wsil/actions/ImportWSDLToFileSystemActionJSP.jsp");
+ }
+
+ public boolean write(OutputStream os)
+ {
+ if (def_ != null)
+ {
+ return writeWSDLDefinition(os, def_);
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public String getDefaultFileName()
+ {
+ return wsdlFileName_;
+ }
+
+ private boolean getWSDLFromURL()
+ {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String)propertyTable_.get(ActionInputs.VIEWID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement wsilElement = (WsilElement)selectedNode.getTreeElement();
+ ListManager wsilServices = wsilElement.getAllWSDLServices();
+ ListElement le = wsilServices.getElementWithViewId(viewID);
+ WsilWsdlServiceElement service = (WsilWsdlServiceElement)le.getObject();
+ String wsdlURL = service.getWSDLServiceURL();
+ wsdlFileName_ = WSDLFileNameHelper.getWSDLFileName(wsdlURL);
+ try
+ {
+ def_ = (new Uddi4jHelper()).getWSDLDefinition(wsdlURL);
+ }
+ catch (Exception e)
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ wsilPerspective.getMessageQueue().addMessage(e.getMessage());
+ return false;
+ }
+ return true;
+ }
+
+ private boolean getWSDLFromUDDIRegistry()
+ {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String)propertyTable_.get(ActionInputs.VIEWID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ WsilElement wsilElement = (WsilElement)selectedNode.getTreeElement();
+ ListManager wsilServices = wsilElement.getAllUDDIServices();
+ ListElement le = wsilServices.getElementWithViewId(viewID);
+ WsilUddiServiceElement service = (WsilUddiServiceElement)le.getObject();
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ wsdlFileName_ = service.getName() + ".wsdl";
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ try
+ {
+ UDDIProxy proxy = null;
+ String inquiryURL = service.getUDDIServiceInquiryAPI();
+ if (inquiryURL != null)
+ {
+ proxy = new UDDIProxy();
+ proxy.setInquiryURL(inquiryURL);
+ }
+ def_ = uddi4jHelper.getWSDLDefinition(uddi4jHelper.getWSDL(service.getServiceDefinition(), proxy));
+ }
+ catch (Exception e)
+ {
+ // the wsdl representing this service is unreachable through the UDDI
+ // registry. We will try using the discovery URL instead.
+ try
+ {
+ def_ = uddi4jHelper.getWSDLDefinition(service.getUDDIServiceDiscoveryURL());
+ return true;
+ }
+ catch (Exception e2)
+ {
+ }
+ // if the discoveryURL also fails, return an error
+ wsilPerspective.getMessageQueue().addMessage(e.getMessage());
+ return false;
+ }
+ return true;
+ }
+
+ public boolean run()
+ {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+ if (selectedTool instanceof ListWSDLServicesTool)
+ return getWSDLFromURL();
+ else if (selectedTool instanceof ListUDDIServicesTool)
+ return getWSDLFromUDDIRegistry();
+ else
+ return false;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getWSILPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getWSILPerspective().getStatusContentPage();
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSILToFileSystemAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSILToFileSystemAction.java
new file mode 100644
index 000000000..14ed0c31b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ImportWSILToFileSystemAction.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+
+import org.apache.wsil.WSILDocument;
+import java.io.OutputStream;
+
+public class ImportWSILToFileSystemAction extends ImportToFileSystemAction {
+ private WSILDocument wsilDoc_;
+ private WsilElement wsilElement_;
+ private NodeManager nodeManager_;
+
+ public ImportWSILToFileSystemAction(Controller controller) {
+ super(controller);
+ nodeManager_ = controller.getWSILPerspective().getNodeManager();
+ }
+
+ public static final String getActionLink(int nodeId,int toolId,int viewId,int viewToolId)
+ {
+ return ImportToFileSystemAction.getActionLink(nodeId,toolId,viewId,viewToolId,"wsil/actions/ImportWSILToFileSystemActionJSP.jsp");
+ }
+
+ public boolean write(OutputStream os) {
+ if (wsilDoc_ != null) {
+ return writeWSILDocument(os, wsilDoc_);
+ }
+ else {
+ return false;
+ }
+ }
+
+ public String getDefaultFileName() {
+ String wsilFileName = wsilElement_.getWsilUrl();
+ return wsilFileName.substring(wsilFileName.lastIndexOf('/') + 1, wsilFileName.length());
+ }
+
+ public boolean run() {
+ int nodeID = Integer.parseInt((String)propertyTable_.get(ActionInputs.NODEID));
+
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ if (selectedElement instanceof WsilElement) {
+ wsilElement_ = (WsilElement)selectedElement;
+ wsilDoc_ = ((WsilElement)selectedElement).getWSILDocument();
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getWSILPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getWSILPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/MultipleLinkAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/MultipleLinkAction.java
new file mode 100644
index 000000000..b2b89c441
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/MultipleLinkAction.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+
+import javax.servlet.http.*;
+
+public abstract class MultipleLinkAction extends LinkAction
+{
+ public MultipleLinkAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processLinkParameters(HttpServletRequest request)
+ {
+ String isMultipleLinkAction = request.getParameter(WsilActionInputs.MULTIPLE_LINK_ACTION);
+ if (isMultipleLinkAction != null)
+ {
+ propertyTable_.put(WsilActionInputs.MULTIPLE_LINK_ACTION, isMultipleLinkAction);
+ return processMultipleLinkActionParameters(request);
+ }
+ else
+ {
+ propertyTable_.remove(WsilActionInputs.MULTIPLE_LINK_ACTION);
+ String nodeIDString = request.getParameter(ActionInputs.NODEID);
+ String toolIDString = request.getParameter(ActionInputs.TOOLID);
+ String viewIDString = request.getParameter(ActionInputs.VIEWID);
+ String viewToolIDString = request.getParameter(ActionInputs.VIEWTOOLID);
+ if (nodeIDString != null)
+ propertyTable_.put(ActionInputs.NODEID, nodeIDString);
+ if (toolIDString != null)
+ propertyTable_.put(ActionInputs.TOOLID, toolIDString);
+ if (viewIDString != null)
+ propertyTable_.put(ActionInputs.VIEWID, viewIDString);
+ if (viewToolIDString != null)
+ propertyTable_.put(ActionInputs.VIEWTOOLID, viewToolIDString);
+ return true;
+ }
+ }
+
+ protected boolean processMultipleLinkActionParameters(HttpServletRequest request)
+ {
+ String nodeID = request.getParameter(ActionInputs.NODEID);
+ String[] viewIDs = request.getParameterValues(ActionInputs.VIEWID);
+ propertyTable_.put(ActionInputs.NODEID, nodeID);
+ propertyTable_.put(ActionInputs.VIEWID, viewIDs);
+ if (viewIDs.length == 0)
+ return false;
+ else
+ return true;
+ }
+
+ protected boolean isMultipleLinkAction()
+ {
+ return propertyTable_.containsKey(WsilActionInputs.MULTIPLE_LINK_ACTION);
+ }
+
+ protected String[] getViewIds()
+ {
+ Object object = propertyTable_.get(ActionInputs.VIEWID);
+ if (object == null)
+ return new String[0];
+ else if (object.getClass().isArray())
+ return (String[])object;
+ else
+ return new String[] {(String)object};
+ }
+
+ public boolean run()
+ {
+ return (isMultipleLinkAction()) ? executeMultipleLinkAction() : executeSingleLinkAction();
+ }
+
+ protected boolean executeMultipleLinkAction()
+ {
+ boolean result = false;
+ String[] viewIds = getViewIds();
+ if (viewIds != null && viewIds.length > 0)
+ {
+ for (int i = 0; i < viewIds.length; i++)
+ {
+ propertyTable_.put(ActionInputs.VIEWID, viewIds[i]);
+ if (executeSingleLinkAction())
+ result = true;
+ }
+ }
+ propertyTable_.put(ActionInputs.VIEWID, viewIds);
+ return result;
+ }
+
+ protected abstract boolean executeSingleLinkAction();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/NullAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/NullAction.java
new file mode 100644
index 000000000..ce471544b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/NullAction.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.Action;
+
+import javax.servlet.http.*;
+
+public class NullAction extends Action
+{
+ public NullAction()
+ {
+ }
+
+ public boolean populatePropertyTable(HttpServletRequest request)
+ {
+ return true;
+ }
+
+ public boolean run()
+ {
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILAction.java
new file mode 100644
index 000000000..5ce265676
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILAction.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.FormAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException;
+import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.parser.discovery.WebServicesParserExt;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServiceEntity;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+
+import org.apache.wsil.WSILDocument;
+
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Iterator;
+
+public class OpenWSILAction extends FormAction
+{
+
+ public OpenWSILAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String wsilURL = parser.getParameter(WsilActionInputs.WSIL_URL);
+ String inspectionType = parser.getParameter(WsilActionInputs.WSIL_INSPECTION_TYPE);
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue messageQueue = wsilPerspective.getMessageQueue();
+ FormTool formTool = getSelectedFormTool();
+ propertyTable_.put(WsilActionInputs.WSIL_URL, wsilURL);
+ if (inspectionType != null && inspectionType.length() > 0)
+ propertyTable_.put(WsilActionInputs.WSIL_INSPECTION_TYPE, inspectionType);
+ formTool.updatePropertyTable(propertyTable_);
+ return true;
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ return (FormTool)wsilPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public boolean run()
+ {
+ String wsilURL = (String)propertyTable_.get(WsilActionInputs.WSIL_URL);
+ int inspectionType = Integer.parseInt((String)propertyTable_.get(WsilActionInputs.WSIL_INSPECTION_TYPE));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue msgQueue = wsilPerspective.getMessageQueue();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ TreeElement root = rootNode.getTreeElement();
+ WsilElement wsilElement = getOpenedWSIL(root, wsilURL);
+ if (wsilElement == null)
+ {
+ WebServicesParserExt parser = new WebServicesParserExt(wsilURL);
+ try
+ {
+ parser.parse(WebServicesParser.PARSE_NONE);
+ WebServiceEntity wsEntity = parser.getWebServiceEntityByURI(wsilURL);
+ int type = wsEntity.getType();
+ if (type == WebServiceEntity.TYPE_HTML)
+ return openHTML(wsEntity.getChildren(), inspectionType);
+ else if (type == WebServiceEntity.TYPE_WSIL)
+ return openWSIL(wsilURL, parser.getWSILDocument(wsilURL), inspectionType);
+ else
+ msgQueue.addMessage(wsilPerspective.getMessage("MSG_ERROR_INVALID_WSIL_URL", wsilURL));
+ }
+ catch (Throwable t)
+ {
+ msgQueue.addMessage(t.getMessage());
+ }
+ return false;
+ }
+ else
+ {
+ preselectWSILNode(nodeManager, rootNode.getChildNode(wsilElement).getNodeId(), inspectionType);
+ msgQueue.addMessage(wsilPerspective.getMessage("MSG_ERROR_WSIL_ALREADY_OPENED", wsilURL));
+ return true;
+ }
+ }
+
+ private boolean openHTML(List wsils, int inspectionType)
+ {
+ int nodeId = -1;
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue msgQueue = wsilPerspective.getMessageQueue();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ TreeElement root = rootNode.getTreeElement();
+ for (Iterator it = wsils.iterator(); it.hasNext();)
+ {
+ WebServiceEntity wsilEntity = (WebServiceEntity)it.next();
+ String wsilURL = wsilEntity.getURI();
+ WsilElement wsilElement = getOpenedWSIL(root, wsilURL);
+ if (wsilElement == null)
+ {
+ try
+ {
+ WSILDocument wsilDoc = WSILDocument.newInstance();
+ wsilDoc.read(wsilURL);
+ wsilElement = new WsilElement(wsilURL, root.getModel(), wsilDoc, wsilURL);
+ root.connect(wsilElement, WsilModelConstants.REL_WSIL, ModelConstants.REL_OWNER);
+ nodeId = rootNode.getChildNode(wsilElement).getNodeId();
+ msgQueue.addMessage(wsilPerspective.getMessage("MSG_INFO_OPEN_WSIL_SUCCESSFUL", wsilURL));
+ }
+ catch (Throwable t)
+ {
+ msgQueue.addMessage(t.getMessage());
+ }
+ }
+ else
+ {
+ msgQueue.addMessage(wsilPerspective.getMessage("MSG_ERROR_WSIL_ALREADY_OPENED", wsilURL));
+ nodeId = rootNode.getChildNode(wsilElement).getNodeId();
+ }
+ }
+ if (nodeId != -1)
+ {
+ preselectWSILNode(nodeManager, nodeId, inspectionType);
+ return true;
+ }
+ else
+ return false;
+ }
+
+ private boolean openWSIL(String wsilURL, WSILDocument wsilDoc, int inspectionType)
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue msgQueue = wsilPerspective.getMessageQueue();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node rootNode = nodeManager.getRootNode();
+ TreeElement root = rootNode.getTreeElement();
+ WsilElement wsilElement = new WsilElement(wsilURL, root.getModel(), wsilDoc, wsilURL);
+ root.connect(wsilElement, WsilModelConstants.REL_WSIL, ModelConstants.REL_OWNER);
+ int nodeId = rootNode.getChildNode(wsilElement).getNodeId();
+ msgQueue.addMessage(wsilPerspective.getMessage("MSG_INFO_OPEN_WSIL_SUCCESSFUL", wsilURL));
+ preselectWSILNode(nodeManager, nodeId, inspectionType);
+ return true;
+ }
+
+ private void preselectWSILNode(NodeManager nodeManager, int nodeId, int inspectionType)
+ {
+ nodeManager.setSelectedNodeId(nodeId);
+ Node selectedNode = nodeManager.getNode(nodeId);
+ selectedNode.setViewId(ActionInputs.VIEWTOOLID_DEFAULT);
+ ToolManager toolManager = selectedNode.getToolManager();
+ toolManager.setSelectedToolId(inspectionType);
+ addToHistory(ActionInputs.PERSPECTIVE_WSIL, SelectWSILToolAction.getActionLink(nodeId, inspectionType, ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, true));
+ }
+
+ private WsilElement getOpenedWSIL(TreeElement root, String wsilURL)
+ {
+ Enumeration e = root.getElements(WsilModelConstants.REL_WSIL);
+ while (e.hasMoreElements())
+ {
+ WsilElement wsilElement = (WsilElement)e.nextElement();
+ if (wsilElement.getWsilUrl().equals(wsilURL))
+ return wsilElement;
+ }
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILLinkAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILLinkAction.java
new file mode 100644
index 000000000..4c9fe13a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/OpenWSILLinkAction.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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.wsil.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class OpenWSILLinkAction extends MultipleLinkAction
+{
+ public OpenWSILLinkAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/OpenWSILLinkActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "wsil/actions/OpenWSILLinkActionJSP.jsp";
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_WSIL_LINKS, ActionInputs.VIEWID, WSILViewSelectionTransformer.WSIL_LINK);
+ return transformers;
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ if (!(selectedElement instanceof WsilElement))
+ return false;
+ ListElement le = ((WsilElement) selectedElement).getAllWSILLinks().getElementWithViewId(viewID);
+ WsilWsilLinkElement link = (WsilWsilLinkElement) le.getObject();
+ String wsilURL = link.getWSILLinkLocation();
+ // populate and run the OpenWSILAction
+ OpenWSILAction action = new OpenWSILAction(controller_);
+ Hashtable table = action.getPropertyTable();
+ table.put(WsilActionInputs.WSIL_URL, wsilURL);
+ table.put(WsilActionInputs.WSIL_INSPECTION_TYPE, String.valueOf(WsilActionInputs.WSIL_DETAILS));
+ return action.run();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshAction.java
new file mode 100644
index 000000000..216ee1705
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshAction.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.Action;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+import javax.servlet.http.*;
+
+public abstract class RefreshAction extends MultipleLinkAction
+{
+ protected NodeManager nodeManager_;
+
+ public RefreshAction(Controller controller)
+ {
+ super(controller);
+ nodeManager_ = controller.getWSILPerspective().getNodeManager();
+ }
+
+ public static Action newAction(HttpServletRequest request, Controller controller)
+ {
+ NodeManager nodeManager = controller.getWSILPerspective().getNodeManager();
+ String nodeIDString = request.getParameter(ActionInputs.NODEID);
+ String viewIDString = request.getParameter(ActionInputs.VIEWID);
+ int nodeID;
+ try
+ {
+ nodeID = Integer.parseInt(nodeIDString);
+ }
+ catch (NumberFormatException nfe)
+ {
+ nodeID = nodeManager.getSelectedNodeId();
+ }
+ Node selectedNode = controller.getWSILPerspective().getNodeManager().getNode(nodeID);
+ if (selectedNode == null || !(selectedNode instanceof WsilNode))
+ return new NullAction();
+ else
+ {
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+ RefreshAction action;
+ if (viewIDString == null)
+ action = new RefreshWSILAction(controller);
+ else if (selectedTool instanceof ListUDDIServicesTool)
+ action = new RefreshUDDIServiceAction(controller);
+ else if (selectedTool instanceof ListUDDIBusinessTool)
+ action = new RefreshUDDIBusinessAction(controller);
+ else
+ return new NullAction();
+ action.getPropertyTable().put(ActionInputs.NODEID, String.valueOf(nodeID));
+ return action;
+ }
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/RefreshActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "wsil/actions/RefreshActionJSP.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIBusinessAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIBusinessAction.java
new file mode 100644
index 000000000..2596cc824
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIBusinessAction.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * 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.wsil.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Vector;
+import java.util.Iterator;
+
+public class RefreshUDDIBusinessAction extends RefreshAction
+{
+ public RefreshUDDIBusinessAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_LINKS, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_BUSINESS);
+ return transformers;
+ }
+
+ public boolean run()
+ {
+ return executeSingleLinkAction();
+ }
+
+ protected boolean executeMultipleLinkAction()
+ {
+ return executeSingleLinkAction();
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ boolean result = true;
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue messageQueue = wsilPerspective.getMessageQueue();
+ if (selectedElement instanceof WsilElement)
+ {
+ WsilElement wsilElement = (WsilElement) selectedElement;
+ ListManager lm = wsilElement.getAllUDDILinks();
+ Vector uddiBusinessElements = new Vector();
+ String[] viewIDs = getViewIds();
+ for (int i = 0; i < viewIDs.length; i++)
+ {
+ int viewID = Integer.parseInt(viewIDs[i]);
+ WsilUddiBusinessElement uddiBusinessElement = (WsilUddiBusinessElement) lm.getElementWithViewId(viewID).getObject();
+ uddiBusinessElements.add(uddiBusinessElement);
+ }
+ wsilElement.refreshServiceProvidersFromRegistry(uddiBusinessElements);
+ for (Iterator it = uddiBusinessElements.iterator(); it.hasNext();)
+ {
+ WsilUddiBusinessElement uddiBusinessElement = (WsilUddiBusinessElement) it.next();
+ String name = uddiBusinessElement.getName();
+ if (name == null || name.length() <= 0)
+ name = uddiBusinessElement.getUDDILinkBusinessKey();
+ if (uddiBusinessElement.getServiceProvider() != null)
+ messageQueue.addMessage(wsilPerspective.getMessage("MSG_INFO_REFRESH_SUCCESSFUL", name));
+ else
+ {
+ messageQueue.addMessage(wsilPerspective.getMessage("MSG_ERROR_BUSINESS_NOT_FOUND", name));
+ result = false;
+ }
+ }
+ }
+ else
+ result = false;
+ return result;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIServiceAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIServiceAction.java
new file mode 100644
index 000000000..587b8e57b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshUDDIServiceAction.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * 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.wsil.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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Vector;
+import java.util.Iterator;
+
+public class RefreshUDDIServiceAction extends RefreshAction
+{
+ public RefreshUDDIServiceAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, ActionInputs.VIEWID, WSILViewSelectionTransformer.UDDI_SERVICE);
+ return transformers;
+ }
+
+ public boolean run()
+ {
+ return executeSingleLinkAction();
+ }
+
+ protected boolean executeMultipleLinkAction()
+ {
+ return executeSingleLinkAction();
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ boolean result = true;
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ MessageQueue messageQueue = wsilPerspective.getMessageQueue();
+ if (selectedElement instanceof WsilElement)
+ {
+ WsilElement wsilElement = (WsilElement) selectedElement;
+ ListManager lm = wsilElement.getAllUDDIServices();
+ Vector uddiServiceElements = new Vector();
+ String[] viewIDs = getViewIds();
+ for (int i = 0; i < viewIDs.length; i++)
+ {
+ int viewID = Integer.parseInt(viewIDs[i]);
+ WsilUddiServiceElement uddiServiceElement = (WsilUddiServiceElement) lm.getElementWithViewId(viewID).getObject();
+ uddiServiceElements.add(uddiServiceElement);
+ }
+ wsilElement.refreshServiceDefinitionsFromRegistry(uddiServiceElements);
+ for (Iterator it = uddiServiceElements.iterator(); it.hasNext();)
+ {
+ WsilUddiServiceElement uddiServiceElement = (WsilUddiServiceElement) it.next();
+ String name = uddiServiceElement.getName();
+ if (name == null || name.length() <= 0)
+ name = uddiServiceElement.getUDDIServiceKey();
+ if (uddiServiceElement.getServiceDefinition() != null)
+ messageQueue.addMessage(wsilPerspective.getMessage("MSG_INFO_REFRESH_SUCCESSFUL", name));
+ else
+ {
+ messageQueue.addMessage(wsilPerspective.getMessage("MSG_ERROR_SERVICE_NOT_FOUND", name));
+ result = false;
+ }
+ }
+ }
+ else
+ result = false;
+ return result;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshWSILAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshWSILAction.java
new file mode 100644
index 000000000..1b3c6340b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/RefreshWSILAction.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+
+public class RefreshWSILAction extends RefreshAction
+{
+ public RefreshWSILAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ Node selectedNode = nodeManager_.getNode(nodeID);
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ if (selectedElement instanceof WsilElement)
+ {
+ String wsilURL = ((WsilElement) selectedElement).getWsilUrl();
+ if (((WsilElement) selectedElement).refresh())
+ {
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_REFRESH_SUCCESSFUL", wsilURL));
+ return true;
+ }
+ else
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_WSIL_NOT_FOUND", wsilURL));
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ResizeWSILFramesAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ResizeWSILFramesAction.java
new file mode 100644
index 000000000..a7b438755
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/ResizeWSILFramesAction.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+public class ResizeWSILFramesAction extends ResizeFramesAction
+{
+ public ResizeWSILFramesAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processOthers(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ // Save the current frameset sizes.
+ String frameName = (String)propertyTable_.get(ActionInputs.FRAME_NAME);
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+
+ // Set the new frameset sizes.
+ boolean saveFrameSettings = false;
+ if (frameName.equals(WsilFrameNames.WSIL_NAVIGATOR_CONTAINER))
+ {
+ wsilPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsilPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ if (perspectiveContentFramesetCols.startsWith("100%"))
+ {
+ // Restore.
+ wsilPerspective.setPerspectiveContentFramesetCols(wsilPerspective.getSavedPerspectiveContentFramesetCols());
+ }
+ else
+ {
+ // Maximize.
+ wsilPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsilPerspective.setPerspectiveContentFramesetCols("100%,0%");
+ }
+ }
+ else if (frameName.equals(WsilFrameNames.WSIL_PROPERTIES_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.startsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ wsilPerspective.setPerspectiveContentFramesetCols(wsilPerspective.getSavedPerspectiveContentFramesetCols());
+ wsilPerspective.setActionsContainerFramesetRows(wsilPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ wsilPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsilPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsilPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ wsilPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsilPerspective.setActionsContainerFramesetRows("100%,0%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ wsilPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsilPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ else if (frameName.equals(WsilFrameNames.WSIL_STATUS_CONTAINER))
+ {
+ if (actionsContainerFramesetRows.endsWith("100%"))
+ {
+ if (perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ // Restore.
+ wsilPerspective.setPerspectiveContentFramesetCols(wsilPerspective.getSavedPerspectiveContentFramesetCols());
+ wsilPerspective.setActionsContainerFramesetRows(wsilPerspective.getSavedActionsContainerFramesetRows());
+ }
+ else
+ {
+ // Maximize.
+ wsilPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsilPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsilPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ else
+ {
+ // Maximize.
+ wsilPerspective.setSavedActionsContainerFramesetRows(actionsContainerFramesetRows);
+ wsilPerspective.setActionsContainerFramesetRows("0%,100%");
+ if (!perspectiveContentFramesetCols.endsWith("100%"))
+ {
+ wsilPerspective.setSavedPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+ wsilPerspective.setPerspectiveContentFramesetCols("0%,100%");
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILNodeAction.java
new file mode 100644
index 000000000..f064d57d1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILNodeAction.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class SelectWSILNodeAction extends SelectNodeAction
+{
+ public SelectWSILNodeAction(Controller controller)
+ {
+ super(controller, controller.getWSILPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeID, boolean keepHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/SelectWSILNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ if (keepHistory) {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.ISHISTORY);
+ actionLink.append("=1");
+ }
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ Node selectedNode = getSelectedNode();
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedTool.getToolId(), selectedNode.getViewId(), selectedNode.getViewToolId(), true);
+ else
+ return getActionLink(selectedNode.getNodeId(), true);
+ }
+
+ public final String getTreeContentVar() {
+ return "wsilNavigatorContent";
+ }
+
+ public final String getTreeContentPage() {
+ return "wsil/wsil_navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar() {
+ return "wsilPropertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage() {
+ return "wsil/wsil_properties_container.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSIL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILToolAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILToolAction.java
new file mode 100644
index 000000000..dd54b1ee0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SelectWSILToolAction.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.SelectNodeToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+public class SelectWSILToolAction extends SelectNodeToolAction
+{
+ public SelectWSILToolAction(Controller controller)
+ {
+ super(controller, controller.getWSILPerspective().getNodeManager());
+ }
+
+ 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 WSILViewSelectionTransformer(controller_);
+ return transformers;
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID, boolean keepHistory)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/SelectWSILToolActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ if (viewID != ActionInputs.VIEWID_DEFAULT)
+ {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ }
+ if (keepHistory)
+ {
+ actionLink.append('&');
+ actionLink.append(ActionInputs.ISHISTORY);
+ actionLink.append("=1");
+ }
+ return actionLink.toString();
+ }
+
+ protected String getActionLinkForHistory()
+ {
+ boolean keepHistory = false;
+ Node selectedNode = getSelectedNode();
+ Tool selectedTool = getSelectedTool();
+ int toolType = getSelectedTool().getToolType();
+ if (toolType == ToolTypes.FORM)
+ keepHistory = true;
+ else if (toolType == ToolTypes.VIEW)
+ {
+ int viewID = selectedNode.getViewId();
+ if (viewID == ActionInputs.VIEWID_DEFAULT)
+ keepHistory = true;
+ else
+ {
+ if (((ViewTool) selectedTool).getToolManager(viewID).getTool(selectedNode.getViewToolId()).getToolType() != ToolTypes.ACTION)
+ keepHistory = true;
+ }
+ }
+ if (keepHistory)
+ {
+ return getActionLink(selectedNode.getNodeId(), selectedTool.getToolId(), selectedNode.getViewId(), selectedNode.getViewToolId(), true);
+ }
+ else
+ return null;
+ }
+
+ public final String getTreeContentVar()
+ {
+ return "wsilNavigatorContent";
+ }
+
+ public final String getTreeContentPage()
+ {
+ return "wsil/wsil_navigator_content.jsp";
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return "wsilPropertiesContainer";
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return "wsil/wsil_properties_container.jsp";
+ }
+
+ public final String getPropertiesContentVar()
+ {
+ return "wsilPropertiesContent";
+ }
+
+ public final String getPropertiesContentPage()
+ {
+ return "wsil/wsil_properties_content.jsp";
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSIL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SwitchPerspectiveFromWSILAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SwitchPerspectiveFromWSILAction.java
new file mode 100644
index 000000000..15cfc9e6d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/SwitchPerspectiveFromWSILAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+public final class SwitchPerspectiveFromWSILAction extends ShowPerspectiveAction
+{
+ public SwitchPerspectiveFromWSILAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ protected boolean processParsedResults(MultipartFormDataParser parser) throws MultipartFormDataException
+ {
+ String perspectiveContentFramesetCols = parser.getParameter(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = parser.getParameter(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+ if (perspectiveContentFramesetCols != null && actionsContainerFramesetRows != null)
+ {
+ propertyTable_.put(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT,perspectiveContentFramesetCols);
+ propertyTable_.put(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER,actionsContainerFramesetRows);
+ return true;
+ }
+ return false;
+ }
+
+ public final boolean run()
+ {
+ String perspectiveContentFramesetCols = (String)propertyTable_.get(WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT);
+ String actionsContainerFramesetRows = (String)propertyTable_.get(WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER);
+
+ // Save the frameset sizes iff no frame is maximized.
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ if (!perspectiveContentFramesetCols.startsWith("100%") && !perspectiveContentFramesetCols.endsWith("100%"))
+ wsilPerspective.setPerspectiveContentFramesetCols(perspectiveContentFramesetCols);
+
+ if (!actionsContainerFramesetRows.startsWith("100%") && !actionsContainerFramesetRows.endsWith("100%"))
+ wsilPerspective.setActionsContainerFramesetRows(actionsContainerFramesetRows);
+
+ return super.run();
+ }
+
+ public static final String getFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ StringBuffer formLink = new StringBuffer("wsil/actions/SwitchPerspectiveFromWSILActionJSP.jsp?");
+ formLink.append(ActionInputs.PERSPECTIVE).append('=').append(targetPerspectiveId);
+ if (forHistory)
+ formLink.append('&').append(ActionInputs.ISHISTORY).append("=1");
+ return formLink.toString();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WSILImportWSILToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WSILImportWSILToWorkbenchAction.java
new file mode 100644
index 000000000..537435b38
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WSILImportWSILToWorkbenchAction.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToWorkbenchAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+
+import java.util.Hashtable;
+
+public class WSILImportWSILToWorkbenchAction extends ImportToWorkbenchAction
+{
+ public WSILImportWSILToWorkbenchAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool()
+ {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ return (FormTool)wsilPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public ImportToFileSystemAction newImportToFileSystemAction()
+ {
+ ImportWSILToFileSystemAction action = new ImportWSILToFileSystemAction(controller_);
+ Hashtable table = action.getPropertyTable();
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ table.put(ActionInputs.NODEID, String.valueOf(selectedNode.getNodeId()));
+ return action;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getWSILPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getWSILPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilAddToWSDLPerspectiveAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilAddToWSDLPerspectiveAction.java
new file mode 100644
index 000000000..a08386e36
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilAddToWSDLPerspectiveAction.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.OpenWSDLAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilWsdlServiceElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer.WSILViewSelectionTransformer;
+
+import java.util.Hashtable;
+
+public class WsilAddToWSDLPerspectiveAction extends MultipleLinkAction
+{
+ public WsilAddToWSDLPerspectiveAction(Controller controller)
+ {
+ super(controller);
+ }
+
+ public static String getActionLink(int nodeID, int toolID, int viewID, int viewToolID)
+ {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.TOOLID);
+ actionLink.append('=');
+ actionLink.append(toolID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWID);
+ actionLink.append('=');
+ actionLink.append(viewID);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.VIEWTOOLID);
+ actionLink.append('=');
+ actionLink.append(viewToolID);
+ return actionLink.toString();
+ }
+
+ public static String getBaseActionLink()
+ {
+ return "wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp";
+ }
+
+ 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 WSILViewSelectionTransformer(controller_, WsilModelConstants.LIST_MANAGER_WSDL_SERVICES, ActionInputs.VIEWID, WSILViewSelectionTransformer.WSDL_SERVICE);
+ return transformers;
+ }
+
+ protected boolean executeSingleLinkAction()
+ {
+ int nodeID = Integer.parseInt((String) propertyTable_.get(ActionInputs.NODEID));
+ int viewID = Integer.parseInt((String) propertyTable_.get(ActionInputs.VIEWID));
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ Node selectedNode = wsilPerspective.getNodeManager().getNode(nodeID);
+ WsilElement wsilElement = (WsilElement) selectedNode.getTreeElement();
+ WsilWsdlServiceElement wsilWsdlServiceElement = (WsilWsdlServiceElement) wsilElement.getAllWSDLServices().getElementWithViewId(viewID).getObject();
+ String wsdlUrl = wsilWsdlServiceElement.getWSDLServiceURL();
+ OpenWSDLAction openWSDLAction = new OpenWSDLAction(controller_);
+ Hashtable propertyTable = openWSDLAction.getPropertyTable();
+ propertyTable.put(ActionInputs.QUERY_INPUT_WSDL_URL, wsdlUrl);
+ boolean actionResult = openWSDLAction.run();
+ if (actionResult)
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL", wsdlUrl));
+ else
+ wsilPerspective.getMessageQueue().addMessage(wsilPerspective.getMessage("MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE", wsdlUrl));
+ return actionResult;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilImportWSDLToWorkbenchAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilImportWSDLToWorkbenchAction.java
new file mode 100644
index 000000000..f5da54a97
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilImportWSDLToWorkbenchAction.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.actions.ImportToWorkbenchAction;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective;
+
+import java.util.Hashtable;
+
+public class WsilImportWSDLToWorkbenchAction extends ImportToWorkbenchAction {
+ public WsilImportWSDLToWorkbenchAction(Controller controller) {
+ super(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ return (FormTool)wsilPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public ImportToFileSystemAction newImportToFileSystemAction() {
+ ImportWSDLToFileSystemAction action = new ImportWSDLToFileSystemAction(controller_);
+ Hashtable table = action.getPropertyTable();
+
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+
+ table.put(ActionInputs.NODEID, String.valueOf(selectedNode.getNodeId()));
+ table.put(ActionInputs.TOOLID, String.valueOf(selectedNode.getToolManager().getSelectedToolId()));
+ table.put(ActionInputs.VIEWID, String.valueOf(selectedNode.getViewId()));
+
+ return action;
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getWSILPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getWSILPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilLaunchWebServiceWizardAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilLaunchWebServiceWizardAction.java
new file mode 100644
index 000000000..5bd264a13
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilLaunchWebServiceWizardAction.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.LaunchWebServiceWizardAction;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*;
+
+public class WsilLaunchWebServiceWizardAction extends LaunchWebServiceWizardAction {
+ public WsilLaunchWebServiceWizardAction(Controller controller) {
+ super(controller);
+ }
+
+ public static LaunchWebServiceWizardAction newAction(Controller controller) {
+ return new WsilLaunchWebServiceWizardAction(controller);
+ }
+
+ public FormTool getSelectedFormTool() {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ return (FormTool)wsilPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+ }
+
+ public boolean run() {
+ WSILPerspective wsilPerspective = controller_.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+ int viewID = selectedNode.getViewId();
+
+ ListElement le = null;
+ String url = null;
+ if (selectedTool instanceof ListWSDLServicesTool) {
+ le = ((WsilElement)selectedElement).getAllWSDLServices().getElementWithViewId(viewID);
+ url = ((WsilWsdlServiceElement)le.getObject()).getWSDLServiceURL();
+ }
+ else if (selectedTool instanceof ListUDDIServicesTool) {
+ le = ((WsilElement)selectedElement).getAllUDDIServices().getElementWithViewId(viewID);
+ url = ((WsilUddiServiceElement)le.getObject()).getWsdlUrl();
+ }
+ else
+ return false;
+ return launchWizard(url);
+ }
+
+ public final String getStatusContentVar()
+ {
+ return controller_.getWSILPerspective().getStatusContentVar();
+ }
+
+ public final String getStatusContentPage()
+ {
+ return controller_.getWSILPerspective().getStatusContentPage();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilToggleNodeAction.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilToggleNodeAction.java
new file mode 100644
index 000000000..d9b4f0942
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/actions/WsilToggleNodeAction.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.actions;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.constants.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+
+public class WsilToggleNodeAction extends ToggleNodeAction {
+ public WsilToggleNodeAction(Controller controller) {
+ super(controller, controller.getFavoritesPerspective().getNodeManager());
+ }
+
+ public static String getActionLink(int nodeId, boolean open) {
+ StringBuffer actionLink = new StringBuffer("wsil/actions/WsilToggleNodeActionJSP.jsp?");
+ actionLink.append(ActionInputs.NODEID);
+ actionLink.append('=');
+ actionLink.append(nodeId);
+ actionLink.append('&');
+ actionLink.append(ActionInputs.OPEN);
+ actionLink.append('=');
+ if (open)
+ actionLink.append(ActionInputs.OPEN_NODE);
+ else
+ actionLink.append(ActionInputs.CLOSE_NODE);
+ return actionLink.toString();
+ }
+
+ public final String getActionLinkForHistory() {
+ ToolManager toolManager = toggledNode_.getToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ int nodeId = toggledNode_.getNodeId();
+ int toolId = selectedTool.getToolId();
+ int viewId = toggledNode_.getViewId();
+ int viewToolId = toggledNode_.getViewToolId();
+ if (selectedTool.getToolType() != ToolTypes.ACTION)
+ return SelectWSILToolAction.getActionLink(nodeId, toolId, viewId, viewToolId, true);
+ else
+ return SelectWSILNodeAction.getActionLink(nodeId, true);
+ }
+
+ public final String getTreeContentVar()
+ {
+ return controller_.getWSILPerspective().getTreeContentVar();
+ }
+
+ public final String getTreeContentPage()
+ {
+ return controller_.getWSILPerspective().getTreeContentPage();
+ }
+
+ public final String getPropertiesContainerVar()
+ {
+ return controller_.getWSILPerspective().getPropertiesContainerVar();
+ }
+
+ public final String getPropertiesContainerPage()
+ {
+ return controller_.getWSILPerspective().getPropertiesContainerPage();
+ }
+
+ public final int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSIL;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilActionInputs.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilActionInputs.java
new file mode 100644
index 000000000..aeb3c55b6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilActionInputs.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.constants;
+
+public class WsilActionInputs
+{
+ // open WSIL form
+ public final static String WSIL_URL = "wsilURL";
+ public final static String WSIL_INSPECTION_TYPE = "wsilInspectionType";
+ public final static int WSIL_DETAILS = 0;
+ public final static int WSDL_SERVICES = 1;
+ public final static int UDDI_SERVICES = 2;
+ public final static int UDDI_BUSINESSES = 3;
+ public final static int WSIL_LINKS = 4;
+
+ // mass action
+ public final static String MULTIPLE_LINK_ACTION = "multipleLinkAction";
+
+ // resize WSIL frames action
+ public final static String FRAMESET_COLS_PERSPECTIVE_CONTENT = "framesetColsPerspectiveContent";
+ public final static String FRAMESET_ROWS_ACTIONS_CONTAINER = "framesetRowsActionsContainer";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilFrameNames.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilFrameNames.java
new file mode 100644
index 000000000..be2d25c31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilFrameNames.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.constants;
+
+public class WsilFrameNames
+{
+ public final static String WSIL_NAVIGATOR_CONTAINER = "wsil_navigator_container";
+ public final static String WSIL_NAVIGATOR_TOOLBAR = "wsil_navigator_toolbar";
+ public final static String WSIL_NAVIGATOR_CONTENT = "wsil_navigator_content";
+ public final static String WSIL_ACTIONS_CONTAINER = "wsil_actions_container";
+ public final static String WSIL_PROPERTIES_CONTAINER = "wsil_properties_container";
+ public final static String WSIL_PROPERTIES_TOOLBAR = "wsil_properties_toolbar";
+ public final static String WSIL_PROPERTIES_CONTENT = "wsil_properties_content";
+ public final static String WSIL_STATUS_CONTAINER = "wsil_status_container";
+ public final static String WSIL_STATUS_TOOLBAR = "wsil_status_toolbar";
+ public final static String WSIL_STATUS_CONTENT = "wsil_status_content";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilModelConstants.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilModelConstants.java
new file mode 100644
index 000000000..5bb694b82
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/constants/WsilModelConstants.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.constants;
+
+public class WsilModelConstants
+{
+ // Relation
+ public final static String REL_WSIL = "relWSIL";
+
+ // List Managers for WsilElement
+ public final static String LIST_MANAGER_WSDL_SERVICES = "wsdlServices";
+ public final static String LIST_MANAGER_UDDI_SERVICES = "uddiServices";
+ public final static String LIST_MANAGER_UDDI_LINKS = "uddiLinks";
+ public final static String LIST_MANAGER_WSIL_LINKS = "wsilLinks";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilCommonElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilCommonElement.java
new file mode 100644
index 000000000..52d28de68
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilCommonElement.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.BasicElement;
+import org.eclipse.wst.ws.internal.datamodel.Model;
+
+public class WsilCommonElement extends BasicElement
+{
+ private String baseWsilURL;
+ private String relativeURIBase;
+
+ public WsilCommonElement(String name, Model model)
+ {
+ super(name, model);
+ }
+
+ public String getBaseWsilURL()
+ {
+ return baseWsilURL;
+ }
+
+ public void setBaseWsilURL(String baseWsilURL)
+ {
+ this.baseWsilURL = baseWsilURL;
+ }
+
+ private final char FWD_SLASH = '/';
+ private final char BWD_SLASH = '\\';
+ private final char PROTOCOL_INDICATOR = ':';
+
+ public String makeAbsolute(String uri)
+ {
+ if (baseWsilURL != null && uri != null && uri.indexOf(PROTOCOL_INDICATOR) == -1)
+ {
+ if (relativeURIBase == null)
+ {
+ relativeURIBase = baseWsilURL.replace(BWD_SLASH, FWD_SLASH);
+ int index = relativeURIBase.lastIndexOf(FWD_SLASH);
+ relativeURIBase = baseWsilURL.substring(0, index + 1);
+ }
+ StringBuffer sb = new StringBuffer(relativeURIBase);
+ sb.append(uri);
+ return sb.toString();
+ }
+ return uri;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilElement.java
new file mode 100644
index 000000000..ccd109261
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilElement.java
@@ -0,0 +1,453 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import java.util.Vector;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.Properties;
+import java.net.URL;
+import org.eclipse.wst.ws.internal.datamodel.*;
+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.util.Validator;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*;
+import org.apache.wsil.*;
+import org.uddi4j.client.UDDIProxy;
+import org.uddi4j.datatype.business.BusinessEntity;
+import org.uddi4j.datatype.service.BusinessService;
+
+/**
+ * The data model element that represents a WSIL document
+ */
+public class WsilElement extends TreeElement
+{
+ private WSILDocument wsilDoc_;
+ private String thisWsilUrl_;
+ /** ****************** Namespace ********** */
+ private static final String NAMESPACE_WSDL = "http://schemas.xmlsoap.org/wsdl/";
+ private static final String NAMESPACE_UDDI_V1 = "urn:uddi-org:api";
+ private static final String NAMESPACE_UDDI_V2 = "urn:uddi-org:api_v2";
+ private static final String NAMESPACE_UDDI_BINDING = "http://schemas.xmlsoap.org/ws/2001/10/inspection/uddi/";
+ private static final String NAMESPACE_WSIL_INSPECTION = "http://schemas.xmlsoap.org/ws/2001/10/inspection/";
+ /** ****************** Rels **************** */
+ // Relation for a WSIL doucment and its link nodes
+ public static final String REL_WSIL_LINK = "wsil link nodes";
+
+ public WsilElement(String name, Model model, WSILDocument wsilDocument, String wsilURL)
+ {
+ super(name, model);
+ wsilDoc_ = wsilDocument;
+ thisWsilUrl_ = wsilURL;
+ ListManager wsdlServices_ = null;
+ ListManager uddiServices_ = null;
+ ListManager wsilLinks_ = null;
+ ListManager uddiLinks_ = null;
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSDL_SERVICES, wsdlServices_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, uddiServices_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_LINKS, wsilLinks_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSIL_LINKS, uddiLinks_);
+ }
+
+ /*
+ * Refresh the WSIL document
+ */
+ public boolean refresh()
+ {
+ try
+ {
+ WSILDocument newWSILDoc = WSILDocument.newInstance();
+ newWSILDoc.read(getWsilUrl());
+ wsilDoc_ = newWSILDoc;
+ ListManager wsdlServices_ = null;
+ ListManager uddiServices_ = null;
+ ListManager wsilLinks_ = null;
+ ListManager uddiLinks_ = null;
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSDL_SERVICES, wsdlServices_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, uddiServices_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_LINKS, wsilLinks_);
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSIL_LINKS, uddiLinks_);
+ return true;
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ }
+
+ /*
+ * Returns the WSIL's URL
+ */
+ public String getWsilUrl()
+ {
+ return thisWsilUrl_;
+ }
+
+ /*
+ * Returns the WSIL document
+ */
+ public WSILDocument getWSILDocument()
+ {
+ return wsilDoc_;
+ }
+
+ /*
+ * Returns all abstract languages
+ */
+ public Vector getWSILAbstractLangs()
+ {
+ Vector v = new Vector();
+ Abstract[] abstracts = wsilDoc_.getInspection().getAbstracts();
+ for (int i = 0; i < abstracts.length; i++)
+ {
+ v.add(abstracts[i].getLang());
+ }
+ return v;
+ }
+
+ /*
+ * Returns all abstracts
+ */
+ public Vector getWSILAbstracts()
+ {
+ Vector v = new Vector();
+ Abstract[] abstracts = wsilDoc_.getInspection().getAbstracts();
+ for (int i = 0; i < abstracts.length; i++)
+ {
+ v.add(abstracts[i].getText());
+ }
+ return v;
+ }
+
+ public ListManager getAllWSDLServices()
+ {
+ ListManager wsdlServices_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSDL_SERVICES);
+ if (wsdlServices_ == null)
+ {
+ initAllWSDLServices();
+ wsdlServices_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSDL_SERVICES);
+ }
+ return wsdlServices_;
+ }
+
+ public ListManager getAllUDDIServices()
+ {
+ ListManager uddiServices_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_SERVICES);
+ if (uddiServices_ == null)
+ {
+ initAllUDDIServices();
+ uddiServices_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_SERVICES);
+ }
+ return uddiServices_;
+ }
+
+ private void initAllWSDLServices()
+ {
+ ListManager wsdlServices_ = new ListManager();
+ Inspection inspection = wsilDoc_.getInspection();
+ Service[] serviceList = inspection.getServices();
+ for (int i = 0; i < serviceList.length; i++)
+ {
+ // skip any service without a wsdl namespace
+ // and invalid descriptions
+ Description[] descList = serviceList[i].getDescriptions();
+ if (descList.length < 1)
+ continue;
+ String namespace = descList[0].getReferencedNamespace();
+ if (namespace == null)
+ continue;
+ else if (namespace.equals(NAMESPACE_WSDL))
+ {
+ WsilWsdlServiceElement wsdlServiceElement = new WsilWsdlServiceElement(namespace, getModel(), serviceList[i]);
+ wsdlServiceElement.setBaseWsilURL(getWsilUrl());
+ if (wsdlServiceElement.validateWSDLService())
+ {
+ wsdlServiceElement.setName(wsdlServiceElement.getWSDLServiceURL());
+ wsdlServices_.add(new ListElement(wsdlServiceElement));
+ }
+ }
+ }
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSDL_SERVICES, wsdlServices_);
+ }
+
+ private void initAllUDDIServices()
+ {
+ ListManager uddiServices_ = new ListManager();
+ Inspection inspection = wsilDoc_.getInspection();
+ Service[] serviceList = inspection.getServices();
+ Vector uddiServiceElements = new Vector();
+ for (int i = 0; i < serviceList.length; i++)
+ {
+ // skip any service without a wsdl namespace
+ // and invalid descriptions
+ Description[] descList = serviceList[i].getDescriptions();
+ if (descList.length < 1)
+ continue;
+ String namespace = descList[0].getReferencedNamespace();
+ if (namespace == null)
+ continue;
+ else if ((namespace.equals(NAMESPACE_UDDI_V1) || namespace.equals(NAMESPACE_UDDI_V2)))
+ {
+ WsilUddiServiceElement uddiServiceElement = new WsilUddiServiceElement(namespace, getModel(), serviceList[i]);
+ uddiServiceElement.setBaseWsilURL(getWsilUrl());
+ if (uddiServiceElement.validateUDDIService())
+ {
+ uddiServiceElement.setName(uddiServiceElement.getName());
+ uddiServiceElements.add(uddiServiceElement);
+ }
+ }
+ }
+ refreshServiceDefinitionsFromRegistry(uddiServiceElements);
+ for (Iterator it = uddiServiceElements.iterator(); it.hasNext();)
+ {
+ uddiServices_.add(new ListElement(it.next()));
+ }
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_SERVICES, uddiServices_);
+ }
+
+ public void refreshServiceDefinitionsFromRegistry(Vector uddiServiceElements)
+ {
+ HashMap inquiryAPIToServices = new HashMap();
+ for (int i = 0; i < uddiServiceElements.size(); i++)
+ {
+ WsilUddiServiceElement uddiServiceElement = (WsilUddiServiceElement) uddiServiceElements.get(i);
+ String inquiryAPI = uddiServiceElement.getUDDIServiceInquiryAPI();
+ if (Validator.validateURL(inquiryAPI))
+ {
+ Vector services = (Vector) inquiryAPIToServices.get(inquiryAPI);
+ if (services == null)
+ {
+ services = new Vector();
+ inquiryAPIToServices.put(inquiryAPI, services);
+ }
+ services.add(uddiServiceElement);
+ }
+ else
+ uddiServiceElement.setServiceDefinition(null);
+ }
+ for (Iterator it = inquiryAPIToServices.keySet().iterator(); it.hasNext();)
+ {
+ String inquiryAPI = (String) it.next();
+ Vector services = (Vector) inquiryAPIToServices.get(inquiryAPI);
+ UDDIProxy proxy;
+ try
+ {
+ Properties props = new Properties();
+ props.put(ActionInputs.TRANSPORT_CLASS_NAME, ActionInputs.TRASPORT_CLASS);
+ proxy = new UDDIProxy(props);
+ proxy.setInquiryURL(new URL(inquiryAPI));
+ }
+ catch (Throwable t)
+ {
+ for (int j = 0; j < services.size(); j++)
+ {
+ WsilUddiServiceElement uddiServiceElement = (WsilUddiServiceElement) services.get(j);
+ uddiServiceElement.setServiceDefinition(null);
+ }
+ continue;
+ }
+ Vector serviceKeys = new Vector();
+ for (int j = 0; j < services.size(); j++)
+ {
+ serviceKeys.add(((WsilUddiServiceElement) services.get(j)).getUDDIServiceKey());
+ }
+ Vector businessServices;
+ try
+ {
+ businessServices = proxy.get_serviceDetail(serviceKeys).getBusinessServiceVector();
+ }
+ catch (Exception ex)
+ {
+ businessServices = new Vector();
+ if (serviceKeys.size() > 1)
+ {
+ for (int k = 0; k < serviceKeys.size(); k++)
+ {
+ try
+ {
+ businessServices.add((BusinessService) proxy.get_serviceDetail((String) serviceKeys.get(k)).getBusinessServiceVector().get(0));
+ }
+ catch (Exception exception)
+ {
+ businessServices.add(null);
+ }
+ }
+ }
+ else
+ businessServices.add(null);
+ }
+ for (int k = 0; k < services.size(); k++)
+ {
+ BusinessService bs = (BusinessService) businessServices.get(k);
+ WsilUddiServiceElement uddiServiceElement = (WsilUddiServiceElement) services.get(k);
+ uddiServiceElement.setServiceDefinition(bs);
+ }
+ }
+ }
+
+ public ListManager getAllWSILLinks()
+ {
+ ListManager wsilLinks_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSIL_LINKS);
+ if (wsilLinks_ == null)
+ {
+ initAllWSILLinks();
+ wsilLinks_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSIL_LINKS);
+ }
+ return wsilLinks_;
+ }
+
+ public ListManager getAllUDDILinks()
+ {
+ ListManager uddiLinks_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_LINKS);
+ if (uddiLinks_ == null)
+ {
+ initAllUDDILinks();
+ uddiLinks_ = (ListManager) getPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_LINKS);
+ }
+ return uddiLinks_;
+ }
+
+ private void initAllUDDILinks()
+ {
+ ListManager uddiLinks_ = new ListManager();
+ Inspection inspection = wsilDoc_.getInspection();
+ Link[] linkList = inspection.getLinks();
+ Vector uddiBusinessElements = new Vector();
+ for (int i = 0; i < linkList.length; i++)
+ {
+ // process any links with UDDI namespace
+ String namespace = linkList[i].getReferencedNamespace();
+ if (namespace == null)
+ continue;
+ else if ((namespace.equals(NAMESPACE_UDDI_V1) || namespace.equals(NAMESPACE_UDDI_V2)))
+ {
+ WsilUddiBusinessElement uddiBusinessElement = new WsilUddiBusinessElement(namespace, getModel(), linkList[i]);
+ uddiBusinessElement.setBaseWsilURL(getWsilUrl());
+ if (uddiBusinessElement.validateUDDILink())
+ {
+ uddiBusinessElement.setName(uddiBusinessElement.getName());
+ uddiBusinessElements.add(uddiBusinessElement);
+ }
+ }
+ }
+ refreshServiceProvidersFromRegistry(uddiBusinessElements);
+ for (Iterator it = uddiBusinessElements.iterator(); it.hasNext();)
+ {
+ uddiLinks_.add(new ListElement(it.next()));
+ }
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_UDDI_LINKS, uddiLinks_);
+ }
+
+ public void refreshServiceProvidersFromRegistry(Vector uddiBusinessElements)
+ {
+ HashMap inquiryAPIToBusinesses = new HashMap();
+ for (int i = 0; i < uddiBusinessElements.size(); i++)
+ {
+ WsilUddiBusinessElement uddiBusinessElement = (WsilUddiBusinessElement) uddiBusinessElements.get(i);
+ String inquiryAPI = uddiBusinessElement.getUDDILinkInquiryAPI();
+ if (Validator.validateURL(inquiryAPI))
+ {
+ Vector businesses = (Vector) inquiryAPIToBusinesses.get(inquiryAPI);
+ if (businesses == null)
+ {
+ businesses = new Vector();
+ inquiryAPIToBusinesses.put(inquiryAPI, businesses);
+ }
+ businesses.add(uddiBusinessElement);
+ }
+ else
+ uddiBusinessElement.setServiceProvider(null);
+ }
+ for (Iterator it = inquiryAPIToBusinesses.keySet().iterator(); it.hasNext();)
+ {
+ String inquiryAPI = (String) it.next();
+ Vector businesses = (Vector) inquiryAPIToBusinesses.get(inquiryAPI);
+ UDDIProxy proxy;
+ try
+ {
+ Properties props = new Properties();
+ props.put(ActionInputs.TRANSPORT_CLASS_NAME, ActionInputs.TRASPORT_CLASS);
+ proxy = new UDDIProxy(props);
+ proxy.setInquiryURL(new URL(inquiryAPI));
+ }
+ catch (Exception e)
+ {
+ for (int j = 0; j < businesses.size(); j++)
+ {
+ WsilUddiBusinessElement uddiBusinessElement = (WsilUddiBusinessElement) businesses.get(j);
+ uddiBusinessElement.setServiceProvider(null);
+ }
+ continue;
+ }
+ Vector businessKeys = new Vector();
+ for (int j = 0; j < businesses.size(); j++)
+ {
+ businessKeys.add(((WsilUddiBusinessElement) businesses.get(j)).getUDDILinkBusinessKey());
+ }
+ Vector businessEntities;
+ try
+ {
+ businessEntities = proxy.get_businessDetail(businessKeys).getBusinessEntityVector();
+ }
+ catch (Exception ex)
+ {
+ businessEntities = new Vector();
+ if (businessKeys.size() > 1)
+ {
+ for (int k = 0; k < businessKeys.size(); k++)
+ {
+ try
+ {
+ businessEntities.add((BusinessEntity) proxy.get_businessDetail((String) businessKeys.get(k)).getBusinessEntityVector().get(0));
+ }
+ catch (Exception exception)
+ {
+ businessEntities.add(null);
+ }
+ }
+ }
+ else
+ businessEntities.add(null);
+ }
+ for (int k = 0; k < businesses.size(); k++)
+ {
+ BusinessEntity be = (BusinessEntity) businessEntities.get(k);
+ WsilUddiBusinessElement uddiBusinessElement = (WsilUddiBusinessElement) businesses.get(k);
+ uddiBusinessElement.setServiceProvider(be);
+ }
+ }
+ }
+
+ private void initAllWSILLinks()
+ {
+ ListManager wsilLinks_ = new ListManager();
+ Inspection inspection = wsilDoc_.getInspection();
+ Link[] linkList = inspection.getLinks();
+ for (int i = 0; i < linkList.length; i++)
+ {
+ // process any links with UDDI namespace
+ String namespace = linkList[i].getReferencedNamespace();
+ if (namespace == null)
+ continue;
+ else if (namespace.equals(NAMESPACE_WSIL_INSPECTION))
+ {
+ WsilWsilLinkElement wsilLinkElement = new WsilWsilLinkElement(namespace, getModel(), linkList[i]);
+ wsilLinkElement.setBaseWsilURL(getWsilUrl());
+ if (wsilLinkElement.validateWSILLink())
+ {
+ wsilLinkElement.setName(wsilLinkElement.getWSILLinkLocation());
+ wsilLinks_.add(new ListElement(wsilLinkElement));
+ }
+ }
+ }
+ setPropertyAsObject(WsilModelConstants.LIST_MANAGER_WSIL_LINKS, wsilLinks_);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilLinkElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilLinkElement.java
new file mode 100644
index 000000000..a8e35bd0a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilLinkElement.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.Model;
+
+import java.util.Vector;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL Link
+*/
+public class WsilLinkElement extends WsilCommonElement
+{
+ protected Link link_;
+
+ public WsilLinkElement(String name, Model model, Link link)
+ {
+ super(name, model);
+ link_ = link;
+ }
+
+ public Vector getLinkAbstractLangs()
+ {
+ Vector v = new Vector();
+ Abstract[] abstracts = link_.getAbstracts();
+ for (int i = 0; i < abstracts.length; i++)
+ {
+ v.add(abstracts[i].getLang());
+ }
+ return v;
+ }
+
+ public Vector getLinkAbstracts()
+ {
+ Vector v = new Vector();
+ Abstract[] abstracts = link_.getAbstracts();
+ for (int i = 0; i < abstracts.length; i++)
+ {
+ v.add(abstracts[i].getText());
+ }
+ return v;
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilServiceElement.java
new file mode 100644
index 000000000..035888c6f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilServiceElement.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.Model;
+
+import java.util.Vector;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL Service
+*/
+public class WsilServiceElement extends WsilCommonElement
+{
+ protected Service service_;
+
+ public WsilServiceElement(String name, Model model, Service service) {
+ super(name, model);
+ service_ = service;
+ }
+
+ public Vector getServiceNameLangs() {
+ Vector v = new Vector();
+ ServiceName[] serviceNames = service_.getServiceNames();
+ for (int i = 0; i < serviceNames.length; i++) {
+ v.add(serviceNames[i].getLang());
+ }
+ return v;
+ }
+
+ public Vector getServiceNames() {
+ Vector v = new Vector();
+ ServiceName[] serviceNames = service_.getServiceNames();
+ for (int i = 0; i < serviceNames.length; i++) {
+ v.add(serviceNames[i].getText());
+ }
+ return v;
+ }
+
+ public Vector getServiceAbstractLangs() {
+ Vector v = new Vector();
+ Abstract[] abstracts = service_.getAbstracts();
+ for (int i = 0; i < abstracts.length; i++) {
+ v.add(abstracts[i].getLang());
+ }
+ return v;
+ }
+
+ public Vector getServiceAbstracts() {
+ Vector v = new Vector();
+ Abstract[] abstracts = service_.getAbstracts();
+ for (int i = 0; i < abstracts.length; i++) {
+ v.add(abstracts[i].getText());
+ }
+ return v;
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiBusinessElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiBusinessElement.java
new file mode 100644
index 000000000..d4630dff4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiBusinessElement.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.util.Validator;
+
+import org.apache.wsil.*;
+import org.apache.wsil.extension.*;
+import org.apache.wsil.extension.uddi.*;
+
+import org.uddi4j.util.DiscoveryURL;
+import org.uddi4j.datatype.business.BusinessEntity;
+
+/**
+* The data model element that represents
+* a UDDI service in a WSIL document
+*/
+public class WsilUddiBusinessElement extends WsilLinkElement
+{
+ private BusinessEntity busEntity_;
+
+ public WsilUddiBusinessElement(String name, Model model, Link link) {
+ super(name, model, link);
+ busEntity_ = null;
+ }
+
+ public void setServiceProvider(BusinessEntity be) {
+ busEntity_ = be;
+ }
+
+ public BusinessEntity getServiceProvider() {
+ return busEntity_;
+ }
+
+ public String getName() {
+ return (busEntity_ == null) ? null : busEntity_.getDefaultNameString();
+ }
+
+ public String getDescription() {
+ return (busEntity_ == null) ? null : busEntity_.getDefaultDescriptionString();
+ }
+
+ public String getUDDILinkInquiryAPI() {
+ BusinessDescription bd = getValidUDDIBusinessDescription();
+ return (bd == null) ? null : bd.getLocation();
+ }
+
+ public String getUDDILinkBusinessKey() {
+ BusinessDescription bd = getValidUDDIBusinessDescription();
+ return (bd == null) ? null : bd.getBusinessKey().getText();
+ }
+
+ public String getUDDILinkDiscoveryURL() {
+ BusinessDescription bd = getValidUDDIBusinessDescription();
+ if (bd == null)
+ return null;
+ else {
+ DiscoveryURL discoveryURL = bd.getDiscoveryURL();
+ return (discoveryURL == null) ? null : discoveryURL.getText();
+ }
+ }
+
+ public boolean validateUDDILink() {
+ BusinessDescription bd = getValidUDDIBusinessDescription();
+ return (bd != null);
+ }
+
+ private BusinessDescription getValidUDDIBusinessDescription() {
+ ExtensionElement extElement = link_.getExtensionElement();
+ // The extension element of a UDDI link
+ // must be a BusinessDescription element
+ if (!(extElement instanceof BusinessDescription))
+ return null;
+ // A valid BusinessDescription must have an inquiry API
+ String inquiryAPI = ((BusinessDescription)extElement).getLocation();
+ if (!Validator.validateURL(inquiryAPI))
+ return null;
+ // A valid BusinessDescription must have a business key
+ String businessKey = ((BusinessDescription)extElement).getBusinessKey().getText();
+ if (businessKey == null || businessKey.length() <= 0)
+ return null;
+ return (BusinessDescription)extElement;
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiServiceElement.java
new file mode 100644
index 000000000..900f76b26
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilUddiServiceElement.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper;
+import org.eclipse.wst.ws.internal.explorer.platform.util.Validator;
+
+import org.apache.wsil.*;
+import org.apache.wsil.extension.*;
+import org.apache.wsil.extension.uddi.*;
+
+import org.uddi4j.util.DiscoveryURL;
+import org.uddi4j.datatype.service.BusinessService;
+
+/**
+* The data model element that represents
+* a UDDI service in a WSIL document
+*/
+public class WsilUddiServiceElement extends WsilServiceElement
+{
+ private BusinessService busService_;
+
+ public WsilUddiServiceElement(String name, Model model, Service service) {
+ super(name, model, service);
+ busService_ = null;
+ }
+
+ public void setServiceDefinition(BusinessService busService) {
+ busService_ = busService;
+ }
+
+ public BusinessService getServiceDefinition() {
+ return busService_;
+ }
+
+ public String getName() {
+ return (busService_ == null) ? null : busService_.getDefaultNameString();
+ }
+
+ public String getDescription() {
+ return (busService_ == null) ? null : busService_.getDefaultDescriptionString();
+ }
+
+ public String getUDDIServiceInquiryAPI() {
+ ServiceDescription sd = getValidUDDIServiceDescription();
+ return (sd == null) ? null : sd.getLocation();
+ }
+
+ public String getUDDIServiceKey() {
+ ServiceDescription sd = getValidUDDIServiceDescription();
+ return (sd == null) ? null : sd.getServiceKey().getText();
+ }
+
+ public String getUDDIServiceDiscoveryURL() {
+ ServiceDescription sd = getValidUDDIServiceDescription();
+ if (sd == null)
+ return null;
+ else {
+ DiscoveryURL discoveryURL = sd.getDiscoveryURL();
+ return (discoveryURL == null) ? null : discoveryURL.getText();
+ }
+ }
+
+ private ServiceDescription getValidUDDIServiceDescription() {
+ Description[] descList = service_.getDescriptions();
+ for (int i = 0; i < descList.length; i++) {
+ ExtensionElement extElement = descList[i].getExtensionElement();
+ // The extension element of a UDDI service description
+ // must be a ServiceDescription element
+ if (!(extElement instanceof ServiceDescription))
+ continue;
+ // A valid ServiceDescription must have an inquiry API
+ if (!Validator.validateURL(((ServiceDescription)extElement).getLocation()))
+ continue;
+ // A valid ServiceDescription must have a service key
+ String serviceKey = ((ServiceDescription)extElement).getServiceKey().getText();
+ if (serviceKey == null || serviceKey.length() <= 0)
+ continue;
+ return (ServiceDescription)extElement;
+ }
+ return null;
+ }
+
+ public boolean validateUDDIService() {
+ ServiceDescription sd = getValidUDDIServiceDescription();
+ return (sd != null);
+ }
+
+ public String getWsdlUrl() {
+ return (new Uddi4jHelper()).getWSDL(getServiceDefinition(), null);
+ }
+
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsdlServiceElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsdlServiceElement.java
new file mode 100644
index 000000000..5ed15e27e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsdlServiceElement.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import java.util.Vector;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+
+import org.apache.wsil.*;
+import org.apache.wsil.extension.*;
+import org.apache.wsil.extension.wsdl.*;
+
+/**
+* The data model element that represents
+* a WSDL service in a WSIL document
+*/
+public class WsilWsdlServiceElement extends WsilServiceElement
+{
+ public WsilWsdlServiceElement(String name, Model model, Service service) {
+ super(name, model, service);
+ }
+
+ public String getWSDLServiceURL() {
+ Description desc = getValidWSDLDescription();
+ return (desc == null) ? null : makeAbsolute(desc.getLocation());
+ }
+
+ public Vector getWSDLBinding() {
+ Vector v = new Vector();
+ Description[] descList = service_.getDescriptions();
+ for (int i = 0; i < descList.length; i++) {
+ ExtensionElement extElement = descList[i].getExtensionElement();
+ if (extElement != null && extElement instanceof Reference) {
+ ReferencedService refService = ((Reference)extElement).getReferencedService();
+ if (refService != null) {
+ v.add(refService.getReferencedServiceName());
+ }
+ ImplementedBinding[] implBindingList = ((Reference)extElement).getImplementedBindings();
+ for (int j = 0; j < implBindingList.length; j++) {
+ v.add(implBindingList[j].getBindingName());
+ }
+ }
+ }
+ return v;
+ }
+
+ private Description getValidWSDLDescription() {
+ Description[] descList = service_.getDescriptions();
+ for (int i = 0; i < descList.length; i++) {
+ // skip this description if the locatioin attribute is a malformed URL
+ String location = descList[i].getLocation();
+ if (location == null || location.length() <= 0)
+ continue;
+ // skip this description if the extension element indicates
+ // that the description's location contains only the wsdl binding
+ ExtensionElement extElement = descList[i].getExtensionElement();
+ if (extElement != null && extElement instanceof Reference) {
+ Boolean endpointPresent = ((Reference)extElement).getEndpointPresent();
+ if (endpointPresent != null && endpointPresent.booleanValue() == false)
+ continue;
+ }
+ // a valid description is found
+ return descList[i];
+ }
+ // no valid description is found for this service
+ return null;
+ }
+
+ public boolean validateWSDLService() {
+ Description desc = getValidWSDLDescription();
+ return (desc != null);
+ }
+
+ public String toString() {
+ return getWSDLServiceURL();
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsilLinkElement.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsilLinkElement.java
new file mode 100644
index 000000000..da1e92fd9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/datamodel/WsilWsilLinkElement.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * 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.wsil.datamodel;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.apache.wsil.*;
+
+/**
+* The data model element that represents
+* a WSIL link in a WSIL document
+*/
+public class WsilWsilLinkElement extends WsilLinkElement
+{
+ public WsilWsilLinkElement(String name, Model model, Link link)
+ {
+ super(name, model, link);
+ }
+
+ public String getWSILLinkLocation()
+ {
+ return makeAbsolute(link_.getLocation());
+ }
+
+ public boolean validateWSILLink()
+ {
+ return (link_.getLocation() != null);
+ }
+
+ public String toString()
+ {
+ return getWSILLinkLocation();
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToFavoritesTool.java
new file mode 100644
index 000000000..f924206e6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToFavoritesTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddBusinessToFavoritesTool extends ActionTool {
+ public AddBusinessToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToFavoritesAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToUDDIPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToUDDIPerspectiveTool.java
new file mode 100644
index 000000000..d89451d1d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddBusinessToUDDIPerspectiveTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddBusinessToUDDIPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddBusinessToUDDIPerspectiveTool extends ActionTool {
+ public AddBusinessToUDDIPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/add_to_UDDI_perspective_enabled.gif", "wsil/images/add_to_UDDI_perspective_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddBusinessToUDDIPerspectiveAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToFavoritesTool.java
new file mode 100644
index 000000000..b98c2c6e3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToFavoritesTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddServiceToFavoritesTool extends ActionTool {
+ public AddServiceToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToFavoritesAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToUDDIPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToUDDIPerspectiveTool.java
new file mode 100644
index 000000000..c4a921ce8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddServiceToUDDIPerspectiveTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddServiceToUDDIPerspectiveAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddServiceToUDDIPerspectiveTool extends ActionTool {
+ public AddServiceToUDDIPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/add_to_UDDI_perspective_enabled.gif", "wsil/images/add_to_UDDI_perspective_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddServiceToUDDIPerspectiveAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSDLServiceToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSDLServiceToFavoritesTool.java
new file mode 100644
index 000000000..5f0316a91
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSDLServiceToFavoritesTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddWSDLServiceToFavoritesTool extends ActionTool {
+ public AddWSDLServiceToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToFavoritesAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSILToFavoritesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSILToFavoritesTool.java
new file mode 100644
index 000000000..da3cb45ce
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/AddWSILToFavoritesTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class AddWSILToFavoritesTool extends ActionTool {
+ public AddWSILToFavoritesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/favorites_enabled.gif", "images/favorites_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return AddToFavoritesAction.getActionLink(selectedNode.getNodeId(), toolId_, ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ClearWSILTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ClearWSILTool.java
new file mode 100644
index 000000000..4acc5fdbc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ClearWSILTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.ClearWSILAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class ClearWSILTool extends ActionTool {
+ public ClearWSILTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/clear_enabled.gif", "images/clear_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ return ClearWSILAction.getActionLink(toolManager_.getNode().getNodeId());
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSDLToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSDLToFileSystemTool.java
new file mode 100644
index 000000000..b871050e3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSDLToFileSystemTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToFileSystemTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.ImportWSDLToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class ImportWSDLToFileSystemTool extends ImportToFileSystemTool {
+ public ImportWSDLToFileSystemTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return ImportWSDLToFileSystemAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSILToFileSystemTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSILToFileSystemTool.java
new file mode 100644
index 000000000..dd00c2820
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ImportWSILToFileSystemTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToFileSystemTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.ImportWSILToFileSystemAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class ImportWSILToFileSystemTool extends ImportToFileSystemTool {
+ public ImportWSILToFileSystemTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ return ImportWSILToFileSystemAction.getActionLink(toolManager_.getNode().getNodeId(), toolId_, ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIBusinessTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIBusinessTool.java
new file mode 100644
index 000000000..1498669b0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIBusinessTool.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class ListUDDIBusinessTool extends ViewTool {
+ public ListUDDIBusinessTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/list_business_enabled.gif", "wsil/images/list_business_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ protected void addSetDefaultViewTool(ToolManager viewToolManager, int index) {
+ new WsilSetDefaultViewTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getMessage("ALT_BACK_TO_TOP"));
+ }
+
+ protected void addTools(ToolManager viewToolManager, int index) {
+ new UddiBusinessDetailsTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_UDDI_LINK_DETAILS"));
+ new AddBusinessToUDDIPerspectiveTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE"));
+ new AddBusinessToFavoritesTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_ADD_UDDI_BUSINESS_TO_FAVORITES"));
+ new RefreshUDDIBusinessTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_REFRESH_UDDI_BUSINESS"));
+ }
+
+ public String getFormLink() {
+ return ProxyLoadPageAction.getActionLink("wsil/views/UddiBusinessView.jsp");
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIServicesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIServicesTool.java
new file mode 100644
index 000000000..c65bc1680
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListUDDIServicesTool.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.actions.*;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WsilSetDefaultViewTool;
+
+public class ListUDDIServicesTool extends ViewTool {
+ public ListUDDIServicesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/list_UDDI_service_enabled.gif", "wsil/images/list_UDDI_service_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ protected void addSetDefaultViewTool(ToolManager viewToolManager, int index) {
+ new WsilSetDefaultViewTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getMessage("ALT_BACK_TO_TOP"));
+ }
+
+ protected void addTools(ToolManager viewToolManager, int index) {
+ Controller controller = toolManager_.getNode().getNodeManager().getController();
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ new UddiServiceDetailsTool(viewToolManager, wsilPerspective.getMessage("ALT_WSIL_SERVICE_DETAILS"));
+ new WsilImportWSDLToWorkbenchTool(viewToolManager, controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new ImportWSDLToFileSystemTool(viewToolManager, controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new WsilLaunchWebServiceWizardTool(viewToolManager, controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new AddServiceToUDDIPerspectiveTool(viewToolManager, wsilPerspective.getMessage("ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE"));
+ new AddServiceToFavoritesTool(viewToolManager, wsilPerspective.getMessage("ALT_ADD_SERVICE_TO_FAVORITES"));
+ new RefreshUDDIServiceTool(viewToolManager, wsilPerspective.getMessage("ALT_REFRESH_UDDI_SERVICE"));
+ }
+
+ public String getFormLink() {
+ return ProxyLoadPageAction.getActionLink("wsil/views/UddiServicesView.jsp");
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSDLServicesTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSDLServicesTool.java
new file mode 100644
index 000000000..5e51f1900
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSDLServicesTool.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WsilSetDefaultViewTool;
+
+public class ListWSDLServicesTool extends ViewTool {
+ public ListWSDLServicesTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/list_WSDL_service_enabled.gif", "wsil/images/list_WSDL_service_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ protected void addSetDefaultViewTool(ToolManager viewToolManager, int index) {
+ new WsilSetDefaultViewTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getMessage("ALT_BACK_TO_TOP"));
+ }
+
+ protected void addTools(ToolManager viewToolManager, int index) {
+ Controller controller = toolManager_.getNode().getNodeManager().getController();
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ new WsdlServiceDetailsTool(viewToolManager, wsilPerspective.getMessage("ALT_WSIL_SERVICE_DETAILS"));
+ new WsilImportWSDLToWorkbenchTool(viewToolManager, controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH"));
+ new ImportWSDLToFileSystemTool(viewToolManager, controller.getMessage("ALT_WSDL_IMPORT_TO_FS"));
+ new WsilLaunchWebServiceWizardTool(viewToolManager, controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD"));
+ new WsilAddToWSDLPerspectiveTool(viewToolManager, wsilPerspective.getMessage("ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE"));
+ new AddWSDLServiceToFavoritesTool(viewToolManager, wsilPerspective.getMessage("ALT_ADD_WSDL_SERVICE_TO_FAVORITES"));
+ }
+
+ public String getFormLink() {
+ return "wsil/views/WsdlServicesView.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSILLinksTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSILLinksTool.java
new file mode 100644
index 000000000..3ae52fb46
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/ListWSILLinksTool.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class ListWSILLinksTool extends ViewTool {
+ public ListWSILLinksTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/list_WSIL_enabled.gif", "wsil/images/list_WSIL_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ protected void addSetDefaultViewTool(ToolManager viewToolManager, int index) {
+ new WsilSetDefaultViewTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getMessage("ALT_BACK_TO_TOP"));
+ }
+
+ protected void addTools(ToolManager viewToolManager, int index) {
+ new WsilLinkDetailsTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_WSIL_LINK_DETAILS"));
+ new OpenWSILLinkTool(viewToolManager, toolManager_.getNode().getNodeManager().getController().getWSILPerspective().getMessage("ALT_OPEN_WSIL_LINK"));
+ }
+
+ public String getFormLink() {
+ return "wsil/views/WsilLinksView.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILLinkTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILLinkTool.java
new file mode 100644
index 000000000..c0c61fba4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILLinkTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.OpenWSILLinkAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class OpenWSILLinkTool extends ActionTool {
+ public OpenWSILLinkTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/open_wsil_enabled.gif", "wsil/images/open_wsil_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return OpenWSILLinkAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILTool.java
new file mode 100644
index 000000000..d9d500934
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/OpenWSILTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class OpenWSILTool extends FormTool {
+ public OpenWSILTool(ToolManager toolManager, String alt) {
+ super(toolManager, "wsil/images/open_wsil_enabled.gif", "wsil/images/open_wsil_highlighted.gif", alt);
+ }
+
+ protected void initDefaultProperties() {
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/OpenWSILForm.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIBusinessTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIBusinessTool.java
new file mode 100644
index 000000000..5b22a8612
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIBusinessTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class RefreshUDDIBusinessTool extends ActionTool {
+ public RefreshUDDIBusinessTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/refresh_enabled.gif", "images/refresh_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return RefreshAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIServiceTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIServiceTool.java
new file mode 100644
index 000000000..cc98791be
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshUDDIServiceTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class RefreshUDDIServiceTool extends ActionTool {
+ public RefreshUDDIServiceTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/refresh_enabled.gif", "images/refresh_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return RefreshAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshWSILTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshWSILTool.java
new file mode 100644
index 000000000..00a3c5b3a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/RefreshWSILTool.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class RefreshWSILTool extends ActionTool {
+ public RefreshWSILTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/refresh_enabled.gif", "images/refresh_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getActionLink() {
+ return RefreshAction.getActionLink(toolManager_.getNode().getNodeId(), toolId_, ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiBusinessDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiBusinessDetailsTool.java
new file mode 100644
index 000000000..f9db177b6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiBusinessDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class UddiBusinessDetailsTool extends FormTool {
+ public UddiBusinessDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/UddiBusinessDetailsPage.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiServiceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiServiceDetailsTool.java
new file mode 100644
index 000000000..5d3f5cdc1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/UddiServiceDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class UddiServiceDetailsTool extends FormTool {
+ public UddiServiceDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/UddiServiceDetailsPage.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILImportWSILToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILImportWSILToWorkbenchTool.java
new file mode 100644
index 000000000..be28ec8e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILImportWSILToWorkbenchTool.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToWorkbenchTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WSILImportWSILToWorkbenchTool extends ImportToWorkbenchTool
+{
+ public WSILImportWSILToWorkbenchTool(ToolManager toolManager, String alt)
+ {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory)
+ {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "wsil/forms/WSILImportWSILToWorkbenchForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILPerspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILPerspective.java
new file mode 100644
index 000000000..e51268641
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WSILPerspective.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.BasicModel;
+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.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*;
+
+import javax.servlet.*;
+
+public class WSILPerspective extends Perspective
+{
+ private BasicModel model_;
+ private NodeManager nodeManager_;
+ private String perspectiveContentFramesetCols_;
+ private String savedPerspectiveContentFramesetCols_;
+ private String actionsContainerFramesetRows_;
+ private String savedActionsContainerFramesetRows_;
+
+ public WSILPerspective(Controller controller)
+ {
+ super("wsil",controller);
+ }
+
+ public final void initPerspective(ServletContext application)
+ {
+ model_ = new BasicModel("WsilModel");
+ TreeElement treeElement = new TreeElement(getMessage("WSIL_MAIN_NODE"), model_);
+ model_.setRootElement(treeElement);
+ nodeManager_ = new NodeManager(controller_);
+ WsilMainNode wsilMainNode = new WsilMainNode(treeElement, nodeManager_);
+ nodeManager_.setRootNode(wsilMainNode);
+
+ // Starting frameset sizes.
+ perspectiveContentFramesetCols_ = "30%,*";
+ savedPerspectiveContentFramesetCols_ = perspectiveContentFramesetCols_;
+ actionsContainerFramesetRows_ = "75%,*";
+ savedActionsContainerFramesetRows_ = actionsContainerFramesetRows_;
+ }
+
+ public NodeManager getNodeManager() {
+ return nodeManager_;
+ }
+
+ public String getPerspectiveContentPage()
+ {
+ return "wsil/wsil_perspective_content.jsp";
+ }
+
+ public int getPerspectiveId()
+ {
+ return ActionInputs.PERSPECTIVE_WSIL;
+ }
+
+ public String getPanesFile() {
+ return "wsil/scripts/wsilPanes.jsp";
+ }
+
+ public String getFramesetsFile()
+ {
+ return "wsil/scripts/wsilframesets.jsp";
+ }
+
+ public String getProcessFramesetsForm()
+ {
+ return "wsil/forms/ProcessWSILFramesetsForm.jsp";
+ }
+
+ public String getTreeContentVar() {
+ return "wsilNavigatorContent";
+ }
+
+ public String getTreeContentPage() {
+ return "wsil/wsil_navigator_content.jsp";
+ }
+
+ public String getPropertiesContainerVar() {
+ return "wsilPropertiesContainer";
+ }
+
+ public String getPropertiesContainerPage() {
+ return "wsil/wsil_properties_container.jsp";
+ }
+
+ public String getStatusContentVar() {
+ return "wsilStatusContent";
+ }
+
+ public String getStatusContentPage() {
+ return "wsil/wsil_status_content.jsp";
+ }
+
+ public final String getPerspectiveContentFramesetCols()
+ {
+ return perspectiveContentFramesetCols_;
+ }
+
+ public final void setPerspectiveContentFramesetCols(String cols)
+ {
+ perspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getSavedPerspectiveContentFramesetCols()
+ {
+ return savedPerspectiveContentFramesetCols_;
+ }
+
+ public final void setSavedPerspectiveContentFramesetCols(String cols)
+ {
+ savedPerspectiveContentFramesetCols_ = cols;
+ }
+
+ public final String getActionsContainerFramesetRows()
+ {
+ return actionsContainerFramesetRows_;
+ }
+
+ public final void setActionsContainerFramesetRows(String rows)
+ {
+ actionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSavedActionsContainerFramesetRows()
+ {
+ return savedActionsContainerFramesetRows_;
+ }
+
+ public final void setSavedActionsContainerFramesetRows(String rows)
+ {
+ savedActionsContainerFramesetRows_ = rows;
+ }
+
+ public final String getSwitchPerspectiveFormActionLink(int targetPerspectiveId,boolean forHistory)
+ {
+ return SwitchPerspectiveFromWSILAction.getFormActionLink(targetPerspectiveId,forHistory);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsdlServiceDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsdlServiceDetailsTool.java
new file mode 100644
index 000000000..7efdfe6de
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsdlServiceDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsdlServiceDetailsTool extends FormTool {
+ public WsdlServiceDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/WsdlServiceDetailsPage.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilAddToWSDLPerspectiveTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilAddToWSDLPerspectiveTool.java
new file mode 100644
index 000000000..a7bcaa5ad
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilAddToWSDLPerspectiveTool.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.*;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*;
+
+public class WsilAddToWSDLPerspectiveTool extends AddToWSDLPerspectiveTool {
+
+ public WsilAddToWSDLPerspectiveTool(ToolManager toolManager, String alt) {
+ super(toolManager,alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return WsilAddToWSDLPerspectiveAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilDetailsTool.java
new file mode 100644
index 000000000..caecb8d96
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsilDetailsTool extends FormTool {
+ public WsilDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), toolId_, selectedNode.getViewId(), selectedNode.getViewToolId(), forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/WsilDetailsPage.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilImportWSDLToWorkbenchTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilImportWSDLToWorkbenchTool.java
new file mode 100644
index 000000000..0371249ec
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilImportWSDLToWorkbenchTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ImportToWorkbenchTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsilImportWSDLToWorkbenchTool extends ImportToWorkbenchTool {
+ public WsilImportWSDLToWorkbenchTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "wsil/forms/WsilImportWSDLToWorkbenchForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLaunchWebServiceWizardTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLaunchWebServiceWizardTool.java
new file mode 100644
index 000000000..cd3110a6b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLaunchWebServiceWizardTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.LaunchWebServiceWizardTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsilLaunchWebServiceWizardTool extends LaunchWebServiceWizardTool {
+ public WsilLaunchWebServiceWizardTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public final String getFormLink()
+ {
+ return "wsil/forms/WsilLaunchWebServiceWizardForm.jsp";
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLinkDetailsTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLinkDetailsTool.java
new file mode 100644
index 000000000..786540471
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilLinkDetailsTool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsilLinkDetailsTool extends FormTool {
+ public WsilLinkDetailsTool(ToolManager toolManager, String alt) {
+ super(toolManager, "images/details_enabled.gif", "images/details_highlighted.gif", alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), selectedNode.getViewId(), toolId_, forHistory);
+ }
+
+ public String getFormLink() {
+ return "wsil/forms/WsilLinkDetailsPage.jsp";
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilMainNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilMainNode.java
new file mode 100644
index 000000000..428929bde
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilMainNode.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.datamodel.*;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilModelConstants;
+
+public class WsilMainNode extends WsilNavigatorNode {
+
+ public WsilMainNode(TreeElement treeElement, NodeManager nodeManager) {
+ super(treeElement, nodeManager, 1, "images/root_main.gif");
+ treeElement.addListener(new ElementAdapter() {
+ public void relAdded(RelAddEvent event) {
+ String rel = event.getOutBoundRelName();
+ if (rel.equals(WsilModelConstants.REL_WSIL)) {
+ WsilNode wsilNode = new WsilNode((TreeElement)event.getParentElement(), nodeManager_, nodeDepth_ + 1);
+ addChild(wsilNode);
+ }
+ }
+
+ public void relRemoved(RelRemoveEvent event) {
+ TreeElement childElement = null;
+ if (event.getInBoundRelName().equals(WsilModelConstants.REL_WSIL)) {
+ childElement = (TreeElement)event.getInboundElement();
+ }
+ if (event.getOutBoundRelName().equals(WsilModelConstants.REL_WSIL)) {
+ childElement = (TreeElement)event.getOutBoundElement();
+ }
+ removeChildNode(childElement);
+ }
+ });
+ }
+
+ protected void initTools() {
+ WSILPerspective wsilPerspective = nodeManager_.getController().getWSILPerspective();
+ new OpenWSILTool(toolManager_, wsilPerspective.getMessage("ALT_OPEN_WSIL"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNavigatorNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNavigatorNode.java
new file mode 100644
index 000000000..6a22957ee
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNavigatorNode.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILNodeAction;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.WsilToggleNodeAction;
+
+public abstract class WsilNavigatorNode extends Node {
+
+ public WsilNavigatorNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth, String imagePath) {
+ super(treeElement, nodeManager, nodeDepth, imagePath);
+ }
+
+ protected String getToggleNodeActionHref() {
+ return WsilToggleNodeAction.getActionLink(nodeId_,isOpen_);
+ }
+
+ protected String getLinkActionHref() {
+ return SelectWSILNodeAction.getActionLink(nodeId_, false);
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNode.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNode.java
new file mode 100644
index 000000000..aa869edff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilNode.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager;
+
+public class WsilNode extends WsilNavigatorNode {
+
+ public WsilNode(TreeElement treeElement, NodeManager nodeManager, int nodeDepth) {
+ super(treeElement, nodeManager, nodeDepth, "wsil/images/wsil_node.gif");
+ }
+
+ protected void initTools() {
+ Controller controller = nodeManager_.getController();
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ new WsilDetailsTool(toolManager_, wsilPerspective.getMessage("ALT_WSIL_DETAILS"));
+ new ListWSDLServicesTool(toolManager_, wsilPerspective.getMessage("ALT_LIST_WSDL_SERVICES"));
+ new ListUDDIServicesTool(toolManager_, wsilPerspective.getMessage("ALT_LIST_UDDI_SERVICES"));
+ new ListUDDIBusinessTool(toolManager_, wsilPerspective.getMessage("ALT_LIST_UDDI_LINKS"));
+ new ListWSILLinksTool(toolManager_, wsilPerspective.getMessage("ALT_LIST_WSIL_LINKS"));
+ new WSILImportWSILToWorkbenchTool(toolManager_, wsilPerspective.getMessage("ATL_IMPORT_WSIL_TO_WORKBENCH"));
+ new ImportWSILToFileSystemTool(toolManager_, controller.getMessage("ALT_WSIL_IMPORT_TO_FS"));
+ new AddWSILToFavoritesTool(toolManager_, wsilPerspective.getMessage("ALT_ADD_WSIL_TO_FAVORITES"));
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilSetDefaultViewTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilSetDefaultViewTool.java
new file mode 100644
index 000000000..39f63382e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/perspective/WsilSetDefaultViewTool.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 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.wsil.perspective;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.SetDefaultViewTool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction;
+
+public class WsilSetDefaultViewTool extends SetDefaultViewTool {
+ public WsilSetDefaultViewTool(ToolManager toolManager, String alt) {
+ super(toolManager, alt);
+ }
+
+ public String getSelectToolActionHref(boolean forHistory) {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, forHistory);
+ }
+
+ public String getActionLink() {
+ Node selectedNode = toolManager_.getNode();
+ return SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT, false);
+ }
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/transformer/WSILViewSelectionTransformer.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/transformer/WSILViewSelectionTransformer.java
new file mode 100644
index 000000000..b265d2813
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsil/transformer/WSILViewSelectionTransformer.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * 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.wsil.transformer;
+
+import java.util.Hashtable;
+
+import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs;
+import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement;
+import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ViewSelectionTransformer;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.Tool;
+import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilModelConstants;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.ListUDDIBusinessTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.ListUDDIServicesTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.ListWSDLServicesTool;
+import org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.ListWSILLinksTool;
+
+public class WSILViewSelectionTransformer extends ViewSelectionTransformer
+{
+ public static final byte NONE = 0;
+ public static final byte WSDL_SERVICE = 1;
+ public static final byte UDDI_SERVICE = 2;
+ public static final byte UDDI_BUSINESS = 3;
+ public static final byte WSIL_LINK = 4;
+ public static final byte FROM_TOOLID = 5;
+ private byte type;
+
+ public WSILViewSelectionTransformer(Controller controller)
+ {
+ this(controller, "", ActionInputs.VIEWID, FROM_TOOLID);
+ }
+
+ public WSILViewSelectionTransformer(Controller controller, String listManagerKey, String viewKey, byte type)
+ {
+ super(controller, listManagerKey, viewKey);
+ this.type = type;
+ }
+
+ public Hashtable normalize(Hashtable properties)
+ {
+ if (type == FROM_TOOLID)
+ {
+ Node currNode = controller.getCurrentPerspective().getNodeManager().getSelectedNode();
+ if (currNode != null)
+ {
+ try
+ {
+ int toolId = Integer.parseInt((String) properties.get(ActionInputs.TOOLID));
+ ToolManager toolManager = currNode.getToolManager();
+ Tool tool = toolManager.getTool(toolId);
+ if (tool instanceof ListWSDLServicesTool)
+ listManagerKey = WsilModelConstants.LIST_MANAGER_WSDL_SERVICES;
+ else if (tool instanceof ListUDDIServicesTool)
+ listManagerKey = WsilModelConstants.LIST_MANAGER_UDDI_SERVICES;
+ else if (tool instanceof ListUDDIBusinessTool)
+ listManagerKey = WsilModelConstants.LIST_MANAGER_UDDI_LINKS;
+ else if (tool instanceof ListWSILLinksTool)
+ listManagerKey = WsilModelConstants.LIST_MANAGER_WSIL_LINKS;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ }
+ }
+ return super.normalize(properties);
+ }
+
+ public Hashtable deNormalize(Hashtable properties)
+ {
+ Node currNode = controller.getCurrentPerspective().getNodeManager().getSelectedNode();
+ if (currNode != null)
+ {
+ TreeElement currElement = currNode.getTreeElement();
+ if (currElement instanceof WsilElement)
+ {
+ WsilElement wsilElement = (WsilElement) currElement;
+ switch (type)
+ {
+ case WSDL_SERVICE :
+ wsilElement.getAllWSDLServices();
+ break;
+ case UDDI_SERVICE :
+ wsilElement.getAllUDDIServices();
+ break;
+ case UDDI_BUSINESS :
+ wsilElement.getAllUDDILinks();
+ break;
+ case WSIL_LINK :
+ wsilElement.getAllWSILLinks();
+ break;
+ case FROM_TOOLID :
+ try
+ {
+ int toolId = Integer.parseInt((String) properties.get(ActionInputs.TOOLID));
+ ToolManager toolManager = currNode.getToolManager();
+ Tool tool = toolManager.getTool(toolId);
+ if (tool instanceof ListWSDLServicesTool)
+ {
+ listManagerKey = WsilModelConstants.LIST_MANAGER_WSDL_SERVICES;
+ wsilElement.getAllWSDLServices();
+ }
+ else if (tool instanceof ListUDDIServicesTool)
+ {
+ listManagerKey = WsilModelConstants.LIST_MANAGER_UDDI_SERVICES;
+ wsilElement.getAllUDDIServices();
+ }
+ else if (tool instanceof ListUDDIBusinessTool)
+ {
+ listManagerKey = WsilModelConstants.LIST_MANAGER_UDDI_LINKS;
+ wsilElement.getAllUDDILinks();
+ }
+ else if (tool instanceof ListWSILLinksTool)
+ {
+ listManagerKey = WsilModelConstants.LIST_MANAGER_WSIL_LINKS;
+ wsilElement.getAllWSILLinks();
+ }
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ break;
+ default :
+ break;
+ }
+ }
+ }
+ return super.deNormalize(properties);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer.properties
new file mode 100644
index 000000000..45a113ac1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Web Services Explorer
+
+# Tree Nodes
+ALT_OPEN=Open
+ALT_CLOSE=Close
+
+# Perspective Toolbar
+ALT_BACK=Back
+ALT_FORWARD=Forward
+ALT_ACTION_ENGINE=Action Recorder
+ALT_UDDI_PERSPECTIVE=UDDI Page
+ALT_WSIL_PERSPECTIVE=WSIL Page
+ALT_WSDL_PERSPECTIVE=WSDL Page
+ALT_FAVORITES_PERSPECTIVE=Favorites
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Double Click to Maximize
+ALT_DOUBLE_CLICK_TO_RESTORE=Double Click to Restore
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Back to top
+
+# Common Actions
+ALT_REFRESH=Refresh
+ALT_CLEAR=Clear
+ALT_RESULTS=Results
+
+# Common Labels
+ALT_NAVIGATOR=Navigator
+ALT_ACTIONS=Actions
+ALT_STATUS=Status
+ALT_OTHER_ACTIONS=Other Actions
+FORM_BUTTON_GO=&nbsp;&nbsp;Go&nbsp;&nbsp;
+FORM_BUTTON_RESET=Reset
+FORM_BUTTON_CANCEL=Cancel
+FORM_LABEL_ACTIONS=Actions
+FORM_LABEL_ACTIONS_NONE=None
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=Select all
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=Select row
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E An unexpected error has occurred.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E Select an action.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E Select a node.
+MSG_SUBMIT_IN_PROGRESS=Please wait. The operation is still in progress.
+MSG_LOAD_IN_PROGRESS=Please wait while the form loads...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Launch Web Service Wizard
+FORM_LABEL_CHOOSE_WIZARD=Select a wizard to launch:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Web Service Client
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Web Service Skeleton
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E A Web service wizard is already in progress. Finish with the existing wizard before launching a new one.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E The WSDL document is unreachable.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Import WSIL To File System
+ALT_WSDL_IMPORT_TO_FS=Import WSDL To File System
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E Unable to retrieve WSDL document.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E Unable to retrieve WSIL document.
+MSG_IMPORT_WSDL_SUCCESSFUL=WSDL document successfully imported.
+MSG_IMPORT_WSIL_SUCCESSFUL=WSIL document successfully imported.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=Import WSDL To workbench
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=Select a workbench project to save the WSDL file into. You may also change the name of the WSDL file.
+WEB_PROJECT_NAME=Web project:
+WORKBENCH_PROJECT_NAME=Workbench project:
+LABEL_IMPORT_WSDL=Import WSDL document
+LABEL_IMPORT_TO_WSIL=Import as a service reference to a WSIL document
+IMPORTED_WSDL_FILE_NAME=WSDL file name:
+WSIL_FILE_NAME=WSIL file name:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=Cannot create the file "%2" relative to the path "%1" because automatic file overwriting has not been enabled. Do you want to enable it for this file?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E Select a workbench project.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Invalid file name.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Invalid WSIL file name.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E No import option is selected. Please choose at least one import option.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E Unable to write temporary file.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 was successfully imported to the workbench.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I Service reference was successfully imported to %1.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=Cannot create the file "%2" relative to the path "%1" because automatic file check out has not been enabled. Do you want to enable it for this file?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 cleared.
+
+# Table twistees
+ALT_TWIST_OPENED=Hide
+ALT_TWIST_CLOSED=Expand
+
+# WSDL Browser
+FORM_LINK_BROWSE=Browse...
+TITLE_WSDL_BROWSER=WSDL Browser - %1
+FORM_LABEL_WSDL_SOURCE=Select a WSDL source:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web Projects
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favorites
+FORM_LABEL_WEB_PROJECT=Web Project
+FORM_LABEL_WSDL_URL=WSDL URL
+FORM_BUTTON_REFRESH=Refresh
+ALT_WSDL_BROWSER=WSDL Browser
+WSDL_TYPE_SERVICE_INTERFACES=Service Interfaces
+WSDL_TYPE_SERVICES=Services
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Calendar Browser
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Su
+FORM_LABEL_SH_MONDAY=Mo
+FORM_LABEL_SH_TUESDAY=Tu
+FORM_LABEL_SH_WEDNESDAY=We
+FORM_LABEL_SH_THURSDAY=Th
+FORM_LABEL_SH_FRIDAY=Fr
+FORM_LABEL_SH_SATURDAY=Sa
+# Months of the year
+FORM_LABEL_MONTH=Month:
+FORM_LABEL_JANUARY=January
+FORM_LABEL_FEBRUARY=February
+FORM_LABEL_MARCH=March
+FORM_LABEL_APRIL=April
+FORM_LABEL_MAY=May
+FORM_LABEL_JUNE=June
+FORM_LABEL_JULY=July
+FORM_LABEL_AUGUST=August
+FORM_LABEL_SEPTEMBER=September
+FORM_LABEL_OCTOBER=October
+FORM_LABEL_NOVEMBER=November
+FORM_LABEL_DECEMBER=December
+FORM_LABEL_YEAR=Year:
+FORM_LABEL_TIME=Time:
+FORM_LINK_TODAY=Today
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=Previous Year
+ALT_PREVIOUS_MONTH=Previous Month
+ALT_NEXT_MONTH=Next Month
+ALT_NEXT_YEAR=Next Year
+ALT_TODAY=Today
+ALT_CALENDAR_BROWSER=Calendar Browser
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E Time was not formatted as HH:MM:SS[.SSS]. Do you wish to use the current time instead?
+
+# Action engine
+TITLE_ACTION_RECORDER=Action Recorder
+FORM_LABEL_MODE=Mode:
+FORM_LABEL_MODE_PLAY=Play
+FORM_LABEL_MODE_STOP=Stop
+FORM_LABEL_MODE_RECORD=Record
+FORM_LABEL_SAVE=Save
+FORM_LABEL_PLAY_FILE=Play file:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Enter a play file.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Web Services Explorer Internal Work Area
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Web Services Explorer Toolbar
+FRAME_TITLE_PERSPECTIVE_CONTENT=Web Services Explorer Page Content
+FRAME_TITLE_WSDL_TOOLBAR=WSDL Browser Toolbar
+FRAME_TITLE_WSDL_CONTENT=WSDL Browser Content
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Page Loader
+FORM_TITLE_PAGE_CONTENT=Loaded Page Content
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Launch Web Service Wizard Form
+FORM_TITLE_IMPORT_TO_WORKBENCH=Import to Workbench Form
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_de.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_de.properties
new file mode 100644
index 000000000..642ced321
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_de.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Web-Service-Explorer
+
+# Tree Nodes
+ALT_OPEN=\u00d6ffnen
+ALT_CLOSE=Schlie\u00dfen
+
+# Perspective Toolbar
+ALT_BACK=Zur\u00fcck
+ALT_FORWARD=Weiter
+ALT_ACTION_ENGINE=Aktionsrecorder
+ALT_UDDI_PERSPECTIVE=UDDI-Seite
+ALT_WSIL_PERSPECTIVE=WSIL-Seite
+ALT_WSDL_PERSPECTIVE=WSDL-Seite
+ALT_FAVORITES_PERSPECTIVE=Favoriten
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Zum Maximieren doppelt anklicken
+ALT_DOUBLE_CLICK_TO_RESTORE=Zum Wiederherstellen doppelt anklicken
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Seitenanfang
+
+# Common Actions
+ALT_REFRESH=Aktualisieren
+ALT_CLEAR=Inhalt l\u00f6schen
+ALT_RESULTS=Ergebnisse
+
+# Common Labels
+ALT_NAVIGATOR=Navigator
+ALT_ACTIONS=Aktionen
+ALT_STATUS=Status
+ALT_OTHER_ACTIONS=Andere Aktionen
+FORM_BUTTON_GO=&nbsp;&nbsp;Los&nbsp;&nbsp;
+FORM_BUTTON_RESET=Zur\u00fccksetzen
+FORM_BUTTON_CANCEL=Abbrechen
+FORM_LABEL_ACTIONS=Aktionen
+FORM_LABEL_ACTIONS_NONE=Keine
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=Alles ausw\u00e4hlen
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=Zeile ausw\u00e4hlen
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E Es ist ein unerwarteter Fehler aufgetreten.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E W\u00e4hlen Sie eine Aktion aus.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E W\u00e4hlen Sie einen Knoten aus.
+MSG_SUBMIT_IN_PROGRESS=Bitte warten. Die Operation ist noch nicht abgeschlossen.
+MSG_LOAD_IN_PROGRESS=Bitte warten Sie, das Formular wird geladen...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Web-Service-Assistent starten
+FORM_LABEL_CHOOSE_WIZARD=W\u00e4hlen Sie einen Assistenten aus, der gestartet werden soll:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Web-Service-Client
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Web-Service-Ger\u00fcst
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Ein Web-Service-Assistent l\u00e4uft bereits. Beenden Sie diesen Assistenten, bevor Sie einen neuen starten.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E Das WSDL-Dokument ist nicht erreichbar.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=WSIL in Dateisystem importieren
+ALT_WSDL_IMPORT_TO_FS=WSDL in Dateisystem importieren
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E WSDL-Dokument kann nicht abgerufen werden.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E WSIL-Dokument kann nicht abgerufen werden.
+MSG_IMPORT_WSDL_SUCCESSFUL=WSDL-Dokument wurde erfolgreich importiert.
+MSG_IMPORT_WSIL_SUCCESSFUL=WSIL-Dokument wurde erfolgreich importiert.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=WSDL in Workbench importieren
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=W\u00e4hlen Sie ein Workbench-Projekt aus, in dem die WSDL-Datei gespeichert werden soll. Sie k\u00f6nnen auch den Namen der WSDL-Datei \u00e4ndern.
+WEB_PROJECT_NAME=Webprojekt:
+WORKBENCH_PROJECT_NAME=Workbench-Projekt:
+LABEL_IMPORT_WSDL=WSDL-Dokument importieren
+LABEL_IMPORT_TO_WSIL=Als einen Serviceverweis auf ein WSIL-Dokument importieren
+IMPORTED_WSDL_FILE_NAME=WSDL-Dateiname:
+WSIL_FILE_NAME=WSIL-Dateiname:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=Die Datei "%2" kann nicht auf den Pfad "%1" bezogen erstellt werden, weil das automatische \u00dcberschreiben von Dateien nicht aktiviert wurde. Soll diese Funktion f\u00fcr diese Datei aktiviert werden?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E W\u00e4hlen Sie ein Workbench-Projekt aus.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Ung\u00fcltiger Dateiname.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Ung\u00fcltiger WSIL-Dateiname.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E Es wurde keine Importoption ausgew\u00e4hlt. W\u00e4hlen Sie bitte mindestens eine Importoption aus.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E Tempor\u00e4re Datei kann nicht geschrieben werden.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 wurde erfolgreich in die Workbench importiert.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I Serviceverweis wurde erfolgreich in %1 importiert.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=Die Datei "%2" kann nicht auf den Pfad "%1" bezogen erstellt werden, weil der automatische Datei-Check-out nicht aktiviert wurde. Soll diese Funktion f\u00fcr diese Datei aktiviert werden?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 gel\u00f6scht.
+
+# Table twistees
+ALT_TWIST_OPENED=Ausblenden
+ALT_TWIST_CLOSED=Einblenden
+
+# WSDL Browser
+FORM_LINK_BROWSE=Durchsuchen...
+TITLE_WSDL_BROWSER=WSDL-Browser - %1
+FORM_LABEL_WSDL_SOURCE=W\u00e4hlen Sie eine WSDL-Quelle aus:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Webprojekte
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoriten
+FORM_LABEL_WEB_PROJECT=Webprojekt
+FORM_LABEL_WSDL_URL=WSDL-URL
+FORM_BUTTON_REFRESH=Aktualisieren
+ALT_WSDL_BROWSER=WSDL-Browser
+WSDL_TYPE_SERVICE_INTERFACES=Serviceschnittstellen
+WSDL_TYPE_SERVICES=Services
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Kalenderbrowser
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=So
+FORM_LABEL_SH_MONDAY=Mo
+FORM_LABEL_SH_TUESDAY=Di
+FORM_LABEL_SH_WEDNESDAY=Mi
+FORM_LABEL_SH_THURSDAY=Do
+FORM_LABEL_SH_FRIDAY=Fr
+FORM_LABEL_SH_SATURDAY=Sa
+# Months of the year
+FORM_LABEL_MONTH=Monat:
+FORM_LABEL_JANUARY=Januar
+FORM_LABEL_FEBRUARY=Februar
+FORM_LABEL_MARCH=M\u00e4rz
+FORM_LABEL_APRIL=April
+FORM_LABEL_MAY=Mai
+FORM_LABEL_JUNE=Juni
+FORM_LABEL_JULY=Juli
+FORM_LABEL_AUGUST=August
+FORM_LABEL_SEPTEMBER=September
+FORM_LABEL_OCTOBER=Oktober
+FORM_LABEL_NOVEMBER=November
+FORM_LABEL_DECEMBER=Dezember
+FORM_LABEL_YEAR=Jahr:
+FORM_LABEL_TIME=Zeit:
+FORM_LINK_TODAY=Heute
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=Letztes Jahr
+ALT_PREVIOUS_MONTH=Letzter Monat
+ALT_NEXT_MONTH=N\u00e4chster Monat
+ALT_NEXT_YEAR=N\u00e4chstes Jahr
+ALT_TODAY=Heute
+ALT_CALENDAR_BROWSER=Kalenderbrowser
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E Die Zeit wurde nicht im Format HH:MM:SS[.SSS] angegeben. Soll stattdessen die aktuelle Zeit verwendet werden?
+
+# Action engine
+TITLE_ACTION_RECORDER=Aktionsrecorder
+FORM_LABEL_MODE=Modus:
+FORM_LABEL_MODE_PLAY=Wiedergabe
+FORM_LABEL_MODE_STOP=Stopp
+FORM_LABEL_MODE_RECORD=Aufzeichnen
+FORM_LABEL_SAVE=Speichern
+FORM_LABEL_PLAY_FILE=Wiedergabedatei:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Geben Sie eine Wiedergabedatei ein.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Web-Service-Explorer - Interner Arbeitsbereich
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Web-Service-Explorer - Symbolleiste
+FRAME_TITLE_PERSPECTIVE_CONTENT=Web-Service-Explorer - Seiteninhalt
+FRAME_TITLE_WSDL_TOOLBAR=WSDL-Browser - Symbolleiste
+FRAME_TITLE_WSDL_CONTENT=WSDL-Browser - Inhalt
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Seitenladeprogramm
+FORM_TITLE_PAGE_CONTENT=Geladener Seiteninhalt
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Web-Service-Assistentenformular starten
+FORM_TITLE_IMPORT_TO_WORKBENCH=In Workbench-Formular importieren
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_es.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_es.properties
new file mode 100644
index 000000000..e241e2be2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_es.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Explorador de servicios Web
+
+# Tree Nodes
+ALT_OPEN=Abrir
+ALT_CLOSE=Cerrar
+
+# Perspective Toolbar
+ALT_BACK=Anterior
+ALT_FORWARD=Siguiente
+ALT_ACTION_ENGINE=Grabador de acciones
+ALT_UDDI_PERSPECTIVE=P\u00e1gina UDDI
+ALT_WSIL_PERSPECTIVE=P\u00e1gina WSIL
+ALT_WSDL_PERSPECTIVE=P\u00e1gina WSDL
+ALT_FAVORITES_PERSPECTIVE=Favoritos
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Doble pulsaci\u00f3n para maximizar
+ALT_DOUBLE_CLICK_TO_RESTORE=Doble pulsaci\u00f3n para restaurar
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Volver al inicio
+
+# Common Actions
+ALT_REFRESH=Renovar
+ALT_CLEAR=Borrar
+ALT_RESULTS=Resultados
+
+# Common Labels
+ALT_NAVIGATOR=Navegador
+ALT_ACTIONS=Acciones
+ALT_STATUS=Estado
+ALT_OTHER_ACTIONS=Otras acciones
+FORM_BUTTON_GO=&nbsp;&nbsp;Ir&nbsp;&nbsp;
+FORM_BUTTON_RESET=Restablecer
+FORM_BUTTON_CANCEL=Cancelar
+FORM_LABEL_ACTIONS=Acciones
+FORM_LABEL_ACTIONS_NONE=Ninguna
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=Seleccionar todo
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=Seleccionar fila
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E Se ha producido un error inesperado.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E Seleccione una acci\u00f3n.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E Seleccione un nodo.
+MSG_SUBMIT_IN_PROGRESS=Por favor, espere. La operaci\u00f3n est\u00e1 todav\u00eda en proceso.
+MSG_LOAD_IN_PROGRESS=Espere mientras se carga el formulario...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Lanzar asistente de servicio Web
+FORM_LABEL_CHOOSE_WIZARD=Seleccione un asistente a lanzar:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Cliente de servicio Web
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Esqueleto de servicio Web
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Ya hay un asistente de servicio Web en proceso. Termine con el asistente existente antes de lanzar uno nuevo.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E El documento WSDL no es alcanzable.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importar WSIL al sistema de archivos
+ALT_WSDL_IMPORT_TO_FS=Importar WSDL al sistema de archivos
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E No se puede recuperar el documento WSDL.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E No se puede recuperar el documento WSIL.
+MSG_IMPORT_WSDL_SUCCESSFUL=El documento WSDL se ha importado satisfactoriamente.
+MSG_IMPORT_WSIL_SUCCESSFUL=El documento WSIL se ha importado satisfactoriamente.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=Importar WSDL a entorno de trabajo
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=Seleccione un proyecto en el que guardar el archivo WSDL. Tambi\u00e9n puede cambiar el nombre del archivo WSDL.
+WEB_PROJECT_NAME=Proyecto Web:
+WORKBENCH_PROJECT_NAME=Proyecto de entorno de trabajo:
+LABEL_IMPORT_WSDL=Importar documento WSDL
+LABEL_IMPORT_TO_WSIL=Importar como referencia de servicio a un documento WSIL
+IMPORTED_WSDL_FILE_NAME=Nombre de archivo WSDL:
+WSIL_FILE_NAME=Nombre de archivo WSIL:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=IWAB0164E No se puede crear el archivo %2 relativo a la v\u00eda de acceso %1 debido a que la sobrescritura autom\u00e1tica de archivos no se ha habilitado. \u00bfDesea habilitarla para este archivo?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E Seleccione un proyecto de entorno de trabajo.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Nombre de archivo no v\u00e1lido.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Nombre de archivo WSIL no v\u00e1lido.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E No se ha seleccionado ninguna opci\u00f3n de importaci\u00f3n. Elija una opci\u00f3n de importaci\u00f3n como m\u00ednimo.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E No se puede escribir en el archivo temporal.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 se ha importado satisfactoriamente en el entorno de trabajo.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I La referencia de servicio se ha importado satisfactoriamente a %1.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=IWAB0164E No se puede crear el archivo %2 relativo a la v\u00eda de acceso %1 debido a que la reserva autom\u00e1tica de archivos no se ha habilitado. \u00bfDesea habilitarla para este archivo?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 borrado.
+
+# Table twistees
+ALT_TWIST_OPENED=Ocultar
+ALT_TWIST_CLOSED=Expandir
+
+# WSDL Browser
+FORM_LINK_BROWSE=Examinar...
+TITLE_WSDL_BROWSER=Navegador WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Seleccione un origen WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Proyectos Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoritos
+FORM_LABEL_WEB_PROJECT=Proyecto Web
+FORM_LABEL_WSDL_URL=URL WSDL
+FORM_BUTTON_REFRESH=Renovar
+ALT_WSDL_BROWSER=Navegador WSDL
+WSDL_TYPE_SERVICE_INTERFACES=Interfaces de servicio
+WSDL_TYPE_SERVICES=Servicios
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Navegador de calendario
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Do
+FORM_LABEL_SH_MONDAY=Lu
+FORM_LABEL_SH_TUESDAY=Ma
+FORM_LABEL_SH_WEDNESDAY=Mi
+FORM_LABEL_SH_THURSDAY=Ju
+FORM_LABEL_SH_FRIDAY=Vi
+FORM_LABEL_SH_SATURDAY=S\u00e1
+# Months of the year
+FORM_LABEL_MONTH=Mes:
+FORM_LABEL_JANUARY=Enero
+FORM_LABEL_FEBRUARY=Febrero
+FORM_LABEL_MARCH=Marzo
+FORM_LABEL_APRIL=Abril
+FORM_LABEL_MAY=Mayo
+FORM_LABEL_JUNE=Junio
+FORM_LABEL_JULY=Julio
+FORM_LABEL_AUGUST=Agosto
+FORM_LABEL_SEPTEMBER=Septiembre
+FORM_LABEL_OCTOBER=Octubre
+FORM_LABEL_NOVEMBER=Noviembre
+FORM_LABEL_DECEMBER=Diciembre
+FORM_LABEL_YEAR=A\u00f1o:
+FORM_LABEL_TIME=Hora:
+FORM_LINK_TODAY=Hoy
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=A\u00f1o anterior
+ALT_PREVIOUS_MONTH=Mes anterior
+ALT_NEXT_MONTH=Mes siguiente
+ALT_NEXT_YEAR=A\u00f1o siguiente
+ALT_TODAY=Hoy
+ALT_CALENDAR_BROWSER=Navegador de calendario
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E El formato de la hora no es HH:MM:SS[.SSS]. \u00bfDesea utilizar la hora actual en su lugar?
+
+# Action engine
+TITLE_ACTION_RECORDER=Grabador de acciones
+FORM_LABEL_MODE=Modalidad:
+FORM_LABEL_MODE_PLAY=Reproducir
+FORM_LABEL_MODE_STOP=Detener
+FORM_LABEL_MODE_RECORD=Grabar
+FORM_LABEL_SAVE=Guardar
+FORM_LABEL_PLAY_FILE=Archivo de reproducci\u00f3n:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Especifique un archivo de reproducci\u00f3n.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=\u00c1rea de trabajo interno del explorador de servicios Web
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Barra de herramientas del explorador de servicios Web
+FRAME_TITLE_PERSPECTIVE_CONTENT=Contenido de la p\u00e1gina del explorador de servicios Web
+FRAME_TITLE_WSDL_TOOLBAR=Barra de herramientas del navegador WSDL
+FRAME_TITLE_WSDL_CONTENT=Contenido del navegador WSDL
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Cargador de p\u00e1ginas
+FORM_TITLE_PAGE_CONTENT=Contenido de p\u00e1gina cargada
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Lanzar formulario del asistente de servicio Web
+FORM_TITLE_IMPORT_TO_WORKBENCH=Importar a formulario de entorno de trabajo
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_fr.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_fr.properties
new file mode 100644
index 000000000..0dc20a7f5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_fr.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Explorateur de services Web
+
+# Tree Nodes
+ALT_OPEN=Ouvrir
+ALT_CLOSE=Fermer
+
+# Perspective Toolbar
+ALT_BACK=Pr\u00e9c\u00e9dent
+ALT_FORWARD=Suivant
+ALT_ACTION_ENGINE=Moteur d'enregistrement des actions
+ALT_UDDI_PERSPECTIVE=Page UDDI
+ALT_WSIL_PERSPECTIVE=Page WSIL
+ALT_WSDL_PERSPECTIVE=Page WSDL
+ALT_FAVORITES_PERSPECTIVE=Favoris
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Cliquez deux fois pour agrandir
+ALT_DOUBLE_CLICK_TO_RESTORE=Cliquez deux fois pour restaurer
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Retour en haut de la page
+
+# Common Actions
+ALT_REFRESH=R\u00e9g\u00e9n\u00e9rer
+ALT_CLEAR=Effacer
+ALT_RESULTS=R\u00e9sultats
+
+# Common Labels
+ALT_NAVIGATOR=Navigateur
+ALT_ACTIONS=Actions
+ALT_STATUS=Etat
+ALT_OTHER_ACTIONS=Autres actions
+FORM_BUTTON_GO=&nbsp;&nbsp;OK&nbsp;&nbsp;
+FORM_BUTTON_RESET=Restaurer
+FORM_BUTTON_CANCEL=Annuler
+FORM_LABEL_ACTIONS=Actions
+FORM_LABEL_ACTIONS_NONE=Aucune
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=S\u00e9lectionner tout
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=S\u00e9lectionner la ligne
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E Une erreur inattendue s'est produite.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E S\u00e9lectionnez une action.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E S\u00e9lectionnez un noeud.
+MSG_SUBMIT_IN_PROGRESS=Veuillez patienter. L'op\u00e9ration est encore en cours d'ex\u00e9cution.
+MSG_LOAD_IN_PROGRESS=Veuillez patienter. Chargement du formulaire en cours...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Lancer l'assistant de services Web
+FORM_LABEL_CHOOSE_WIZARD=S\u00e9lectionnez un assistant \u00e0 lancer :
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Client du service Web
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Squelette du service Web
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Un assistant de service Web est d\u00e9j\u00e0 en cours d'ex\u00e9cution. Commencez par fermer l'assistant que vous utilisez avant de lancer un autre assistant.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E Le document WSDL est inaccessible.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importer un document WSIL dans le syst\u00e8me de fichiers
+ALT_WSDL_IMPORT_TO_FS=Importer un document WSDL dans le syst\u00e8me de fichiers
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E Impossible d'extraire le document WSDL.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E Impossible d'extraire le document WSIL.
+MSG_IMPORT_WSDL_SUCCESSFUL=Le document WSDL a \u00e9t\u00e9 import\u00e9.
+MSG_IMPORT_WSIL_SUCCESSFUL=Le document WSIL a \u00e9t\u00e9 import\u00e9.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=Importer un document WSDL dans le plan de travail
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=S\u00e9lectionnez un projet de plan de travail pour y sauvegarder le fichier WSDL. Vous pouvez aussi changer le nom du fichier WSDL.
+WEB_PROJECT_NAME=Projet Web :
+WORKBENCH_PROJECT_NAME=Projet de plan de travail :
+LABEL_IMPORT_WSDL=Importer le document WSDL
+LABEL_IMPORT_TO_WSIL=Importer comme r\u00e9f\u00e9rence de service dans un document WSIL
+IMPORTED_WSDL_FILE_NAME=Nom du fichier WSDL :
+WSIL_FILE_NAME=Nom du fichier WSIL :
+MSG_ERROR_FILE_OVERWRITE_DISABLED=Impossible de cr\u00e9er le fichier "%2" relativement au chemin "%1" car le remplacement automatique des fichiers n'a pas \u00e9t\u00e9 activ\u00e9. Voulez-vous l'activer pour ce fichier ?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E S\u00e9lectionnez un projet de plan de travail.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Nom de fichier non valide.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Nom de fichier WSIL non valide.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E Aucune option d'importation n'est s\u00e9lectionn\u00e9e. Choisissez au moins une option d'importation.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E Impossible d'enregistrer le fichier temporaire.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 a \u00e9t\u00e9 import\u00e9 dans le plan de travail.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I La r\u00e9f\u00e9rence de service a \u00e9t\u00e9 import\u00e9e dans %1.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=Impossible de cr\u00e9er le fichier "%2" relativement au chemin "%1" car la r\u00e9servation automatique des fichiers n'a pas \u00e9t\u00e9 activ\u00e9. Voulez-vous l'activer pour ce fichier ?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 effac\u00e9.
+
+# Table twistees
+ALT_TWIST_OPENED=Masquer
+ALT_TWIST_CLOSED=D\u00e9velopper
+
+# WSDL Browser
+FORM_LINK_BROWSE=Parcourir...
+TITLE_WSDL_BROWSER=Navigateur de WSDL - %1
+FORM_LABEL_WSDL_SOURCE=S\u00e9lectionnez la source WSDL :
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Projets Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoris
+FORM_LABEL_WEB_PROJECT=Projet Web
+FORM_LABEL_WSDL_URL=URL WSDL
+FORM_BUTTON_REFRESH=R\u00e9g\u00e9n\u00e9rer
+ALT_WSDL_BROWSER=Navigateur WSDL
+WSDL_TYPE_SERVICE_INTERFACES=Interfaces de service
+WSDL_TYPE_SERVICES=Services
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Navigateur de calendrier
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Di
+FORM_LABEL_SH_MONDAY=Lu
+FORM_LABEL_SH_TUESDAY=Ma
+FORM_LABEL_SH_WEDNESDAY=Me
+FORM_LABEL_SH_THURSDAY=Je
+FORM_LABEL_SH_FRIDAY=Ve
+FORM_LABEL_SH_SATURDAY=Sa
+# Months of the year
+FORM_LABEL_MONTH=Mois :
+FORM_LABEL_JANUARY=Janvier
+FORM_LABEL_FEBRUARY=F\u00e9vrier
+FORM_LABEL_MARCH=Mars
+FORM_LABEL_APRIL=Avril
+FORM_LABEL_MAY=Mai
+FORM_LABEL_JUNE=Juin
+FORM_LABEL_JULY=Juillet
+FORM_LABEL_AUGUST=Ao\u00fbt
+FORM_LABEL_SEPTEMBER=Septembre
+FORM_LABEL_OCTOBER=Octobre
+FORM_LABEL_NOVEMBER=Novembre
+FORM_LABEL_DECEMBER=D\u00e9cembre
+FORM_LABEL_YEAR=Ann\u00e9e :
+FORM_LABEL_TIME=Heure :
+FORM_LINK_TODAY=Aujourd'hui
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=Ann\u00e9e pr\u00e9c\u00e9dente
+ALT_PREVIOUS_MONTH=Mois pr\u00e9c\u00e9dent
+ALT_NEXT_MONTH=Mois suivant
+ALT_NEXT_YEAR=Ann\u00e9e suivante
+ALT_TODAY=Aujourd'hui
+ALT_CALENDAR_BROWSER=Navigateur de calendrier
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E L'heure n'a pas \u00e9t\u00e9 indiqu\u00e9e au format HH:MM:SS[.SSS]. Voulez-vous utiliser le format en cours ?
+
+# Action engine
+TITLE_ACTION_RECORDER=Moteur d'enregistrement des actions
+FORM_LABEL_MODE=Mode :
+FORM_LABEL_MODE_PLAY=Lecture
+FORM_LABEL_MODE_STOP=Arr\u00eat
+FORM_LABEL_MODE_RECORD=Enregistrement
+FORM_LABEL_SAVE=Sauvegarder
+FORM_LABEL_PLAY_FILE=Lire le fichier :
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Entrez un fichier \u00e0 lire.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Explorateur de services Web - Zone de travail
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Explorateur de services Web - Barre d'outils
+FRAME_TITLE_PERSPECTIVE_CONTENT=Explorateur de services Web - Contenu de la page
+FRAME_TITLE_WSDL_TOOLBAR=Navigateur WSDL - Barre d'outils
+FRAME_TITLE_WSDL_CONTENT=Navigateur WSDL - Contenu
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Chargeur de pages
+FORM_TITLE_PAGE_CONTENT=Contenu de la page charg\u00e9e
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Formulaire Assistant de lancement d'un service Web
+FORM_TITLE_IMPORT_TO_WORKBENCH=Formulaire Importation dans le plan de travail
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_it.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_it.properties
new file mode 100644
index 000000000..aa8e2c293
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_it.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Esplora servizi Web
+
+# Tree Nodes
+ALT_OPEN=Apri
+ALT_CLOSE=Chiudi
+
+# Perspective Toolbar
+ALT_BACK=Indietro
+ALT_FORWARD=Avanti
+ALT_ACTION_ENGINE=Registratore azioni
+ALT_UDDI_PERSPECTIVE=Pagina UDDI
+ALT_WSIL_PERSPECTIVE=Pagina WSIL
+ALT_WSDL_PERSPECTIVE=Pagina WSDL
+ALT_FAVORITES_PERSPECTIVE=Preferiti
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Fare doppio clic per ingrandire
+ALT_DOUBLE_CLICK_TO_RESTORE=Fare doppio clic per ripristinare
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Torna all'inizio
+
+# Common Actions
+ALT_REFRESH=Aggiorna
+ALT_CLEAR=Cancella
+ALT_RESULTS=Risultati
+
+# Common Labels
+ALT_NAVIGATOR=Selezione
+ALT_ACTIONS=Azioni
+ALT_STATUS=Stato
+ALT_OTHER_ACTIONS=Altre azioni
+FORM_BUTTON_GO=&nbsp;&nbsp;Vai&nbsp;&nbsp;
+FORM_BUTTON_RESET=Reimposta
+FORM_BUTTON_CANCEL=Annulla
+FORM_LABEL_ACTIONS=Azioni
+FORM_LABEL_ACTIONS_NONE=Nessuna
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=Seleziona tutto
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=Seleziona riga
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E Si \u00e8 verificato un errore imprevisto.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E Selezionare un'azione.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E Selezionare un nodo.
+MSG_SUBMIT_IN_PROGRESS=Attendere. L'operazione \u00e8 ancora in corso.
+MSG_LOAD_IN_PROGRESS=Attendere il caricamento del modulo...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Avvio procedura guidata servizi Web
+FORM_LABEL_CHOOSE_WIZARD=Selezionare una procedura guidata da avviare:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Client di servizi Web
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Struttura del servizio Web
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Una procedura guidata dei servizi Web \u00e8 gi\u00e0 in esecuzione. Completare la procedura guidata esistente prima di avviare una nuova procedura.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E Il documento WSDL non \u00e8 raggiungibile.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importa WSIL nel filesystem
+ALT_WSDL_IMPORT_TO_FS=Importa WSDL nel filesystem
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E Impossibile richiamare il documento WSDL.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E Impossibile richiamare il documento WSIL.
+MSG_IMPORT_WSDL_SUCCESSFUL=Documento WSDL importato correttamente.
+MSG_IMPORT_WSIL_SUCCESSFUL=Documento WSIL importato correttamente.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=Importa WSDL nel workbench
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=Selezionare un progetto del workbench in cui salvare il file WSDL. \u00c8 possibile anche modificare il nome del file WSDL.
+WEB_PROJECT_NAME=Progetto Web:
+WORKBENCH_PROJECT_NAME=Progetto workbench:
+LABEL_IMPORT_WSDL=Importa documento WSDL
+LABEL_IMPORT_TO_WSIL=Importa come un riferimento di servizio in un documento WSIL
+IMPORTED_WSDL_FILE_NAME=Nome file WSDL:
+WSIL_FILE_NAME=Nome file WSIL:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=Impossibile creare il file "%2" relativo al percorso "%1". Non \u00e8 stata abilitata la sovrascrittura automatica dei file. Si desidera attivarla per questo file?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E Selezionare un progetto del workbench.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Nome file non valido.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Nome file WSIL non valido.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E Nessuna opzione di importazione selezionata. Scegliere almeno un'opzione di importazione.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E Impossibile scrivere il file temporaneo.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 \u00e8 stato importato correttamente nel workbench.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I Il riferimento di servizio \u00e8 stato importato correttamente in %1.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=Impossibile creare il file "%2" relativo al percorso "%1". Non \u00e8 stata abilitata l'estrazione automatica dei file. Si desidera attivarla per questo file?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 cancellato.
+
+# Table twistees
+ALT_TWIST_OPENED=Nascondi
+ALT_TWIST_CLOSED=Espandi
+
+# WSDL Browser
+FORM_LINK_BROWSE=Sfoglia...
+TITLE_WSDL_BROWSER=Browser WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Selezionare un'origine WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Progetti Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Preferiti
+FORM_LABEL_WEB_PROJECT=Progetto Web
+FORM_LABEL_WSDL_URL=URL WSDL
+FORM_BUTTON_REFRESH=Aggiorna
+ALT_WSDL_BROWSER=Browser WSDL
+WSDL_TYPE_SERVICE_INTERFACES=Interfacce di servizio
+WSDL_TYPE_SERVICES=Servizi
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Browser calendario
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Do
+FORM_LABEL_SH_MONDAY=Lu
+FORM_LABEL_SH_TUESDAY=Ma
+FORM_LABEL_SH_WEDNESDAY=Me
+FORM_LABEL_SH_THURSDAY=Gi
+FORM_LABEL_SH_FRIDAY=Ve
+FORM_LABEL_SH_SATURDAY=Sa
+# Months of the year
+FORM_LABEL_MONTH=Mese:
+FORM_LABEL_JANUARY=Gennaio
+FORM_LABEL_FEBRUARY=Febbraio
+FORM_LABEL_MARCH=Marzo
+FORM_LABEL_APRIL=Aprile
+FORM_LABEL_MAY=Maggio
+FORM_LABEL_JUNE=Giugno
+FORM_LABEL_JULY=Luglio
+FORM_LABEL_AUGUST=Agosto
+FORM_LABEL_SEPTEMBER=Settembre
+FORM_LABEL_OCTOBER=Ottobre
+FORM_LABEL_NOVEMBER=Novembre
+FORM_LABEL_DECEMBER=Dicembre
+FORM_LABEL_YEAR=Anno:
+FORM_LABEL_TIME=Ora:
+FORM_LINK_TODAY=Oggi
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=Anno precedente
+ALT_PREVIOUS_MONTH=Mese precedente
+ALT_NEXT_MONTH=Mese successivo
+ALT_NEXT_YEAR=Anno successivo
+ALT_TODAY=Oggi
+ALT_CALENDAR_BROWSER=Browser calendario
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E L'orario non \u00e8 formattato come HH:MM:SS[.SSS]. Utilizzare l'orario corrente?
+
+# Action engine
+TITLE_ACTION_RECORDER=Registratore azioni
+FORM_LABEL_MODE=Modalit\u00e0:
+FORM_LABEL_MODE_PLAY=Riproduci
+FORM_LABEL_MODE_STOP=Termina
+FORM_LABEL_MODE_RECORD=Registra
+FORM_LABEL_SAVE=Salva
+FORM_LABEL_PLAY_FILE=Riproduci file:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Specificare un file da riprodurre.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Area di lavoro interna Esplora Servizi Web
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Barra degli strumenti Esplora Servizi Web
+FRAME_TITLE_PERSPECTIVE_CONTENT=Contenuto della pagina Esplora Servizi Web
+FRAME_TITLE_WSDL_TOOLBAR=Barra degli strumenti del browser WSDL
+FRAME_TITLE_WSDL_CONTENT=Contenuto del browser WSDL
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Caricatore pagina
+FORM_TITLE_PAGE_CONTENT=Contenuto pagina caricata
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Avvio modulo procedura guidata servizi Web
+FORM_TITLE_IMPORT_TO_WORKBENCH=Importazione nel modulo del workbench
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ja.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ja.properties
new file mode 100644
index 000000000..aab759a1c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ja.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc
+
+# Tree Nodes
+ALT_OPEN=\u958b\u304f
+ALT_CLOSE=\u9589\u3058\u308b
+
+# Perspective Toolbar
+ALT_BACK=\u623b\u308b
+ALT_FORWARD=\u9032\u3080
+ALT_ACTION_ENGINE=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30ec\u30b3\u30fc\u30c0\u30fc
+ALT_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8
+ALT_WSIL_PERSPECTIVE=WSIL \u30da\u30fc\u30b8
+ALT_WSDL_PERSPECTIVE=WSDL \u30da\u30fc\u30b8
+ALT_FAVORITES_PERSPECTIVE=\u304a\u6c17\u306b\u5165\u308a
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u6700\u5927\u5316\u3059\u308b
+ALT_DOUBLE_CLICK_TO_RESTORE=\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u5fa9\u5143\u3059\u308b
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=\u30c8\u30c3\u30d7\u306b\u623b\u308b
+
+# Common Actions
+ALT_REFRESH=\u66f4\u65b0
+ALT_CLEAR=\u30af\u30ea\u30a2
+ALT_RESULTS=\u7d50\u679c
+
+# Common Labels
+ALT_NAVIGATOR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc
+ALT_ACTIONS=\u30a2\u30af\u30b7\u30e7\u30f3
+ALT_STATUS=\u72b6\u6cc1
+ALT_OTHER_ACTIONS=\u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3
+FORM_BUTTON_GO=&nbsp;&nbsp;\u5b9f\u884c&nbsp;&nbsp;
+FORM_BUTTON_RESET=\u30ea\u30bb\u30c3\u30c8
+FORM_BUTTON_CANCEL=\u30ad\u30e3\u30f3\u30bb\u30eb
+FORM_LABEL_ACTIONS=\u30a2\u30af\u30b7\u30e7\u30f3
+FORM_LABEL_ACTIONS_NONE=\u306a\u3057
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=\u3059\u3079\u3066\u9078\u629e
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=\u884c\u306e\u9078\u629e
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E \u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E \u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E \u30ce\u30fc\u30c9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_SUBMIT_IN_PROGRESS=\u304a\u5f85\u3061\u304f\u3060\u3055\u3044\u3002 \u64cd\u4f5c\u304c\u7d42\u4e86\u3057\u3066\u3044\u307e\u305b\u3093\u3002
+MSG_LOAD_IN_PROGRESS=\u66f8\u5f0f\u306e\u30ed\u30fc\u30c9\u304c\u5b8c\u4e86\u3059\u308b\u307e\u3067\u304a\u5f85\u3061\u304f\u3060\u3055\u3044...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=\u300cWeb \u30b5\u30fc\u30d3\u30b9\u8d77\u52d5\u300d\u30a6\u30a3\u30b6\u30fc\u30c9
+FORM_LABEL_CHOOSE_WIZARD=\u8d77\u52d5\u3059\u308b\u30a6\u30a3\u30b6\u30fc\u30c9\u306e\u9078\u629e:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30af\u30e9\u30a4\u30a2\u30f3\u30c8
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30b9\u30b1\u30eb\u30c8\u30f3
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30a6\u30a3\u30b6\u30fc\u30c9\u306f\u3059\u3067\u306b\u8d77\u52d5\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u65e2\u5b58\u306e\u30a6\u30a3\u30b6\u30fc\u30c9\u3092\u7d42\u4e86\u3057\u3066\u304b\u3089\u3001\u65b0\u898f\u30a6\u30a3\u30b6\u30fc\u30c9\u3092\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E WSDL \u6587\u66f8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u30d5\u30a1\u30a4\u30eb\u30fb\u30b7\u30b9\u30c6\u30e0\u3078\u306e WSIL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+ALT_WSDL_IMPORT_TO_FS=\u30d5\u30a1\u30a4\u30eb\u30fb\u30b7\u30b9\u30c6\u30e0\u3078\u306e WSDL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E WSDL \u6587\u66f8\u3092\u691c\u7d22\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E WSIL \u6587\u66f8\u3092\u691c\u7d22\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_IMPORT_WSDL_SUCCESSFUL=WSDL \u6587\u66f8\u304c\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_IMPORT_WSIL_SUCCESSFUL=WSIL \u6587\u66f8\u304c\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3057\u305f\u3002
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u3078\u306e WSDL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=WSDL \u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u7ba1\u3059\u308b\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e\u3057\u307e\u3059\u3002 WSDL \u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002
+WEB_PROJECT_NAME=Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8:
+WORKBENCH_PROJECT_NAME=\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8:
+LABEL_IMPORT_WSDL=WSDL \u6587\u66f8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+LABEL_IMPORT_TO_WSIL=WSIL \u6587\u66f8\u3078\u306e\u30b5\u30fc\u30d3\u30b9\u53c2\u7167\u3068\u3057\u3066\u30a4\u30f3\u30dd\u30fc\u30c8
+IMPORTED_WSDL_FILE_NAME=WSDL \u30d5\u30a1\u30a4\u30eb\u540d:
+WSIL_FILE_NAME=WSIL \u30d5\u30a1\u30a4\u30eb\u540d:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=\u81ea\u52d5\u30d5\u30a1\u30a4\u30eb\u4e0a\u66f8\u304d\u304c\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u30d1\u30b9 "%1" \u3092\u57fa\u6e96\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb "%2" \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u3053\u308c\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3057\u307e\u3059\u304b?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E \u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E \u30d5\u30a1\u30a4\u30eb\u540d\u304c\u7121\u52b9\u3067\u3059\u3002
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E WSIL \u30d5\u30a1\u30a4\u30eb\u540d\u304c\u7121\u52b9\u3067\u3059\u3002
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E \u30a4\u30f3\u30dd\u30fc\u30c8\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 \u5c11\u306a\u304f\u3066\u3082 1 \u3064\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 \u304c\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u306b\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I \u30b5\u30fc\u30d3\u30b9\u53c2\u7167\u304c %1 \u306b\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3057\u305f\u3002
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=\u81ea\u52d5\u30d5\u30a1\u30a4\u30eb\u30fb\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u304c\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u30d1\u30b9 "%1" \u3092\u57fa\u6e96\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb "%2" \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u3053\u308c\u3092\u4f7f\u7528\u53ef\u80fd\u306b\u3057\u307e\u3059\u304b?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 \u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3057\u305f\u3002
+
+# Table twistees
+ALT_TWIST_OPENED=\u975e\u8868\u793a
+ALT_TWIST_CLOSED=\u5c55\u958b
+
+# WSDL Browser
+FORM_LINK_BROWSE=\u53c2\u7167...
+TITLE_WSDL_BROWSER=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc - %1
+FORM_LABEL_WSDL_SOURCE=WSDL \u30bd\u30fc\u30b9\u306e\u9078\u629e:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u304a\u6c17\u306b\u5165\u308a
+FORM_LABEL_WEB_PROJECT=Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8
+FORM_LABEL_WSDL_URL=WSDL URL
+FORM_BUTTON_REFRESH=\u66f4\u65b0
+ALT_WSDL_BROWSER=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc
+WSDL_TYPE_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+WSDL_TYPE_SERVICES=\u30b5\u30fc\u30d3\u30b9
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=\u30ab\u30ec\u30f3\u30c0\u30fc\u30fb\u30d6\u30e9\u30a6\u30b6\u30fc
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=\u65e5
+FORM_LABEL_SH_MONDAY=\u6708
+FORM_LABEL_SH_TUESDAY=\u706b
+FORM_LABEL_SH_WEDNESDAY=\u6c34
+FORM_LABEL_SH_THURSDAY=\u6728
+FORM_LABEL_SH_FRIDAY=\u91d1
+FORM_LABEL_SH_SATURDAY=\u571f
+# Months of the year
+FORM_LABEL_MONTH=\u6708:
+FORM_LABEL_JANUARY=1 \u6708
+FORM_LABEL_FEBRUARY=2 \u6708
+FORM_LABEL_MARCH=3 \u6708
+FORM_LABEL_APRIL=4 \u6708
+FORM_LABEL_MAY=5 \u6708
+FORM_LABEL_JUNE=6 \u6708
+FORM_LABEL_JULY=7 \u6708
+FORM_LABEL_AUGUST=8 \u6708
+FORM_LABEL_SEPTEMBER=9 \u6708
+FORM_LABEL_OCTOBER=10 \u6708
+FORM_LABEL_NOVEMBER=11 \u6708
+FORM_LABEL_DECEMBER=12 \u6708
+FORM_LABEL_YEAR=\u5e74:
+FORM_LABEL_TIME=\u6642\u523b:
+FORM_LINK_TODAY=\u4eca\u65e5
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=\u524d\u5e74
+ALT_PREVIOUS_MONTH=\u524d\u6708
+ALT_NEXT_MONTH=\u7fcc\u6708
+ALT_NEXT_YEAR=\u7fcc\u5e74
+ALT_TODAY=\u4eca\u65e5
+ALT_CALENDAR_BROWSER=\u30ab\u30ec\u30f3\u30c0\u30fc\u30fb\u30d6\u30e9\u30a6\u30b6\u30fc
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E \u6642\u523b\u304c HH:MM:SS[.SSS] \u306e\u5f62\u5f0f\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 \u4ee3\u308f\u308a\u306b\u73fe\u5728\u6642\u523b\u3092\u4f7f\u7528\u3057\u307e\u3059\u304b?
+
+# Action engine
+TITLE_ACTION_RECORDER=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30ec\u30b3\u30fc\u30c0\u30fc
+FORM_LABEL_MODE=\u30e2\u30fc\u30c9:
+FORM_LABEL_MODE_PLAY=\u518d\u751f
+FORM_LABEL_MODE_STOP=\u505c\u6b62
+FORM_LABEL_MODE_RECORD=\u8a18\u9332
+FORM_LABEL_SAVE=\u4fdd\u7ba1
+FORM_LABEL_PLAY_FILE=\u518d\u751f\u30d5\u30a1\u30a4\u30eb:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E \u518d\u751f\u30d5\u30a1\u30a4\u30eb\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc\u4f5c\u696d\u30a8\u30ea\u30a2
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_PERSPECTIVE_CONTENT=Web \u30b5\u30fc\u30d3\u30b9\u30fb\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc\u30fb\u30da\u30fc\u30b8\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_WSDL_CONTENT=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=\u30da\u30fc\u30b8\u30fb\u30ed\u30fc\u30c0\u30fc
+FORM_TITLE_PAGE_CONTENT=\u30ed\u30fc\u30c9\u3055\u308c\u305f\u30da\u30fc\u30b8\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Web \u30b5\u30fc\u30d3\u30b9\u8d77\u52d5\u30a6\u30a3\u30b6\u30fc\u30c9\u306e\u66f8\u5f0f
+FORM_TITLE_IMPORT_TO_WORKBENCH=\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u66f8\u5f0f\u3078\u306e\u30a4\u30f3\u30dd\u30fc\u30c8
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ko.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ko.properties
new file mode 100644
index 000000000..572c18690
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_ko.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=\uc6f9 \uc11c\ube44\uc2a4 \ud0d0\uc0c9\uae30
+
+# Tree Nodes
+ALT_OPEN=\uc5f4\uae30
+ALT_CLOSE=\ub2eb\uae30
+
+# Perspective Toolbar
+ALT_BACK=\uc774\uc804
+ALT_FORWARD=\ub2e4\uc74c
+ALT_ACTION_ENGINE=\uc870\uce58 \ub808\ucf54\ub354
+ALT_UDDI_PERSPECTIVE=UDDI \ud398\uc774\uc9c0
+ALT_WSIL_PERSPECTIVE=WSIL \ud398\uc774\uc9c0
+ALT_WSDL_PERSPECTIVE=WSDL \ud398\uc774\uc9c0
+ALT_FAVORITES_PERSPECTIVE=\uc990\uaca8\ucc3e\uae30
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=\ucd5c\ub300\ud654\ud558\ub824\uba74 \ub354\ube14 \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+ALT_DOUBLE_CLICK_TO_RESTORE=\ubcf5\uc6d0\ud558\ub824\uba74 \ub354\ube14 \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=\ub2e4\uc2dc \ub9e8 \uc704\ub85c
+
+# Common Actions
+ALT_REFRESH=\uc0c8\ub85c \uace0\uce58\uae30
+ALT_CLEAR=\uc9c0\uc6b0\uae30
+ALT_RESULTS=\uacb0\uacfc
+
+# Common Labels
+ALT_NAVIGATOR=\ub124\ube44\uac8c\uc774\ud130
+ALT_ACTIONS=\uc870\uce58
+ALT_STATUS=\uc0c1\ud0dc
+ALT_OTHER_ACTIONS=\uae30\ud0c0 \uc870\uce58
+FORM_BUTTON_GO=&nbsp;&nbsp;\uc774\ub3d9&nbsp;&nbsp;
+FORM_BUTTON_RESET=\uc7ac\uc124\uc815
+FORM_BUTTON_CANCEL=\ucde8\uc18c
+FORM_LABEL_ACTIONS=\uc870\uce58
+FORM_LABEL_ACTIONS_NONE=\uc5c6\uc74c
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=\ubaa8\ub450 \uc120\ud0dd
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=\ud589 \uc120\ud0dd
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E \uc870\uce58\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E \ub178\ub4dc\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_SUBMIT_IN_PROGRESS=\uae30\ub2e4\ub9ac\uc2ed\uc2dc\uc624. \uc870\uc791\uc774 \uc9c4\ud589 \uc911\uc785\ub2c8\ub2e4.
+MSG_LOAD_IN_PROGRESS=\uc591\uc2dd\uc744 \ub85c\ub4dc\ud558\ub294 \ub3d9\uc548 \uae30\ub2e4\ub9ac\uc2ed\uc2dc\uc624...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=\uc6f9 \uc11c\ube44\uc2a4 \ub9c8\ubc95\uc0ac \uc2e4\ud589
+FORM_LABEL_CHOOSE_WIZARD=\uc2e4\ud589\ud560 \ub9c8\ubc95\uc0ac \uc120\ud0dd:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=\uc6f9 \uc11c\ube44\uc2a4 \ud074\ub77c\uc774\uc5b8\ud2b8
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=\uc6f9 \uc11c\ube44\uc2a4 \uc2a4\ucf08\ub808\ud1a4
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E \uc6f9 \uc11c\ube44\uc2a4 \ub9c8\ubc95\uc0ac\ub97c \uc774\ubbf8 \uc9c4\ud589 \uc911\uc785\ub2c8\ub2e4. \uc0c8 \ub9c8\ubc95\uc0ac\ub97c \uc2e4\ud589\ud558\uae30\uc804\uc5d0 \uae30\uc874 \ub9c8\ubc95\uc0ac\ub97c \uc644\ub8cc\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E WSDL \ubb38\uc11c\uc5d0 \ub3c4\ub2ec\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=WSIL\uc744 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc73c\ub85c \uac00\uc838\uc624\uae30
+ALT_WSDL_IMPORT_TO_FS=WSDL\uc744 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc73c\ub85c \uac00\uc838\uc624\uae30
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E WSDL \ubb38\uc11c\ub97c \uac80\uc0c9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E WSIL \ubb38\uc11c\ub97c \uac80\uc0c9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_IMPORT_WSDL_SUCCESSFUL=WSDL \ubb38\uc11c\ub97c \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4.
+MSG_IMPORT_WSIL_SUCCESSFUL=WSIL \ubb38\uc11c\ub97c \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=WSDL\uc744 Workbench\ub85c \uac00\uc838\uc624\uae30
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=WSDL \ud30c\uc77c\uc744 \uc800\uc7a5\ud558\ub824\uba74 Workbench \ud504\ub85c\uc81d\ud2b8\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624. WSDL \ud30c\uc77c\uc758 \uc774\ub984\uc744 \ubcc0\uacbd\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+WEB_PROJECT_NAME=\uc6f9 \ud504\ub85c\uc81d\ud2b8:
+WORKBENCH_PROJECT_NAME=Workbench \ud504\ub85c\uc81d\ud2b8:
+LABEL_IMPORT_WSDL=WSDL \ubb38\uc11c \uac00\uc838\uc624\uae30
+LABEL_IMPORT_TO_WSIL=WSIL \ubb38\uc11c\uc5d0 \ub300\ud55c \uc11c\ube44\uc2a4 \ucc38\uc870\ub85c \uac00\uc838\uc624\uae30
+IMPORTED_WSDL_FILE_NAME=WSDL \ud30c\uc77c \uc774\ub984:
+WSIL_FILE_NAME=WSIL \ud30c\uc77c \uc774\ub984:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=\uc790\ub3d9 \ud30c\uc77c \uacb9\uccd0\uc4f0\uae30\uac00 \uc0ac\uc6a9 \uac00\ub2a5\ud558\uc9c0 \uc54a\uc544\uc11c "%1" \uacbd\ub85c\uc5d0 \uc0c1\ub300\uc801\uc778 "%2" \ud30c\uc77c\uc744 \uc791\uc131\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ud30c\uc77c\uc5d0 \ub300\ud574 \uc790\ub3d9 \ud30c\uc77c \uacb9\uccd0\uc4f0\uae30\ub97c \uc0ac\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E Workbench \ud504\ub85c\uc81d\ud2b8\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \ud30c\uc77c \uc774\ub984.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 WSIL \ud30c\uc77c \uc774\ub984.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E \uac00\uc838\uc624\uae30 \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \uac00\uc838\uc624\uae30 \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E \uc784\uc2dc \ud30c\uc77c\uc5d0 \uc4f8 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1\uc744(\ub97c) Workbench\ub85c \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I \uc11c\ube44\uc2a4 \ucc38\uc870\ub97c %1(\uc73c)\ub85c \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=\uc790\ub3d9 \ud30c\uc77c \uccb4\ud06c\uc544\uc6c3\uc774 \uc0ac\uc6a9 \uac00\ub2a5\ud558\uc9c0 \uc54a\uc544\uc11c "%1" \uacbd\ub85c\uc5d0 \uc0c1\ub300\uc801\uc778 "%2" \ud30c\uc77c\uc744 \uc791\uc131\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ud30c\uc77c\uc5d0 \ub300\ud574 \uc790\ub3d9 \ud30c\uc77c \uccb4\ud06c\uc544\uc6c3\uc744 \uc0ac\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1\uc774(\uac00) \uc9c0\uc6cc\uc84c\uc2b5\ub2c8\ub2e4.
+
+# Table twistees
+ALT_TWIST_OPENED=\uc228\uae30\uae30
+ALT_TWIST_CLOSED=\ud3bc\uce58\uae30
+
+# WSDL Browser
+FORM_LINK_BROWSE=\ucc3e\uc544\ubcf4\uae30...
+TITLE_WSDL_BROWSER=WSDL \ube0c\ub77c\uc6b0\uc800 - %1
+FORM_LABEL_WSDL_SOURCE=WSDL \uc18c\uc2a4 \uc120\ud0dd:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=\uc6f9 \ud504\ub85c\uc81d\ud2b8
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\uc990\uaca8\ucc3e\uae30
+FORM_LABEL_WEB_PROJECT=\uc6f9 \ud504\ub85c\uc81d\ud2b8
+FORM_LABEL_WSDL_URL=WSDL URL
+FORM_BUTTON_REFRESH=\uc0c8\ub85c \uace0\uce58\uae30
+ALT_WSDL_BROWSER=WSDL \ube0c\ub77c\uc6b0\uc800
+WSDL_TYPE_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+WSDL_TYPE_SERVICES=\uc11c\ube44\uc2a4
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=\ub2ec\ub825 \ube0c\ub77c\uc6b0\uc800
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=\uc77c
+FORM_LABEL_SH_MONDAY=\uc6d4
+FORM_LABEL_SH_TUESDAY=\ud654
+FORM_LABEL_SH_WEDNESDAY=\uc218
+FORM_LABEL_SH_THURSDAY=\ubaa9
+FORM_LABEL_SH_FRIDAY=\uae08
+FORM_LABEL_SH_SATURDAY=\ud1a0
+# Months of the year
+FORM_LABEL_MONTH=\uc6d4:
+FORM_LABEL_JANUARY=1\uc6d4
+FORM_LABEL_FEBRUARY=2\uc6d4
+FORM_LABEL_MARCH=3\uc6d4
+FORM_LABEL_APRIL=4\uc6d4
+FORM_LABEL_MAY=5\uc6d4
+FORM_LABEL_JUNE=6\uc6d4
+FORM_LABEL_JULY=7\uc6d4
+FORM_LABEL_AUGUST=8\uc6d4
+FORM_LABEL_SEPTEMBER=9\uc6d4
+FORM_LABEL_OCTOBER=10\uc6d4
+FORM_LABEL_NOVEMBER=11\uc6d4
+FORM_LABEL_DECEMBER=12\uc6d4
+FORM_LABEL_YEAR=\uc5f0\ub3c4:
+FORM_LABEL_TIME=\uc2dc\uac04:
+FORM_LINK_TODAY=\uc624\ub298
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=\uc774\uc804 \uc5f0\ub3c4
+ALT_PREVIOUS_MONTH=\uc774\uc804 \uc6d4
+ALT_NEXT_MONTH=\ub2e4\uc74c \uc6d4
+ALT_NEXT_YEAR=\ub2e4\uc74c \uc5f0\ub3c4
+ALT_TODAY=\uc624\ub298
+ALT_CALENDAR_BROWSER=\ub2ec\ub825 \ube0c\ub77c\uc6b0\uc800
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E \uc2dc\uac04\uc774 HH:MM:SS[.SSS]\uc73c\ub85c \ud615\uc2dd\ud654\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub300\uc2e0 \ud604\uc7ac \uc2dc\uac04\uc744 \uc0ac\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? 2
+
+# Action engine
+TITLE_ACTION_RECORDER=\uc870\uce58 \ub808\ucf54\ub354
+FORM_LABEL_MODE=\ubaa8\ub4dc:
+FORM_LABEL_MODE_PLAY=\uc7ac\uc0dd
+FORM_LABEL_MODE_STOP=\uc911\uc9c0
+FORM_LABEL_MODE_RECORD=\ub808\ucf54\ub4dc
+FORM_LABEL_SAVE=\uc800\uc7a5
+FORM_LABEL_PLAY_FILE=\uc7ac\uc0dd \ud30c\uc77c:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E \uc7ac\uc0dd \ud30c\uc77c\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=\uc6f9 \uc11c\ube44\uc2a4 \ud0d0\uc0c9\uae30 \ub0b4\ubd80 \uc791\uc5c5 \uc601\uc5ed
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=\uc6f9\uc11c\ube44\uc2a4 \ud0d0\uc0c9\uae30 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_PERSPECTIVE_CONTENT=\uc6f9 \uc11c\ube44\uc2a4 \ud0d0\uc0c9\uae30 \ud398\uc774\uc9c0 \ucee8\ud150\uce20
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \ube0c\ub77c\uc6b0\uc800 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_WSDL_CONTENT=WSDL \ube0c\ub77c\uc6b0\uc800 \ucee8\ud150\uce20
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=\ud398\uc774\uc9c0 \ub85c\ub354
+FORM_TITLE_PAGE_CONTENT=\ub85c\ub4dc\ub41c \ud398\uc774\uc9c0 \ucee8\ud150\uce20
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=\uc6f9 \uc11c\ube44\uc2a4 \ub9c8\ubc95\uc0ac \uc591\uc2dd \uc2e4\ud589
+FORM_TITLE_IMPORT_TO_WORKBENCH=Workbench \uc591\uc2dd\uc73c\ub85c \uac00\uc838\uc624\uae30
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_pt_BR.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_pt_BR.properties
new file mode 100644
index 000000000..d9e00dcb6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_pt_BR.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Explorador de Servi\u00e7os da Web
+
+# Tree Nodes
+ALT_OPEN=Abrir
+ALT_CLOSE=Anterior
+
+# Perspective Toolbar
+ALT_BACK= Voltar
+ALT_FORWARD=Avan\u00e7ar
+ALT_ACTION_ENGINE=Gravador de A\u00e7\u00e3o
+ALT_UDDI_PERSPECTIVE=P\u00e1gina do UDDI
+ALT_WSIL_PERSPECTIVE=P\u00e1gina do WSIL
+ALT_WSDL_PERSPECTIVE=P\u00e1gina do WSDL
+ALT_FAVORITES_PERSPECTIVE=Favoritos
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=Clique Duplo para Maximizar
+ALT_DOUBLE_CLICK_TO_RESTORE=Clique Duplo para Restaurar
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=Voltar ao in\u00edcio da p\u00e1gina
+
+# Common Actions
+ALT_REFRESH=Atualizar
+ALT_CLEAR=Limpar
+ALT_RESULTS=Resultados
+
+# Common Labels
+ALT_NAVIGATOR=Navegador
+ALT_ACTIONS=A\u00e7\u00f5es
+ALT_STATUS=Status
+ALT_OTHER_ACTIONS=Outras A\u00e7\u00f5es
+FORM_BUTTON_GO=&nbsp;&nbsp;Ir&nbsp;&nbsp;
+FORM_BUTTON_RESET=Redefinir
+FORM_BUTTON_CANCEL=Cancelar
+FORM_LABEL_ACTIONS=A\u00e7\u00f5es
+FORM_LABEL_ACTIONS_NONE=Nenhum(a)
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=Selecionar Tudo
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=Selecionar linha
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E Ocorreu um erro inesperado.
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E Selecione uma a\u00e7\u00e3o.
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E Selecione um n\u00f3.
+MSG_SUBMIT_IN_PROGRESS=Aguarde. A opera\u00e7\u00e3o ainda est\u00e1 em progresso.
+MSG_LOAD_IN_PROGRESS=Aguarde enquanto o formul\u00e1rio \u00e9 carregado...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=Ativar Assistente para Servi\u00e7os da Web
+FORM_LABEL_CHOOSE_WIZARD=Selecionar um assistente para ativa\u00e7\u00e3o:
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Cliente de Servi\u00e7o da Web
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Esqueleto de Servi\u00e7o da Web
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Um assistente para servi\u00e7o da Web j\u00e1 est\u00e1 em progresso. Finalizar com o assistente existente antes de ativar um novo.
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E O documento WSDL n\u00e3o \u00e9 alcan\u00e7\u00e1vel.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importar WSIL Para o Sistema de Arquivos
+ALT_WSDL_IMPORT_TO_FS=Importar WSDL para o Sistema de Arquivos
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E Imposs\u00edvel recuperar documento WSDL.
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E Imposs\u00edvel recuperar documento WSIL.
+MSG_IMPORT_WSDL_SUCCESSFUL=Documento WSDL importado com \u00eaxito.
+MSG_IMPORT_WSIL_SUCCESSFUL=Documento WSIL importado com \u00eaxito.
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=Importar WSDL Para Workbench
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=Selecione um projeto do workbench no qual ir\u00e1 salvar o arquivo WSDL. Voc\u00ea tamb\u00e9m poder\u00e1 alterar o nome do arquivo WSDL.
+WEB_PROJECT_NAME=Projeto Web:
+WORKBENCH_PROJECT_NAME=Projeto do Workbench:
+LABEL_IMPORT_WSDL=Importar documento WSDL
+LABEL_IMPORT_TO_WSIL=Importar como uma refer\u00eancia de servi\u00e7o para um documento WSIL
+IMPORTED_WSDL_FILE_NAME=Nome do arquivo WSDL:
+WSIL_FILE_NAME=Nome do arquivo WSIL:
+MSG_ERROR_FILE_OVERWRITE_DISABLED=Imposs\u00edvel criar o arquivo "%2" relativo ao caminho "%1" porque sobrescrever arquivo automaticamente n\u00e3o foi ativado. Deseja ativ\u00e1-lo para este arquivo?
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E Selecione um projeto do workbench.
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E Nome de arquivo inv\u00e1lido.
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E Nome de arquivo WSIL inv\u00e1lido.
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E Nenhuma op\u00e7\u00e3o de importa\u00e7\u00e3o est\u00e1 selecionada. Escolha pelo menos uma op\u00e7\u00e3o de importa\u00e7\u00e3o.
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E Imposs\u00edvel gravar no arquivo tempor\u00e1rio.
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 foi importado com \u00eaxito para o workbench.
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I A refer\u00eancia de servi\u00e7o foi importada com \u00eaxito para %1.
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=Imposs\u00edvel criar o arquivo "%2" relativo ao caminho "%1" porque registro de sa\u00edda de arquivo autom\u00e1tico n\u00e3o foi ativado. Deseja ativ\u00e1-lo para este arquivo?
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I %1 limpo.
+
+# Table twistees
+ALT_TWIST_OPENED=Ocultar
+ALT_TWIST_CLOSED=Expandir
+
+# WSDL Browser
+FORM_LINK_BROWSE=Procurar..
+TITLE_WSDL_BROWSER=Navegador do WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Selecione uma origem do WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Projetos da Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoritos
+FORM_LABEL_WEB_PROJECT=Projeto da Web
+FORM_LABEL_WSDL_URL=URL do WSDL
+FORM_BUTTON_REFRESH=Atualizar
+ALT_WSDL_BROWSER=Navegador do WSDL
+WSDL_TYPE_SERVICE_INTERFACES=Interfaces de Servi\u00e7o
+WSDL_TYPE_SERVICES=Servi\u00e7os
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=Navegador do Calend\u00e1rio
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Dom
+FORM_LABEL_SH_MONDAY=Seg
+FORM_LABEL_SH_TUESDAY=Ter
+FORM_LABEL_SH_WEDNESDAY=Qua
+FORM_LABEL_SH_THURSDAY=Qui
+FORM_LABEL_SH_FRIDAY=Sex
+FORM_LABEL_SH_SATURDAY=S\u00e1b
+# Months of the year
+FORM_LABEL_MONTH=M\u00eas:
+FORM_LABEL_JANUARY=Janeiro
+FORM_LABEL_FEBRUARY=Fevereiro
+FORM_LABEL_MARCH=Mar\u00e7o
+FORM_LABEL_APRIL=Abri
+FORM_LABEL_MAY=Maio
+FORM_LABEL_JUNE=Junho
+FORM_LABEL_JULY=Julho
+FORM_LABEL_AUGUST=Agosto
+FORM_LABEL_SEPTEMBER=Setembro
+FORM_LABEL_OCTOBER=Outubro
+FORM_LABEL_NOVEMBER=Novembro
+FORM_LABEL_DECEMBER=Dezembro
+FORM_LABEL_YEAR=Ano:
+FORM_LABEL_TIME=Hora:
+FORM_LINK_TODAY=Hoje
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=Ano Anterior
+ALT_PREVIOUS_MONTH=M\u00eas Anterior
+ALT_NEXT_MONTH=Pr\u00f3ximo M\u00eas
+ALT_NEXT_YEAR=Pr\u00f3ximo Ano
+ALT_TODAY=Hoje
+ALT_CALENDAR_BROWSER=Navegador do Calend\u00e1rio
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E A hora n\u00e3o foi formatada como HH:MM:SS[.SSS]. Deseja utilizar a hora atual?
+
+# Action engine
+TITLE_ACTION_RECORDER=Gravador de A\u00e7\u00e3o
+FORM_LABEL_MODE=Modo:
+FORM_LABEL_MODE_PLAY=Reproduzir
+FORM_LABEL_MODE_STOP=Parar
+FORM_LABEL_MODE_RECORD=Registro
+FORM_LABEL_SAVE=Salvar
+FORM_LABEL_PLAY_FILE=Arquivo play:
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E Inserir um arquivo play.
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=\u00c1rea de Trabalho Interna do Explorador de Servi\u00e7os da Web
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Barra de Ferramentas do Explorador de Servi\u00e7os da Web
+FRAME_TITLE_PERSPECTIVE_CONTENT=Conte\u00fado da P\u00e1gina do Explorador de Servi\u00e7os da Web
+FRAME_TITLE_WSDL_TOOLBAR=Barras de Ferramentas do Navegador do WSDL
+FRAME_TITLE_WSDL_CONTENT=Conte\u00fado do Navegador do WSDL
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=Carregador de P\u00e1gina
+FORM_TITLE_PAGE_CONTENT=Conte\u00fado da P\u00e1gina Carregada
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=Ativar Formul\u00e1rio do Assistente para Servi\u00e7os da Web
+FORM_TITLE_IMPORT_TO_WORKBENCH=Importar Formul\u00e1rio do Workbench
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_CN.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_CN.properties
new file mode 100644
index 000000000..fac1b87df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_CN.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Web Service \u8d44\u6e90\u7ba1\u7406\u5668
+
+# Tree Nodes
+ALT_OPEN=\u6253\u5f00
+ALT_CLOSE=\u5173\u95ed
+
+# Perspective Toolbar
+ALT_BACK=\u5411\u540e
+ALT_FORWARD=\u5411\u524d
+ALT_ACTION_ENGINE=\u64cd\u4f5c\u8bb0\u5f55\u5668
+ALT_UDDI_PERSPECTIVE=UDDI \u9875\u9762
+ALT_WSIL_PERSPECTIVE=WSIL \u9875\u9762
+ALT_WSDL_PERSPECTIVE=WSDL \u9875\u9762
+ALT_FAVORITES_PERSPECTIVE=\u6536\u85cf\u5939
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=\u53cc\u51fb\u4ee5\u6700\u5927\u5316
+ALT_DOUBLE_CLICK_TO_RESTORE=\u53cc\u51fb\u4ee5\u8fd8\u539f
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=\u8fd4\u56de\u9876\u90e8
+
+# Common Actions
+ALT_REFRESH=\u5237\u65b0
+ALT_CLEAR=\u6e05\u9664
+ALT_RESULTS=\u7ed3\u679c
+
+# Common Labels
+ALT_NAVIGATOR=\u5bfc\u822a\u5668
+ALT_ACTIONS=\u64cd\u4f5c
+ALT_STATUS=\u72b6\u6001
+ALT_OTHER_ACTIONS=\u5176\u5b83\u64cd\u4f5c
+FORM_BUTTON_GO=&nbsp;&nbsp;\u6267\u884c&nbsp;&nbsp;
+FORM_BUTTON_RESET=\u590d\u4f4d
+FORM_BUTTON_CANCEL=\u53d6\u6d88
+FORM_LABEL_ACTIONS=\u64cd\u4f5c
+FORM_LABEL_ACTIONS_NONE=\u65e0
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=\u5168\u90e8\u9009\u4e2d
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=\u9009\u62e9\u884c
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E \u53d1\u751f\u4e86\u610f\u5916\u9519\u8bef\u3002
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E \u9009\u62e9\u64cd\u4f5c\u3002
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E \u9009\u62e9\u8282\u70b9\u3002
+MSG_SUBMIT_IN_PROGRESS=\u8bf7\u7a0d\u5019\u3002\u64cd\u4f5c\u4ecd\u5728\u8fdb\u884c\u4e2d\u3002
+MSG_LOAD_IN_PROGRESS=\u8bf7\u7b49\u5f85\u8868\u5355\u88c5\u5165...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=\u542f\u52a8 Web Service \u5411\u5bfc
+FORM_LABEL_CHOOSE_WIZARD=\u9009\u62e9\u5411\u5bfc\u4ee5\u542f\u52a8\uff1a
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Web Service \u5ba2\u6237\u673a
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Web Service \u6846\u67b6
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Web Service \u5411\u5bfc\u5df2\u5728\u8fd0\u884c\u4e2d\u3002\u5728\u542f\u52a8\u65b0\u5411\u5bfc\u4e4b\u524d\u5148\u5b8c\u6210\u73b0\u6709\u5411\u5bfc\u3002
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E WSDL \u6587\u6863\u4e0d\u53ef\u8bbf\u95ee\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u5c06 WSIL \u5bfc\u5165\u81f3\u6587\u4ef6\u7cfb\u7edf
+ALT_WSDL_IMPORT_TO_FS=\u5c06 WSDL \u5bfc\u5165\u81f3\u6587\u4ef6\u7cfb\u7edf
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E \u65e0\u6cd5\u68c0\u7d22 WSDL \u6587\u6863\u3002
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E \u65e0\u6cd5\u68c0\u7d22 WSIL \u6587\u6863\u3002
+MSG_IMPORT_WSDL_SUCCESSFUL=\u6210\u529f\u5bfc\u5165\u4e86 WSDL \u6587\u6863\u3002
+MSG_IMPORT_WSIL_SUCCESSFUL=\u6210\u529f\u5bfc\u5165\u4e86 WSIL \u6587\u6863\u3002
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=\u5c06 WSDL \u5bfc\u5165\u81f3\u5de5\u4f5c\u53f0
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=\u9009\u62e9\u8981\u5c06 WSDL \u6587\u4ef6\u4fdd\u5b58\u81f3\u5176\u4e2d\u7684\u5de5\u4f5c\u53f0\u9879\u76ee\u3002\u8fd8\u53ef\u4ee5\u66f4\u6539 WSDL \u6587\u4ef6\u7684\u540d\u79f0\u3002
+WEB_PROJECT_NAME=Web \u9879\u76ee\uff1a
+WORKBENCH_PROJECT_NAME=\u5de5\u4f5c\u53f0\u9879\u76ee\uff1a
+LABEL_IMPORT_WSDL=\u5bfc\u5165 WSDL \u6587\u6863
+LABEL_IMPORT_TO_WSIL=\u4f5c\u4e3a\u670d\u52a1\u5f15\u7528\u5bfc\u5165\u81f3 WSIL \u6587\u6863
+IMPORTED_WSDL_FILE_NAME=WSDL \u6587\u4ef6\u540d\uff1a
+WSIL_FILE_NAME=WSIL \u6587\u4ef6\u540d\uff1a
+MSG_ERROR_FILE_OVERWRITE_DISABLED=\u56e0\u4e3a\u672a\u542f\u7528\u201c\u81ea\u52a8\u8986\u76d6\u6587\u4ef6\u201d\uff0c\u6240\u4ee5\u4e0d\u80fd\u521b\u5efa\u76f8\u5bf9\u4e8e\u8def\u5f84\u201c%1\u201d\u7684\u6587\u4ef6\u201c%2\u201d\u3002\u60f3\u8981\u4e3a\u6b64\u6587\u4ef6\u542f\u7528\u5b83\u5417\uff1f
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E \u9009\u62e9\u5de5\u4f5c\u53f0\u9879\u76ee\u3002
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E \u6587\u4ef6\u540d\u65e0\u6548\u3002
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E WSIL \u6587\u4ef6\u540d\u65e0\u6548\u3002
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E \u672a\u9009\u62e9\u4efb\u4f55\u5bfc\u5165\u9009\u9879\u3002\u8bf7\u81f3\u5c11\u9009\u62e9\u4e00\u4e2a\u5bfc\u5165\u9009\u9879\u3002
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E \u65e0\u6cd5\u5199\u4e34\u65f6\u6587\u4ef6\u3002
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I \u5df2\u7ecf\u6210\u529f\u5730\u5c06 %1 \u5bfc\u5165\u81f3\u5de5\u4f5c\u53f0\u3002
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I \u5df2\u7ecf\u6210\u529f\u5730\u5c06\u670d\u52a1\u5f15\u7528\u5bfc\u5165\u81f3 %1\u3002
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=\u56e0\u4e3a\u672a\u542f\u7528\u201c\u81ea\u52a8\u68c0\u51fa\u6587\u4ef6\u201d\uff0c\u6240\u4ee5\u4e0d\u80fd\u521b\u5efa\u76f8\u5bf9\u4e8e\u8def\u5f84\u201c%1\u201d\u7684\u6587\u4ef6\u201c%2\u201d\u3002\u60f3\u8981\u4e3a\u6b64\u6587\u4ef6\u542f\u7528\u5b83\u5417\uff1f
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I \u5df2\u6e05\u9664 %1\u3002
+
+# Table twistees
+ALT_TWIST_OPENED=\u9690\u85cf
+ALT_TWIST_CLOSED=\u5c55\u5f00
+
+# WSDL Browser
+FORM_LINK_BROWSE=\u6d4f\u89c8...
+TITLE_WSDL_BROWSER=WSDL \u6d4f\u89c8\u5668 \uff0d %1
+FORM_LABEL_WSDL_SOURCE=\u9009\u62e9 WSDL \u6e90\uff1a
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u9879\u76ee
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u6536\u85cf\u5939
+FORM_LABEL_WEB_PROJECT=Web \u9879\u76ee
+FORM_LABEL_WSDL_URL=WSDL URL
+FORM_BUTTON_REFRESH=\u5237\u65b0
+ALT_WSDL_BROWSER=WSDL \u6d4f\u89c8\u5668
+WSDL_TYPE_SERVICE_INTERFACES=\u670d\u52a1\u63a5\u53e3
+WSDL_TYPE_SERVICES=\u670d\u52a1
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=\u65e5\u5386\u6d4f\u89c8\u5668
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=\u661f\u671f\u5929
+FORM_LABEL_SH_MONDAY=\u661f\u671f\u4e00
+FORM_LABEL_SH_TUESDAY=\u661f\u671f\u4e8c
+FORM_LABEL_SH_WEDNESDAY=\u661f\u671f\u4e09
+FORM_LABEL_SH_THURSDAY=\u661f\u671f\u56db
+FORM_LABEL_SH_FRIDAY=\u661f\u671f\u4e94
+FORM_LABEL_SH_SATURDAY=\u661f\u671f\u516d
+# Months of the year
+FORM_LABEL_MONTH=\u6708\uff1a
+FORM_LABEL_JANUARY=\u4e00\u6708
+FORM_LABEL_FEBRUARY=\u4e8c\u6708
+FORM_LABEL_MARCH=\u4e09\u6708
+FORM_LABEL_APRIL=\u56db\u6708
+FORM_LABEL_MAY=\u4e94\u6708
+FORM_LABEL_JUNE=\u516d\u6708
+FORM_LABEL_JULY=\u4e03\u6708
+FORM_LABEL_AUGUST=\u516b\u6708
+FORM_LABEL_SEPTEMBER=\u4e5d\u6708
+FORM_LABEL_OCTOBER=\u5341\u6708
+FORM_LABEL_NOVEMBER=\u5341\u4e00\u6708
+FORM_LABEL_DECEMBER=\u5341\u4e8c\u6708
+FORM_LABEL_YEAR=\u5e74\uff1a
+FORM_LABEL_TIME=\u65f6\u95f4\uff1a
+FORM_LINK_TODAY=\u4eca\u5929
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=\u4e0a\u4e00\u5e74
+ALT_PREVIOUS_MONTH=\u4e0a\u4e2a\u6708
+ALT_NEXT_MONTH=\u4e0b\u4e2a\u6708
+ALT_NEXT_YEAR=\u4e0b\u4e00\u5e74
+ALT_TODAY=\u4eca\u5929
+ALT_CALENDAR_BROWSER=\u65e5\u5386\u6d4f\u89c8\u5668
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E \u672a\u5c06\u65f6\u95f4\u683c\u5f0f\u8bbe\u7f6e\u4e3a HH:MM:SS[.SSS]\u3002\u60f3\u8981\u6539\u4e3a\u4f7f\u7528\u5f53\u524d\u65f6\u95f4\u5417\uff1f
+
+# Action engine
+TITLE_ACTION_RECORDER=\u64cd\u4f5c\u8bb0\u5f55\u5668
+FORM_LABEL_MODE=\u65b9\u5f0f\uff1a
+FORM_LABEL_MODE_PLAY=\u64ad\u653e
+FORM_LABEL_MODE_STOP=\u505c\u6b62
+FORM_LABEL_MODE_RECORD=\u8bb0\u5f55
+FORM_LABEL_SAVE=\u4fdd\u5b58
+FORM_LABEL_PLAY_FILE=\u64ad\u653e\u6587\u4ef6\uff1a
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E \u8f93\u5165\u64ad\u653e\u6587\u4ef6\u3002
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Web Service \u8d44\u6e90\u7ba1\u7406\u5668\u5185\u90e8\u5de5\u4f5c\u533a
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Web Service \u8d44\u6e90\u7ba1\u7406\u5668\u5de5\u5177\u680f
+FRAME_TITLE_PERSPECTIVE_CONTENT=Web Service \u8d44\u6e90\u7ba1\u7406\u5668\u9875\u9762\u5185\u5bb9
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u6d4f\u89c8\u5668\u5de5\u5177\u680f
+FRAME_TITLE_WSDL_CONTENT=WSDL \u6d4f\u89c8\u5668\u5185\u5bb9
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=\u9875\u9762\u88c5\u5165\u7a0b\u5e8f
+FORM_TITLE_PAGE_CONTENT=\u88c5\u5165\u7684\u9875\u9762\u5185\u5bb9
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=\u542f\u52a8 Web Service \u5411\u5bfc\u8868\u5355
+FORM_TITLE_IMPORT_TO_WORKBENCH=\u5bfc\u5165\u81f3\u5de5\u4f5c\u53f0\u8868\u5355
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_TW.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_TW.properties
new file mode 100644
index 000000000..76d709102
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/explorer_zh_TW.properties
@@ -0,0 +1,181 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+TITLE_WSEXPLORER=Web \u670d\u52d9\u700f\u89bd\u5668
+
+# Tree Nodes
+ALT_OPEN=\u958b\u555f
+ALT_CLOSE=\u95dc\u9589
+
+# Perspective Toolbar
+ALT_BACK=\u4e0a\u4e00\u9801
+ALT_FORWARD=\u4e0b\u4e00\u9801
+ALT_ACTION_ENGINE=\u52d5\u4f5c\u8a18\u9304\u5668
+ALT_UDDI_PERSPECTIVE=UDDI \u9801\u9762
+ALT_WSIL_PERSPECTIVE=WSIL \u9801\u9762
+ALT_WSDL_PERSPECTIVE=WSDL \u9801\u9762
+ALT_FAVORITES_PERSPECTIVE=\u6211\u7684\u6700\u611b
+
+# Toolbars
+ALT_DOUBLE_CLICK_TO_MAXIMIZE=\u6309\u5169\u4e0b\u6700\u5927\u5316
+ALT_DOUBLE_CLICK_TO_RESTORE=\u6309\u5169\u4e0b\u9084\u539f
+
+# SetDefaultViewTool
+ALT_BACK_TO_TOP=\u8fd4\u56de\u9802\u7aef
+
+# Common Actions
+ALT_REFRESH=\u91cd\u65b0\u6574\u7406
+ALT_CLEAR=\u6e05\u9664
+ALT_RESULTS=\u7d50\u679c
+
+# Common Labels
+ALT_NAVIGATOR=\u5c0e\u89bd\u5668
+ALT_ACTIONS=\u52d5\u4f5c
+ALT_STATUS=\u72c0\u614b
+ALT_OTHER_ACTIONS=\u5176\u4ed6\u52d5\u4f5c
+FORM_BUTTON_GO=&nbsp;&nbsp;\u57f7\u884c&nbsp;&nbsp;
+FORM_BUTTON_RESET=\u91cd\u8a2d
+FORM_BUTTON_CANCEL=\u53d6\u6d88
+FORM_LABEL_ACTIONS=\u52d5\u4f5c
+FORM_LABEL_ACTIONS_NONE=\u7121
+
+# Placeholder for blank table entries
+TABLE_BLANK_PLACEHOLDER=--
+
+# Common Form Control Titles
+FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX=\u5168\u9078
+FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX=\u9078\u53d6\u5217
+
+# Common Messages
+MSG_ERROR_UNEXPECTED=IWAB0135E \u767c\u751f\u975e\u9810\u671f\u7684\u932f\u8aa4\u3002
+MSG_ERROR_NO_ACTION_SELECTED=IWAB0124E \u9078\u53d6\u52d5\u4f5c\u3002
+MSG_ERROR_NO_NODE_SELECTED=IWAB0125E \u9078\u53d6\u7bc0\u9ede\u3002
+MSG_SUBMIT_IN_PROGRESS=\u8acb\u7a0d\u5019\u3002\u4f5c\u696d\u4ecd\u5728\u9032\u884c\u4e2d\u3002
+MSG_LOAD_IN_PROGRESS=\u7576\u8868\u55ae\u8f09\u5165\u6642\uff0c\u8acb\u7b49\u5f85...
+
+#LaunchWebServiceWizardAction
+ALT_LAUNCH_WEB_SERVICE_WIZARD=\u555f\u52d5 Web \u670d\u52d9\u7cbe\u9748
+FORM_LABEL_CHOOSE_WIZARD=\u8acb\u9078\u53d6\u8981\u555f\u52d5\u7684\u7cbe\u9748\uff1a
+FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD=Web \u670d\u52d9\u7528\u6236\u7aef
+FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD=Web \u670d\u52d9 Skeleton
+MSG_ERROR_WIZARD_ALREADY_RUNNING=IWAB0126E Web \u670d\u52d9\u7cbe\u9748\u5df2\u5728\u9032\u884c\u4e2d\u3002\u8acb\u5148\u7d50\u675f\u73fe\u6709\u7684\u7cbe\u9748\uff0c\u518d\u555f\u52d5\u65b0\u7684\u7cbe\u9748\u3002
+MSG_ERROR_WSDL_URL_IS_UNREACHABLE=IWAB0127E \u7121\u6cd5\u547c\u53eb\u5230 WSDL \u6587\u4ef6\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u5c07 WSIL \u532f\u5165\u6a94\u6848\u7cfb\u7d71\u4e2d
+ALT_WSDL_IMPORT_TO_FS=\u5c07 WSDL \u532f\u5165\u6a94\u6848\u7cfb\u7d71\u4e2d
+MSG_ERROR_RETRIEVING_WSDL_DOC=IWAB0128E \u7121\u6cd5\u64f7\u53d6 WSDL \u6587\u4ef6\u3002
+MSG_ERROR_RETRIEVING_WSIL_DOC=IWAB0129E \u7121\u6cd5\u64f7\u53d6 WSIL \u6587\u4ef6\u3002
+MSG_IMPORT_WSDL_SUCCESSFUL=\u5df2\u9806\u5229\u532f\u5165 WSDL \u6587\u4ef6\u3002
+MSG_IMPORT_WSIL_SUCCESSFUL=\u5df2\u9806\u5229\u532f\u5165 WSIL \u6587\u4ef6
+
+# ImportToWorkbenchAction
+ALT_IMPORT_WSDL_TO_WORKBENCH=\u5c07 WSDL \u532f\u5165\u5de5\u4f5c\u53f0
+FORM_LABEL_IMPORT_TO_WORKBENCH_DESC=\u8acb\u9078\u53d6\u7528\u4f86\u5132\u5b58 WSDL \u6a94\u7684\u5de5\u4f5c\u53f0\u5c08\u6848\u3002\u60a8\u4e5f\u53ef\u80fd\u8b8a\u66f4 WSDL \u6a94\u7684\u540d\u7a31\u3002
+WEB_PROJECT_NAME=Web \u5c08\u6848\uff1a
+WORKBENCH_PROJECT_NAME=\u5de5\u4f5c\u53f0\u5c08\u6848\uff1a
+LABEL_IMPORT_WSDL=\u532f\u5165 WSDL \u6587\u4ef6
+LABEL_IMPORT_TO_WSIL=\u532f\u5165\u70ba\u6307\u5411 WSIL \u6587\u4ef6\u7684\u670d\u52d9\u53c3\u7167
+IMPORTED_WSDL_FILE_NAME=WSDL \u6a94\u540d\u7a31\uff1a
+WSIL_FILE_NAME=WSIL \u6a94\u540d\u7a31\uff1a
+MSG_ERROR_FILE_OVERWRITE_DISABLED=\u7121\u6cd5\u5efa\u7acb\u76f8\u5c0d\u65bc "%1" \u8def\u5f91\u7684 "%2" \u6a94\uff0c\u56e0\u70ba\u6c92\u6709\u555f\u7528\u81ea\u52d5\u6539\u5beb\u6a94\u6848\u3002\u8981\u70ba\u9019\u500b\u6a94\u6848\u555f\u7528\u5b83\u55ce\uff1f
+MSG_ERROR_INVALID_WORKBENCH_PROJECT=IWAB0130E \u8acb\u9078\u53d6\u4e00\u500b\u5de5\u4f5c\u53f0\u5c08\u6848\u3002
+MSG_ERROR_INVALID_WSDL_FILE_NAME=IWAB0131E \u6a94\u540d\u7121\u6548\u3002
+MSG_ERROR_INVALID_WSIL_FILE_NAME=IWAB0470E WSIL \u6a94\u540d\u7a31\u7121\u6548\u3002
+MSG_ERROR_NO_IMPORT_OPTION_SELECTED=IWAB0471E \u6c92\u6709\u9078\u53d6\u532f\u5165\u9078\u9805\u3002\u8acb\u9078\u64c7\u81f3\u5c11\u4e00\u500b\u532f\u5165\u9078\u9805\u3002
+MSG_ERROR_WRITING_TEMP_FILE_TO_FS=IWAB0132E \u7121\u6cd5\u5beb\u5165\u66ab\u5b58\u6a94\u3002
+MSG_INFO_IMPORT_TO_WORKBENCH_SUCCESSFUL=IWAB0314I %1 \u5df2\u9806\u5229\u532f\u5165\u5de5\u4f5c\u53f0\u3002
+MSG_INFO_IMPORT_SERVICE_REF_TO_WSIL_SUCCESSFUL=IWAB0472I \u670d\u52d9\u53c3\u7167\u5df2\u9806\u5229\u532f\u5165 %1\u3002
+
+# CheckWorkbenchFileReadOnlyAction
+MSG_ERROR_FILE_CHECKOUT_DISABLED=\u7121\u6cd5\u5efa\u7acb\u76f8\u5c0d\u65bc "%1" \u8def\u5f91\u7684 "%2" \u6a94\uff0c\u56e0\u70ba\u6c92\u6709\u555f\u7528\u81ea\u52d5\u79fb\u51fa\u6a94\u6848\u3002\u8981\u70ba\u9019\u500b\u6a94\u6848\u555f\u7528\u5b83\u55ce\uff1f
+
+# ClearNodeAction
+MSG_INFO_NODE_CLEARED=IWAB0133I \u5df2\u6e05\u9664 %1\u3002
+
+# Table twistees
+ALT_TWIST_OPENED=\u96b1\u85cf
+ALT_TWIST_CLOSED=\u5c55\u958b
+
+# WSDL Browser
+FORM_LINK_BROWSE=\u700f\u89bd...
+TITLE_WSDL_BROWSER=WSDL \u700f\u89bd\u5668 - %1
+FORM_LABEL_WSDL_SOURCE=\u8acb\u9078\u53d6\u4e00\u500b WSDL \u4f86\u6e90\uff1a
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u5c08\u6848
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u6211\u7684\u6700\u611b
+FORM_LABEL_WEB_PROJECT=Web \u5c08\u6848
+FORM_LABEL_WSDL_URL=WSDL URL
+FORM_BUTTON_REFRESH=\u91cd\u65b0\u6574\u7406
+ALT_WSDL_BROWSER=WSDL \u700f\u89bd\u5668
+WSDL_TYPE_SERVICE_INTERFACES=\u670d\u52d9\u4ecb\u9762
+WSDL_TYPE_SERVICES=\u670d\u52d9
+
+# Calendar Browser
+TITLE_CALENDAR_BROWSER=\u884c\u4e8b\u66c6\u700f\u89bd\u5668
+# 2 character abbreviations for days of the week.
+FORM_LABEL_SH_SUNDAY=Su
+FORM_LABEL_SH_MONDAY=Mo
+FORM_LABEL_SH_TUESDAY=Tu
+FORM_LABEL_SH_WEDNESDAY=We
+FORM_LABEL_SH_THURSDAY=Th
+FORM_LABEL_SH_FRIDAY=Fr
+FORM_LABEL_SH_SATURDAY=Sa
+# Months of the year
+FORM_LABEL_MONTH=\u6708\u4efd\uff1a
+FORM_LABEL_JANUARY=1 \u6708
+FORM_LABEL_FEBRUARY=2 \u6708
+FORM_LABEL_MARCH=3 \u6708
+FORM_LABEL_APRIL=4 \u6708
+FORM_LABEL_MAY=5 \u6708
+FORM_LABEL_JUNE=6 \u6708
+FORM_LABEL_JULY=7 \u6708
+FORM_LABEL_AUGUST=8 \u6708
+FORM_LABEL_SEPTEMBER=9 \u6708
+FORM_LABEL_OCTOBER=10 \u6708
+FORM_LABEL_NOVEMBER=11 \u6708
+FORM_LABEL_DECEMBER=12 \u6708
+FORM_LABEL_YEAR=\u5e74\u4efd\uff1a
+FORM_LABEL_TIME=\u6642\u9593\uff1a
+FORM_LINK_TODAY=\u4eca\u65e5
+FORM_LINK_PREVIOUS_YEAR=<<
+FORM_LINK_PREVIOUS_MONTH=<
+FORM_LINK_NEXT_MONTH=>
+FORM_LINK_NEXT_YEAR=>>
+ALT_PREVIOUS_YEAR=\u4e0a\u4e00\u5e74
+ALT_PREVIOUS_MONTH=\u4e0a\u4e00\u6708
+ALT_NEXT_MONTH=\u4e0b\u4e00\u6708
+ALT_NEXT_YEAR=\u4e0b\u4e00\u5e74
+ALT_TODAY=\u4eca\u65e5
+ALT_CALENDAR_BROWSER=\u884c\u4e8b\u66c6\u700f\u89bd\u5668
+MSG_ERROR_INVALID_TIME_FORMAT=IWAB0368E \u6642\u9593\u672a\u683c\u5f0f\u5316\u70ba HH:MM:SS[.SSS]\u3002\u60a8\u8981\u6539\u7528\u73fe\u884c\u6642\u9593\u55ce\uff1f
+
+# Action engine
+TITLE_ACTION_RECORDER=\u52d5\u4f5c\u8a18\u9304\u5668
+FORM_LABEL_MODE=\u6a21\u5f0f\uff1a
+FORM_LABEL_MODE_PLAY=\u57f7\u884c
+FORM_LABEL_MODE_STOP=\u505c\u6b62
+FORM_LABEL_MODE_RECORD=\u8a18\u9304
+FORM_LABEL_SAVE=\u5132\u5b58
+FORM_LABEL_PLAY_FILE=\u64ad\u653e\u6a94\uff1a
+MSG_ERROR_INVALID_PLAY_FILE=IWAB0362E \u8f38\u5165\u64ad\u653e\u6a94\u3002
+
+# Frame titles
+FRAME_TITLE_PERSPECTIVE_WORKAREA=Web \u670d\u52d9\u700f\u89bd\u5668\u5167\u90e8\u5de5\u4f5c\u5340
+FRAME_TITLE_PERSPECTIVE_TOOLBAR=Web \u670d\u52d9\u700f\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_PERSPECTIVE_CONTENT=Web \u670d\u52d9\u700f\u89bd\u5668\u9801\u9762\u5167\u5bb9
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u700f\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_WSDL_CONTENT=WSDL \u700f\u89bd\u5668\u5167\u5bb9
+
+# Form titles
+FORM_TITLE_PAGE_LOADER=\u9801\u9762\u8f09\u5165\u5668
+FORM_TITLE_PAGE_CONTENT=\u8f09\u5165\u7684\u9801\u9762\u5167\u5bb9
+FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD=\u555f\u52d5 Web \u670d\u52d9\u7cbe\u9748\u8868\u55ae
+FORM_TITLE_IMPORT_TO_WORKBENCH=\u532f\u5165\u5de5\u4f5c\u53f0\u8868\u55ae
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites.properties
new file mode 100644
index 000000000..78de864b2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Favorites
+
+# Navigator
+FAVORITES_MAIN_NODE=Favorites Main
+FAVORITES_WSIL_FOLDER_NODE=Favorite WSILs
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Favorite WSDL Services
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Favorite UDDI Services
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=Favorite UDDI Businesses
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Favorite UDDI Service Interfaces
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Favorite UDDI Registries
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=Favorite WSILs
+FORM_LABEL_FAVORITE_WSDL=Favorite WSDLs
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Favorite UDDI Registries
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Favorite UDDI Services
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Favorite UDDI Business Entities
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Favorite UDDI Service Interfaces
+FORM_LABEL_REMOVE=Remove
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=Add To WSIL Page
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=Add To UDDI Page
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=Add To WSDL Page
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Item #
+FORM_LABEL_NAME=Name
+FORM_LABEL_INQUIRY_URL=Inquiry URL
+FORM_LABEL_PUBLISH_URL=Publish URL
+FORM_LABEL_REGISTRY_NAME=Registry Name
+FORM_LABEL_BUSINESS_NAME=Business Name
+FORM_LABEL_BUSINESS_KEY=Business Key
+FORM_LABEL_SERVICE_NAME=Service Name
+FORM_LABEL_SERVICE_KEY=Service Key
+FORM_LABEL_SERVICE_INTERFACE_NAME=Service Interface Name
+FORM_LABEL_SERVICE_INTERFACE_KEY=Service Interface Key
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Click here</a> to obtain a user ID and password for this registry.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=Data files for User Defined Categories
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E Select at least one item.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=List Favorite WSILs
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=Select a set of favorite WSIL links and press <strong>Add to WSIL Page</strong> to open them in the WSIL navigator. Press <strong>Remove</strong> to remove the selections.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=List Favorite WSDL Services
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=Select a set of favorite WSDL services and press <strong>Remove</strong> to remove them.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=List Favorite UDDI Services
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=Select a set of favorite UDDI services and press <strong>Add to UDDI Page</strong> to open them in the UDDI navigator. Press <strong>Remove</strong> to remove the selections.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=List Favorite UDDI Businesses
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=Select a set of favorite UDDI businesses and press <strong>Add to UDDI Page</strong> to open them in the UDDI navigator. Press <strong>Remove</strong> to remove the selections.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=List Favorite UDDI Registries
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=Select a set of favorite UDDI registries and press <strong>Add to UDDI Page</strong> to open them in the UDDI navigator. Press <strong>Remove</strong> to remove the selections.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=List Favorite UDDI Service Interfaces
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=Select a set of favorite UDDI service interfaces and press <strong>Add to UDDI Page</strong> to open them in the UDDI navigator. Press <strong>Remove</strong> to remove the selections.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Favorite WSIL Details
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Favorite WSDL Details
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Favorite UDDI Registry Details
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Favorite UDDI Business Details
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Favorite UDDI Service Details
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Favorite UDDI Service Interface Details
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=Add to WSIL Page
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 is already opened in WSIL Page.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 is added to WSIL Page.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1 could not be loaded.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=Add to UDDI Page
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 could not be found in the registry.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 is added to UDDI Page.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Add to WSDL Page
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 is added to WSDL Page.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 could not be loaded.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Remove Favorite
+MSG_CONFIRM_REMOVE_NODE=%1 is no longer resolvable. Do you wish to clear it?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Restore Default Favorites
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=This operation will overwrite the current favorites. Do you wish to continue?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E Unable to load the default favorites.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I Default Favorites are restored.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E Unable to save favorites to %1.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator Toolbar
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator Content
+FRAME_TITLE_ACTIONS_CONTAINER=Actions Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Properties Container
+FRAME_TITLE_PROPERTIES_CONTENT=Properties Content
+FRAME_TITLE_PROPERTIES_TOOLBAR=Properties Toolbar
+FRAME_TITLE_STATUS_CONTAINER=Status Container
+FRAME_TITLE_STATUS_CONTENT=Status Content
+FRAME_TITLE_STATUS_TOOLBAR=Status Toolbar
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI Business Details Form
+FORM_TITLE_UDDI_REGISTRY_DETAILS=UDDI Registry Details Form
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI Service Details Form
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=UDDI Service Interface Details Form
+FORM_TITLE_WSDL_DETAILS=WSDL Details Form
+FORM_TITLE_WSIL_DETAILS=WSIL Details Form
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI Businesses List View
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI Registries List View
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI Service Interfaces List View
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI Services List View
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL Services List View
+VIEW_TITLE_WSIL_LIST=WSIL Links List View
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_de.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_de.properties
new file mode 100644
index 000000000..1a6a7dfb3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_de.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Favoriten
+
+# Navigator
+FAVORITES_MAIN_NODE=Favoriten - Haupt
+FAVORITES_WSIL_FOLDER_NODE=Bevorzugte WSILs
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Bevorzugte WSDL-Services
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Bevorzugte UDDI-Services
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=Bevorzugte UDDI-Gesch\u00e4fte
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Bevorzugte UDDI-Serviceschnittstellen
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Bevorzugte UDDI-Registrierungen
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=Bevorzugte WSILs
+FORM_LABEL_FAVORITE_WSDL=Bevorzugte WSDLs
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Bevorzugte UDDI-Registrierungen
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Bevorzugte UDDI-Services
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Bevorzugte UDDI-Gesch\u00e4ftsobjekte
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Bevorzugte UDDI-Serviceschnittstellen
+FORM_LABEL_REMOVE=Entfernen
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=Zu WSIL-Seite hinzuf\u00fcgen
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=Zu UDDI-Seite hinzuf\u00fcgen
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=Zu WSDL-Seite hinzuf\u00fcgen
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Eintrag #
+FORM_LABEL_NAME=Name
+FORM_LABEL_INQUIRY_URL=Abfrage-URL
+FORM_LABEL_PUBLISH_URL=Publizierungs-URL
+FORM_LABEL_REGISTRY_NAME=Registrierungsname
+FORM_LABEL_BUSINESS_NAME=Gesch\u00e4ftsname
+FORM_LABEL_BUSINESS_KEY=Gesch\u00e4ftsschl\u00fcssel
+FORM_LABEL_SERVICE_NAME=Servicename
+FORM_LABEL_SERVICE_KEY=Serviceschl\u00fcssel
+FORM_LABEL_SERVICE_INTERFACE_NAME=Serviceschnittstellenname
+FORM_LABEL_SERVICE_INTERFACE_KEY=Serviceschnittstellenschl\u00fcssel
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Hier klicken</a>, um eine Benutzer-ID und ein Kennwort f\u00fcr diese Registrierung zu erhalten.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=Datendateien f\u00fcr benutzerdefinierte Kategorien
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E W\u00e4hlen Sie mindestens einen Eintrag aus.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=Bevorzugte WSILs auflisten
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten WSIL-Links aus, und klicken Sie <strong>Zu WSIL-Seite hinzuf\u00fcgen</strong> an, um sie im WSIL-Navigator zu \u00f6ffnen. Klicken Sie <strong>Entfernen</strong> an, um die Auswahl zu entfernen.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=Bevorzugte WSDL-Services auflisten
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten WSDL-Services aus, und klicken Sie <strong>Entfernen</strong> an, um sie zu entfernen.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=Bevorzugte UDDI-Services auflisten
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten UDDI-Services aus, und klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um sie im UDDI-Navigator zu \u00f6ffnen. Klicken Sie <strong>Entfernen</strong> an, um die Auswahl zu entfernen.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=Bevorzugte UDDI-Gesch\u00e4fte auflisten
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten UDDI-Gesch\u00e4ften aus, und klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um sie im UDDI-Navigator zu \u00f6ffnen. Klicken Sie <strong>Entfernen</strong> an, um die Auswahl zu entfernen.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=Bevorzugte UDDI-Registrierungen auflisten
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten UDDI-Registrierungen aus, und klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um sie im UDDI-Navigator zu \u00f6ffnen. Klicken Sie <strong>Entfernen</strong> an, um die Auswahl zu entfernen.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=Bevorzugte UDDI-Serviceschnittstellen auflisten
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=W\u00e4hlen Sie eine Gruppe von bevorzugten UDDI-Serviceschnittstellen aus, und klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um sie im UDDI-Navigator zu \u00f6ffnen. Klicken Sie <strong>Entfernen</strong> an, um die Auswahl zu entfernen.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Bevorzugte WSIL - Details
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Bevorzugte WSDL - Details
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Bevorzugte UDDI-Registrierung - Details
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Bevorzugtes UDDI-Gesch\u00e4ft - Details
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Bevorzugter UDDI-Service - Details
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Bevorzugte UDDI-Serviceschnittstelle - Details
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=Zu WSIL-Seite hinzuf\u00fcgen
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 ist bereits in WSIL-Seite ge\u00f6ffnet
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 wurde zu WSIL-Seite hinzugef\u00fcgt.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1 konnte nicht geladen werden.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=Zu UDDI-Seite hinzuf\u00fcgen
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 konnte in der Registrierung nicht gefunden werden.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 wurde zu UDDI-Seite hinzugef\u00fcgt.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Zu WSDL-Seite hinzuf\u00fcgen
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 wurde zu WSDL-Seite hinzugef\u00fcgt.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 konnte nicht geladen werden.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Favorit entfernen
+MSG_CONFIRM_REMOVE_NODE=%1 kann nicht mehr aufgel\u00f6st werden. Soll der Knoten gel\u00f6scht werden?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Standardfavoriten wiederherstellen
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=Durch diese Operation werden die aktuellen Favoriten \u00fcberschrieben. M\u00f6chten Sie fortfahren?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E Die Standardfavoriten k\u00f6nnen nicht geladen werden.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I Die Standardfavoriten werden wiederhergestellt.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E Die Favoriten k\u00f6nnen nicht in %1 gespeichert werden.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator - Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator - Symbolleiste
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator - Inhalt
+FRAME_TITLE_ACTIONS_CONTAINER=Aktionen - Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Eigenschaften - Container
+FRAME_TITLE_PROPERTIES_CONTENT=Eigenschaften - Inhalt
+FRAME_TITLE_PROPERTIES_TOOLBAR=Eigenschaften - Symbolleiste
+FRAME_TITLE_STATUS_CONTAINER=Status - Container
+FRAME_TITLE_STATUS_CONTENT=Status - Inhalt
+FRAME_TITLE_STATUS_TOOLBAR=Status - Symbolleiste
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formular f\u00fcr UDDI-Gesch\u00e4ftsdetails
+FORM_TITLE_UDDI_REGISTRY_DETAILS=Formular f\u00fcr UDDI-Registrierungsdetails
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formular f\u00fcr UDDI-Servicedetails
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=Formular f\u00fcr UDDI-Serviceschnittstellendetails
+FORM_TITLE_WSDL_DETAILS=Formular f\u00fcr WSDL-Details
+FORM_TITLE_WSIL_DETAILS=Formular f\u00fcr WSIL-Details
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI-Gesch\u00e4fte - Listensicht
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI-Registrierungen - Listensicht
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI-Serviceschnittstellen - Listensicht
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI-Services - Listensicht
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL-Services - Listensicht
+VIEW_TITLE_WSIL_LIST=WSIL-Links - Listensicht
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_es.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_es.properties
new file mode 100644
index 000000000..1e795b59d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_es.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Favoritos
+
+# Navigator
+FAVORITES_MAIN_NODE=Favoritos - Principal
+FAVORITES_WSIL_FOLDER_NODE=WSIL favoritos
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Servicios WSDL favoritos
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Servicios UDDI favoritos
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=Empresas UDDI favoritas
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Interfaces de servicio UDDI favoritos
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Registros UDDI favoritos
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=WSIL favoritos
+FORM_LABEL_FAVORITE_WSDL=WSDL favoritos
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Registros UDDI favoritos
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Servicios UDDI favoritos
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Entidades de empresa UDDI favoritas
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Interfaces de servicio UDDI favoritos
+FORM_LABEL_REMOVE=Eliminar
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSIL
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=A\u00f1adir a p\u00e1gina UDDI
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSDL
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Elemento #
+FORM_LABEL_NAME=Nombre
+FORM_LABEL_INQUIRY_URL=URL de consulta
+FORM_LABEL_PUBLISH_URL=URL de publicaci\u00f3n
+FORM_LABEL_REGISTRY_NAME=Nombre de registro
+FORM_LABEL_BUSINESS_NAME=Nombre de empresa
+FORM_LABEL_BUSINESS_KEY=Clave de empresa
+FORM_LABEL_SERVICE_NAME=Nombre de servicio
+FORM_LABEL_SERVICE_KEY=Clave de servicio
+FORM_LABEL_SERVICE_INTERFACE_NAME=Nombre de interfaz de servicio
+FORM_LABEL_SERVICE_INTERFACE_KEY=Clave de interfaz de servicio
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Pulse aqu\u00ed</a> para obtener un ID de usuario y una contrase\u00f1a para este registro.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=Archivos de datos para las categor\u00edas definidas por el usuario
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E Seleccione como m\u00ednimo un elemento.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=Listar WSIL favoritos
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=Seleccione un conjunto de enlaces WSIL favoritos y pulse <strong>A\u00f1adir a p\u00e1gina WSIL</strong> para abrirlos en el navegador WSIL. Pulse <strong>Eliminar</strong> para eliminar las selecciones.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=Listar servicios WSDL favoritos
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=Seleccione un conjunto de servicios WSDL favoritos y pulse <strong>Eliminar</strong> para eliminarlos.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=Listar servicios UDDI favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=Seleccione un conjunto de servicios UDDI favoritos y pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para abrirlos en el navegador UDDI. Pulse <strong>Eliminar</strong> para eliminar las selecciones.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=Listar empresas UDDI favoritas
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=Seleccione un conjunto de empresas UDDI favoritas y pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para abrirlas en el navegador UDDI. Pulse <strong>Eliminar</strong> para eliminar las selecciones.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=Listar registros UDDI favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=Seleccione un conjunto de registros UDDI favoritos y pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para abrirlos en el navegador UDDI. Pulse <strong>Eliminar</strong> para eliminar las selecciones.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=Listar interfaces de servicio UDDI favoritas
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=Seleccione un conjunto de interfaces de servicio UDDI favoritas y pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para abrirlas en el navegador UDDI. Pulse <strong>Eliminar</strong> para eliminar las selecciones.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Detalles de WSIL favorito
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Detalles de WSDL favorito
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Detalles de registro UDDI favorito
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Detalles de empresa UDDI favorita
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Detalles de servicio UDDI favorito
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Detalles de interfaz de servicio UDDI favorito
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSIL
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 ya est\u00e1 abierto en la p\u00e1gina WSIL.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 se ha a\u00f1adido a la p\u00e1gina WSIL.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E No se ha podido cargar WSIL %1.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=A\u00f1adir a p\u00e1gina UDDI
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 no se ha encontrado en el registro.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 se ha a\u00f1adido a la p\u00e1gina UDDI.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 se ha a\u00f1adido a la p\u00e1gina WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 no se ha podido cargar.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Eliminar favorito
+MSG_CONFIRM_REMOVE_NODE=%1 ya no puede resolverse. \u00bfDesea borrarlo?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Restaurar favoritos por omisi\u00f3n
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=Esta operaci\u00f3n sobrescribir\u00e1 los favoritos actuales. \u00bfDesea continuar?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E No se pueden cargar los favoritos por omisi\u00f3n.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I Se han restaurado los favoritos por omisi\u00f3n.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E No se pueden guardar los favoritos en %1.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenedor del navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de herramientas del navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenido del navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Contenedor de acciones
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenedor de propiedades
+FRAME_TITLE_PROPERTIES_CONTENT=Contenido de propiedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de herramientas de propiedades
+FRAME_TITLE_STATUS_CONTAINER=Contenedor de estado
+FRAME_TITLE_STATUS_CONTENT=Contenido de estado
+FRAME_TITLE_STATUS_TOOLBAR=Barra de herramientas de estado
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formulario de detalles de empresa UDDI
+FORM_TITLE_UDDI_REGISTRY_DETAILS=Formulario de detalles de registro UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formulario de detalles de servicio UDDI
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=Formulario de detalles de interfaz de servicio UDDI
+FORM_TITLE_WSDL_DETAILS=Formulario de detalles de WSDL
+FORM_TITLE_WSIL_DETAILS=Formulario de detalles de WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=Vista Lista de empresas UDDI
+VIEW_TITLE_UDDI_REGISTRY_LIST=Vista Lista de registros UDDI
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=Vista Lista de interfaces de servicio UDDI
+VIEW_TITLE_UDDI_SERVICE_LIST=Vista Lista de servicios UDDI
+VIEW_TITLE_WSDL_SERVICE_LIST=Vista Lista de servicios WSDL
+VIEW_TITLE_WSIL_LIST=Vista Lista de enlaces WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_fr.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_fr.properties
new file mode 100644
index 000000000..71e9e74ce
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_fr.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Favoris
+
+# Navigator
+FAVORITES_MAIN_NODE=Favoris - Page principale
+FAVORITES_WSIL_FOLDER_NODE=WSIL favoris
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Services WSDL favoris
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Services UDDI favoris
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=M\u00e9tiers UDDI favoris
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Interfaces de service UDDI favorites
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Registres UDDI favoris
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=WSIL favoris
+FORM_LABEL_FAVORITE_WSDL=WSDL favoris
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Registres UDDI favoris
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Services UDDI favoris
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Entit\u00e9s m\u00e9tier UDDI favorites
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Interfaces de service UDDI favorites
+FORM_LABEL_REMOVE=Supprimer
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=Ajouter \u00e0 la page WSIL
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=Ajouter \u00e0 la page UDDI
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=Ajouter \u00e0 la page WSDL
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=N\u00b0 de l'\u00e9l\u00e9ment
+FORM_LABEL_NAME=Nom
+FORM_LABEL_INQUIRY_URL=URL d'interrogation
+FORM_LABEL_PUBLISH_URL=URL de publication
+FORM_LABEL_REGISTRY_NAME=Nom du registre
+FORM_LABEL_BUSINESS_NAME=Nom du m\u00e9tier
+FORM_LABEL_BUSINESS_KEY=Cl\u00e9 du m\u00e9tier
+FORM_LABEL_SERVICE_NAME=Nom du service
+FORM_LABEL_SERVICE_KEY=Cl\u00e9 du service
+FORM_LABEL_SERVICE_INTERFACE_NAME=Nom de l'interface de service
+FORM_LABEL_SERVICE_INTERFACE_KEY=Cl\u00e9 d'interface de service
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Cliquez ici</a> pour obtenir un ID utilisateur et un mot de passe pour ce registre.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=Fichiers de donn\u00e9es des cat\u00e9gories d\u00e9finies par l'utilisateur
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E S\u00e9lectionnez au moins un \u00e9l\u00e9ment.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=R\u00e9pertorier les WSIL favoris
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=S\u00e9lectionnez un groupe de liens WSIL favoris et cliquez sur <strong>Ajouter \u00e0 la page WSIL</strong> pour ouvrir ces liens dans le navigateur WSIL. Cliquez sur <strong>Supprimer</strong> pour supprimer les s\u00e9lections.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=R\u00e9pertorier les services WSDL favoris
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=S\u00e9lectionnez un groupe de services WSDL favoris et cliquez sur <strong>Supprimer</strong> pour les supprimer.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=R\u00e9pertorier les services UDDI favoris
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=S\u00e9lectionnez un groupe de services UDDI favoris et cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour ouvrir ces services dans le navigateur UDDI. Cliquez sur <strong>Supprimer</strong> pour supprimer les s\u00e9lections.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=R\u00e9pertorier les m\u00e9tiers UDDI favoris
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=S\u00e9lectionnez un groupe de m\u00e9tiers UDDI favoris et cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour ouvrir ces m\u00e9tiers dans le navigateur UDDI. Cliquez sur <strong>Supprimer</strong> pour supprimer les s\u00e9lections.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=R\u00e9pertorier les registres UDDI favoris
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=S\u00e9lectionnez un groupe de registres UDDI favoris et cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour ouvrir ces registres dans le navigateur UDDI. Cliquez sur <strong>Supprimer</strong> pour supprimer les s\u00e9lections.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=R\u00e9pertorier les interfaces de service UDDI favorites
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=S\u00e9lectionnez un groupe d'interfaces de service UDDI favorites et cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour ouvrir ces interfaces de service dans le navigateur UDDI. Cliquez sur <strong>Supprimer</strong> pour supprimer les s\u00e9lections.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Caract\u00e9ristiques des WSIL favoris
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Caract\u00e9ristiques des WSDL favoris
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Caract\u00e9ristiques des registres UDDI favoris
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Caract\u00e9ristiques des m\u00e9tiers UDDI favoris
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Caract\u00e9ristiques des services UDDI favoris
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Caract\u00e9ristiques des interfaces de service UDDI favorites
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=Ajouter \u00e0 la page WSIL
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 est d\u00e9j\u00e0 ouvert dans la page WSIL.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 est ajout\u00e9 \u00e0 la page WSIL.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E Le WSIL %1 n'a pas pu \u00eatre charg\u00e9.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=Ajouter \u00e0 la page UDDI
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 est introuvable dans le registre.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 est ajout\u00e9 \u00e0 la page UDDI.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Ajouter \u00e0 la page WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 est ajout\u00e9 \u00e0 la page WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E Le WSDL %1 n'a pas pu \u00eatre charg\u00e9.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Supprimer un favori
+MSG_CONFIRM_REMOVE_NODE=%1 ne peut plus \u00eatre r\u00e9solu. Voulez-vous l'effacer ?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Restaurer les favoris par d\u00e9faut
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=Cette op\u00e9ration va remplacer les favoris en cours. Voulez-vous continuer ?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E Impossible de charger les favoris par d\u00e9faut.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I Les favoris par d\u00e9faut sont restaur\u00e9s.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E Impossible de sauvegarder les favoris dans %1.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigateur - Conteneur
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigateur - Barre d'outils
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigateur - Contenu
+FRAME_TITLE_ACTIONS_CONTAINER=Conteneur d'actions
+FRAME_TITLE_PROPERTIES_CONTAINER=Conteneur de propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_CONTENT=Contenu des propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barre d'outils des propri\u00e9t\u00e9s
+FRAME_TITLE_STATUS_CONTAINER=Conteneur de statuts
+FRAME_TITLE_STATUS_CONTENT=Contenu des statuts
+FRAME_TITLE_STATUS_TOOLBAR=Barre d'outils des statuts
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formulaire Informations sur le m\u00e9tier UDDI
+FORM_TITLE_UDDI_REGISTRY_DETAILS=Formulaire Informations sur le registre UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formulaire Informations sur le service UDDI
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=Formulaire Informations sur l'interface de service UDDI
+FORM_TITLE_WSDL_DETAILS=Formulaire Informations sur le fichier WSDL
+FORM_TITLE_WSIL_DETAILS=Formulaire Informations sur le fichier WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=Vue Liste des m\u00e9tiers UDDI
+VIEW_TITLE_UDDI_REGISTRY_LIST=Vue Liste des registres UDDI
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=Vue Liste des interfaces de service UDDI
+VIEW_TITLE_UDDI_SERVICE_LIST=Vue Liste des services UDDI
+VIEW_TITLE_WSDL_SERVICE_LIST=Vue Liste des services WSDL
+VIEW_TITLE_WSIL_LIST=Vue Liste des liens WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_it.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_it.properties
new file mode 100644
index 000000000..fdc5eb849
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_it.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Preferiti
+
+# Navigator
+FAVORITES_MAIN_NODE=Preferiti principali
+FAVORITES_WSIL_FOLDER_NODE=WSIL preferiti
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Servizi WSDL preferiti
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Servizi UDDI preferiti
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=Business UDDI preferiti
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Interfacce di servizio UDDI preferite
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Registri UDDI preferiti
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=WSIL preferiti
+FORM_LABEL_FAVORITE_WSDL=WSDL preferiti
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Registri UDDI preferiti
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Servizi UDDI preferiti
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Entit\u00e0 business UDDI preferite
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Interfacce di servizio UDDI preferite
+FORM_LABEL_REMOVE=Rimuovi
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=Aggiungi alla pagina WSIL
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=Aggiungi alla pagina UDDI
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=Aggiungi alla pagina WSDL
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Elemento n.
+FORM_LABEL_NAME=Nome
+FORM_LABEL_INQUIRY_URL=URL di richiesta
+FORM_LABEL_PUBLISH_URL=URL di pubblicazione
+FORM_LABEL_REGISTRY_NAME=Nome registro
+FORM_LABEL_BUSINESS_NAME=Nome business
+FORM_LABEL_BUSINESS_KEY=Chiave business
+FORM_LABEL_SERVICE_NAME=Nome servizio
+FORM_LABEL_SERVICE_KEY=Chiave servizio
+FORM_LABEL_SERVICE_INTERFACE_NAME=Nome interfaccia di servizio
+FORM_LABEL_SERVICE_INTERFACE_KEY=Chiave interfaccia di servizio
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Fare clic qui</a> per visualizzare un ID utente e una password per questo registro.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=File di dati per le categorie definite dall'utente
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E Selezionare almeno un elemento.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=Visualizza WSIL preferiti
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=Selezionare un insieme di collegamenti WSIL preferiti e premere <strong>Aggiungi alla pagina WSIL</strong> per aprire i collegamenti nel pannello di selezione WSIL. Premere <strong>Rimuovi</strong> per rimuovere le selezioni.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=Visualizza servizi WSDL preferiti
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=Selezionare un insieme di servizi WSDL preferiti e premere <strong>Rimuovi</strong> per rimuovere i servizi.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=Visualizza servizi UDDI preferiti
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=Selezionare un insieme di servizi UDDI preferiti e premere <strong>Aggiungi alla pagina UDDI</strong> per aprire i servizi nel pannello di selezione UDDI. Premere <strong>Rimuovi</strong> per rimuovere le selezioni.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=Visualizza business UDDI preferiti
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=Selezionare un insieme di business UDDI preferiti e premere <strong>Aggiungi alla pagina UDDI</strong> per aprire i business nel pannello di selezione UDDI. Premere <strong>Rimuovi</strong> per rimuovere le selezioni.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=Visualizza registri UDDI preferiti
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=Selezionare un insieme di registri UDDI preferiti e premere <strong>Aggiungi alla pagina UDDI</strong> per aprire i registri nel pannello di selezione UDDI. Premere <strong>Rimuovi</strong> per rimuovere le selezioni.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=Visualizza interfacce di servizio UDDI preferite
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=Selezionare un insieme di interfacce di servizio UDDI preferite e premere <strong>Aggiungi alla pagina UDDI</strong> per aprire le interfacce nel pannello di selezione UDDI. Premere <strong>Rimuovi</strong> per rimuovere le selezioni.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Dettagli WSIL preferiti
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Dettagli WSDL preferiti
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Dettagli registri UDDI preferiti
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Dettagli business UDDI preferiti
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Dettagli servizi UDDI preferiti
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Dettagli interfacce di servizio UDDI preferite
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=Aggiungi alla pagina WSIL
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 \u00e8 gi\u00e0 aperto nella pagina WSIL.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 viene aggiunto alla pagina WSIL.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E \u00c8 possibile che WSIL %1 non sia stato caricato.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=Aggiungi alla pagina UDDI
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E \u00c8 possibile che %1 non sia stato trovato nel registro.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 viene aggiunto alla pagina UDDI.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Aggiungi alla pagina WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 viene aggiunto alla pagina WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E \u00c8 possibile che WSDL %1 non sia stato caricato.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Rimuovi preferiti
+MSG_CONFIRM_REMOVE_NODE=%1 non \u00e8 pi\u00f9 risolvibile. Cancellarlo?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Ripristina preferiti predefiniti
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=Questa operazione sovrascriver\u00e0 i preferiti correnti. Continuare?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E Impossibile caricare i preferiti predefiniti.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I I preferiti predefiniti vengono ripristinati.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E Impossibile salvare i preferiti su %1.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenitore Selezione
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra degli strumenti Selezione
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenuto Selezione
+FRAME_TITLE_ACTIONS_CONTAINER=Contenitore azioni
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenitore propriet\u00e0
+FRAME_TITLE_PROPERTIES_CONTENT=Contenuto propriet\u00e0
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra degli strumenti propriet\u00e0
+FRAME_TITLE_STATUS_CONTAINER=Contenitore stato
+FRAME_TITLE_STATUS_CONTENT=Contenuto stato
+FRAME_TITLE_STATUS_TOOLBAR=Barra degli strumenti stato
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Modulo dettagli business UDDI
+FORM_TITLE_UDDI_REGISTRY_DETAILS=Modulo dettagli registro UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Modulo dettagli servizio UDDI
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=Modulo dettagli interfaccia di servizio UDDI
+FORM_TITLE_WSDL_DETAILS=Modulo dettagli WSDL
+FORM_TITLE_WSIL_DETAILS=Modulo dettagli WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=Vista Elenco business UDDI
+VIEW_TITLE_UDDI_REGISTRY_LIST=Vista Elenco registri UDDI
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=Vista Elenco interfacce di servizio UDDI
+VIEW_TITLE_UDDI_SERVICE_LIST=Vista Elenco servizi UDDI
+VIEW_TITLE_WSDL_SERVICE_LIST=Vista Elenco servizi WSDL
+VIEW_TITLE_WSIL_LIST=Vista Elenco collegamenti WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ja.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ja.properties
new file mode 100644
index 000000000..188eb4641
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ja.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=\u304a\u6c17\u306b\u5165\u308a
+
+# Navigator
+FAVORITES_MAIN_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e\u30e1\u30a4\u30f3
+FAVORITES_WSIL_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e WSIL
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e WSDL \u30b5\u30fc\u30d3\u30b9
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30d3\u30b8\u30cd\u30b9
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=\u304a\u6c17\u306b\u5165\u308a\u306e WSIL
+FORM_LABEL_FAVORITE_WSDL=\u304a\u6c17\u306b\u5165\u308a\u306e WSDL
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc
+FORM_LABEL_FAVORITE_UDDI_SERVICE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30d3\u30b8\u30cd\u30b9\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+FORM_LABEL_REMOVE=\u9664\u53bb
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=WSIL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u9805\u76ee\u756a\u53f7
+FORM_LABEL_NAME=\u540d\u524d
+FORM_LABEL_INQUIRY_URL=\u7167\u4f1a URL
+FORM_LABEL_PUBLISH_URL=\u516c\u958b URL
+FORM_LABEL_REGISTRY_NAME=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u540d
+FORM_LABEL_BUSINESS_NAME=\u30d3\u30b8\u30cd\u30b9\u540d
+FORM_LABEL_BUSINESS_KEY=\u30d3\u30b8\u30cd\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_SERVICE_NAME=\u30b5\u30fc\u30d3\u30b9\u540d
+FORM_LABEL_SERVICE_KEY=\u30b5\u30fc\u30d3\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_SERVICE_INTERFACE_NAME=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u540d
+FORM_LABEL_SERVICE_INTERFACE_KEY=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">\u3053\u3053\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001</a>\u3053\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u306e\u30e6\u30fc\u30b6\u30fc ID \u304a\u3088\u3073\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=\u304a\u6c17\u306b\u5165\u308a\u306e WSIL \u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e WSIL \u30ea\u30f3\u30af\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>WSIL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066 WSIL \u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002 \u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u9078\u629e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=\u304a\u6c17\u306b\u5165\u308a\u306e WSDL \u30b5\u30fc\u30d3\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e WSDL \u30b5\u30fc\u30d3\u30b9\u3092\u9078\u629e\u3057\u3001\u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u305d\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066 UDDI \u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002 \u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u9078\u629e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30d3\u30b8\u30cd\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30d3\u30b8\u30cd\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066 UDDI \u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002 \u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u9078\u629e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066 UDDI \u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002 \u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u9078\u629e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066 UDDI \u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002 \u300c<strong>\u9664\u53bb</strong>\u300d\u3092\u62bc\u3057\u3066\u9078\u629e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e WSIL \u306e\u8a73\u7d30
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e WSDL \u306e\u8a73\u7d30
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u306e\u8a73\u7d30
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30d3\u30b8\u30cd\u30b9\u306e\u8a73\u7d30
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u306e\u8a73\u7d30
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=\u304a\u6c17\u306b\u5165\u308a\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u8a73\u7d30
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=WSIL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 \u306f WSIL \u30da\u30fc\u30b8\u3067\u3059\u3067\u306b\u958b\u3044\u3066\u3044\u307e\u3059\u3002
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 \u304c WSIL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1 \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 \u304c UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 \u304c WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=\u304a\u6c17\u306b\u5165\u308a\u306e\u9664\u53bb
+MSG_CONFIRM_REMOVE_NODE=%1 \u306f\u89e3\u6c7a\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002 \u30af\u30ea\u30a2\u3057\u307e\u3059\u304b?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u304a\u6c17\u306b\u5165\u308a\u306e\u5fa9\u5143
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=\u3053\u306e\u64cd\u4f5c\u306b\u3088\u3063\u3066\u73fe\u5728\u306e\u304a\u6c17\u306b\u5165\u308a\u304c\u4e0a\u66f8\u304d\u3055\u308c\u307e\u3059\u3002 \u7d9a\u3051\u307e\u3059\u304b?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u304a\u6c17\u306b\u5165\u308a\u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u304a\u6c17\u306b\u5165\u308a\u304c\u5fa9\u5143\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E %1 \u306b\u304a\u6c17\u306b\u5165\u308a\u3092\u4fdd\u7ba1\u3067\u304d\u307e\u305b\u3093\u3002
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_NAVIGATOR_CONTENT=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_ACTIONS_CONTAINER=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTAINER=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTENT=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6cc1\u30c4\u30fc\u30eb\u30d0\u30fc
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u30d3\u30b8\u30cd\u30b9\u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+FORM_TITLE_UDDI_REGISTRY_DETAILS=UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+FORM_TITLE_WSDL_DETAILS=WSDL \u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+FORM_TITLE_WSIL_DETAILS=WSIL \u8a73\u7d30\u30d5\u30a9\u30fc\u30e0
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI \u30d3\u30b8\u30cd\u30b9\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL \u30b5\u30fc\u30d3\u30b9\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_WSIL_LIST=WSIL \u30ea\u30f3\u30af\u30fb\u30ea\u30b9\u30c8\u30fb\u30d3\u30e5\u30fc
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ko.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ko.properties
new file mode 100644
index 000000000..1c801fa7b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_ko.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=\uc990\uaca8\ucc3e\uae30
+
+# Navigator
+FAVORITES_MAIN_NODE=\uc990\uaca8\ucc3e\uae30 \uae30\ubcf8
+FAVORITES_WSIL_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 WSIL
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 WSDL \uc11c\ube44\uc2a4
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 UDDI \ube44\uc988\ub2c8\uc2a4
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=\uc990\uaca8\ucc3e\uae30 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=\uc990\uaca8\ucc3e\uae30 WSIL
+FORM_LABEL_FAVORITE_WSDL=\uc990\uaca8\ucc3e\uae30 WSDL
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=\uc990\uaca8\ucc3e\uae30 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac
+FORM_LABEL_FAVORITE_UDDI_SERVICE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=\uc990\uaca8\ucc3e\uae30 UDDI \ube44\uc988\ub2c8\uc2a4 \uc5d4\ud2f0\ud2f0
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+FORM_LABEL_REMOVE=\uc81c\uac70
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=WSIL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\ud56d\ubaa9 #
+FORM_LABEL_NAME=\uc774\ub984
+FORM_LABEL_INQUIRY_URL=\uc870\ud68c URL
+FORM_LABEL_PUBLISH_URL=\uacf5\uac1c URL
+FORM_LABEL_REGISTRY_NAME=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc774\ub984
+FORM_LABEL_BUSINESS_NAME=\ube44\uc988\ub2c8\uc2a4 \uc774\ub984
+FORM_LABEL_BUSINESS_KEY=\ube44\uc988\ub2c8\uc2a4 \ud0a4
+FORM_LABEL_SERVICE_NAME=\uc11c\ube44\uc2a4 \uc774\ub984
+FORM_LABEL_SERVICE_KEY=\uc11c\ube44\uc2a4 \ud0a4
+FORM_LABEL_SERVICE_INTERFACE_NAME=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc774\ub984
+FORM_LABEL_SERVICE_INTERFACE_KEY=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \ud0a4
+FORM_LABEL_REGISTRY_URL=\uc774 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc758 \uc0ac\uc6a9\uc790 ID \ubc0f \uc554\ud638\ub97c \uc5bb\uc73c\ub824\uba74 <a href="%1" target="_blank">\uc5ec\uae30\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624</a>.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=\uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac\uc758 \ub370\uc774\ud130 \ud30c\uc77c
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud56d\ubaa9\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=\uc990\uaca8\ucc3e\uae30 WSIL \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=\uc990\uaca8\ucc3e\uae30 WSIL \ub9c1\ud06c \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>WSIL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ub20c\ub7ec WSIL \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc81c\uac70\ud558\ub824\uba74 <strong>\uc81c\uac70</strong>\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=\uc990\uaca8\ucc3e\uae30 WSDL \uc11c\ube44\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=\uc990\uaca8\ucc3e\uae30 WSDL \uc11c\ube44\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>\uc81c\uac70</strong>\ub97c \ub20c\ub7ec \uc81c\uac70\ud558\uc2ed\uc2dc\uc624.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=\uc990\uaca8\ucc3e\uae30 UDDI \ub9c1\ud06c \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ub20c\ub7ec UDDI \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc81c\uac70\ud558\ub824\uba74 <strong>\uc81c\uac70</strong>\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=\uc990\uaca8\ucc3e\uae30 UDDI \ube44\uc988\ub2c8\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=\uc990\uaca8\ucc3e\uae30 UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ub20c\ub7ec UDDI \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc81c\uac70\ud558\ub824\uba74 <strong>\uc81c\uac70</strong>\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=\uc990\uaca8\ucc3e\uae30 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=\uc990\uaca8\ucc3e\uae30 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ub20c\ub7ec UDDI \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc81c\uac70\ud558\ub824\uba74 <strong>\uc81c\uac70</strong>\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ub20c\ub7ec UDDI \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc81c\uac70\ud558\ub824\uba74 <strong>\uc81c\uac70</strong>\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=\uc990\uaca8\ucc3e\uae30 WSIL \uc138\ubd80\uc0ac\ud56d
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=\uc990\uaca8\ucc3e\uae30 WSDL \uc138\ubd80\uc0ac\ud56d
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=\uc990\uaca8\ucc3e\uae30 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc138\ubd80\uc0ac\ud56d
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=\uc990\uaca8\ucc3e\uae30 UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=\uc990\uaca8\ucc3e\uae30 UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc138\ubd80\uc0ac\ud56d
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=WSIL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1\uc774(\uac00) WSIL \ud398\uc774\uc9c0\uc5d0 \uc774\ubbf8 \uc5f4\ub824 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1\uc774(\uac00) WSIL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1\uc744(\ub97c) \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1\uc774(\uac00) UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1\uc774(\uac00) WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1\uc744(\ub97c) \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=\uc990\uaca8\ucc3e\uae30 \uc81c\uac70
+MSG_CONFIRM_REMOVE_NODE=%1\uc744(\ub97c) \ub354 \uc774\uc0c1 \ud574\uc11d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=\uae30\ubcf8 \uc990\uaca8\ucc3e\uae30 \ubcf5\uc6d0
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=\uc774 \uc870\uc791\uc740 \ud604\uc7ac \uc990\uaca8\ucc3e\uae30\ub97c \uacb9\uccd0\uc501\ub2c8\ub2e4. \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E \uae30\ubcf8 \uc990\uaca8\ucc3e\uae30\ub97c \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I \uae30\ubcf8 \uc990\uaca8\ucc3e\uae30\uac00 \ubcf5\uc6d0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E \uc990\uaca8\ucc3e\uae30\ub97c %1\uc5d0 \uc800\uc7a5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\ub124\ube44\uac8c\uc774\ud130 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_NAVIGATOR_CONTENT=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud150\uce20
+FRAME_TITLE_ACTIONS_CONTAINER=\uc870\uce58 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTAINER=\ud2b9\uc131 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTENT=\ud2b9\uc131 \ucee8\ud150\uce20
+FRAME_TITLE_PROPERTIES_TOOLBAR=\ud2b9\uc131 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_STATUS_CONTAINER=\uc0c1\ud0dc \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_STATUS_CONTENT=\uc0c1\ud0dc \ucee8\ud150\uce20
+FRAME_TITLE_STATUS_TOOLBAR=\uc0c1\ud0dc \ub3c4\uad6c \ubaa8\uc74c
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_UDDI_REGISTRY_DETAILS=UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSDL_DETAILS=WSDL \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSIL_DETAILS=WSIL \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI \ube44\uc988\ub2c8\uc2a4 \ubaa9\ub85d \ubcf4\uae30
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac \ubaa9\ub85d \ubcf4\uae30
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \ubaa9\ub85d \ubcf4\uae30
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI \uc11c\ube44\uc2a4 \ubaa9\ub85d \ubcf4\uae30
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL \uc11c\ube44\uc2a4 \ubaa9\ub85d \ubcf4\uae30
+VIEW_TITLE_WSIL_LIST=WSIL \ub9c1\ud06c \ubaa9\ub85d \ubcf4\uae30
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_pt_BR.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_pt_BR.properties
new file mode 100644
index 000000000..e444cc11d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_pt_BR.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=Favoritos
+
+# Navigator
+FAVORITES_MAIN_NODE=Principal de Favoritos
+FAVORITES_WSIL_FOLDER_NODE=WSILs Favoritos
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=Servi\u00e7os WSDL Favoritos
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=Servi\u00e7os UDDI Favoritos
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=Neg\u00f3cios UDDI Favoritos
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=Interfaces de Servi\u00e7os UDDI Favoritos
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=Registros UDDI Favoritos
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=WSILs Favoritos
+FORM_LABEL_FAVORITE_WSDL=WSDLs Favoritos
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=Registros UDDI Favoritos
+FORM_LABEL_FAVORITE_UDDI_SERVICE=Servi\u00e7os UDDI Favoritos
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=Entidades de Neg\u00f3cios UDDI Favoritos
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=Interfaces de Servi\u00e7os UDDI Favoritos
+FORM_LABEL_REMOVE=Remover
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=Incluir na P\u00e1gina do WSIL
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=Incluir na P\u00e1gina do UDDI
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=Incluir na P\u00e1gina do WSDL
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=N\u00ba do Item
+FORM_LABEL_NAME= Nome
+FORM_LABEL_INQUIRY_URL=URL de Consulta
+FORM_LABEL_PUBLISH_URL=URL de Publica\u00e7\u00e3o
+FORM_LABEL_REGISTRY_NAME=Nome de Registro
+FORM_LABEL_BUSINESS_NAME=Nome do Neg\u00f3cio
+FORM_LABEL_BUSINESS_KEY=Chave de Neg\u00f3cios
+FORM_LABEL_SERVICE_NAME=Nome do Servi\u00e7o
+FORM_LABEL_SERVICE_KEY=Chave de Servi\u00e7o
+FORM_LABEL_SERVICE_INTERFACE_NAME=Nome da Interface de Servi\u00e7o
+FORM_LABEL_SERVICE_INTERFACE_KEY=Chave da Interface de Servi\u00e7o
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">Clique aqui</a> para obter um ID do usu\u00e1rio e senha para este registro.
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=Arquivos de Dados para Categorias Definidas pelo Usu\u00e1rio
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E Selecione pelo menos um item.
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=Listar WSILs Favoritos
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=Selecione um conjunto de links WSIL favoritos e pressione <strong>Incluir na P\u00e1gina do WSIL</strong> para abri-los no navegador do WSIL. Pressione <strong>Remover</strong> para remover as sele\u00e7\u00f5es.
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=Listar Servi\u00e7os WSDL Favoritos
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=Selecione um conjunto de servi\u00e7os WSDL favoritos e pressione <strong>Remover</strong> para remov\u00ea-los.
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=Listar Servi\u00e7os UDDI Favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=Selecione um conjunto de servi\u00e7os UDDI favoritos e pressione <strong>Incluir na P\u00e1gina do UDDI</strong> para abri-los no navegador do UDDI. Pressione <strong>Remover</strong> para remover as sele\u00e7\u00f5es.
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=Listar Neg\u00f3cios UDDI Favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=Selecione um conjunto de neg\u00f3cios UDDI favoritos e pressione <strong>Incluir na P\u00e1gina do UDDI</strong> para abri-los no navegador do UDDI. Pressione <strong>Remover</strong> para remover as sele\u00e7\u00f5es.
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=Listar Registros UDDI Favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=Selecione um conjunto de registros UDDI favoritos e pressione <strong>Incluir na P\u00e1gina do UDDI</strong> para abri-los no navegador do UDDI. Pressione <strong>Remover</strong> para remover as sele\u00e7\u00f5es.
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=Listar Interfaces de Servi\u00e7os UDDI Favoritos
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=Selecione um conjunto de interfaces de servi\u00e7os UDDI favoritos e pressione <strong>Incluir na P\u00e1gina do UDDI</strong> para abri-los no navegador do UDDI. Pressione <strong>Remover</strong> para remover as sele\u00e7\u00f5es.
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=Detalhes do WSIL Favorito
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=Detalhes do WSDL Favorito
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=Detalhes do Registro UDDI Favorito
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=Detalhes do Neg\u00f3cio UDDI Favorito
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=Detalhes do Servi\u00e7o UDDI Favorito
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=Detalhes da Interface de Servi\u00e7o UDDI Favorita
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=Incluir na P\u00e1gina do WSIL
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 j\u00e1 est\u00e1 aberto na P\u00e1gina do WSIL.
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 foi inclu\u00eddo na P\u00e1gina do WSIL.
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1 n\u00e3o p\u00f4de ser carregado
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=Incluir na P\u00e1gina do UDDI
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E %1 n\u00e3o p\u00f4de ser localizado no registro.
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 foi inclu\u00eddo na P\u00e1gina do UDDI.
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Incluir na P\u00e1gina do WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 foi inclu\u00eddo na P\u00e1gina do WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 n\u00e3o p\u00f4de ser carregado
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=Remover Favorito
+MSG_CONFIRM_REMOVE_NODE=%1 n\u00e3o tem mais solu\u00e7\u00e3o. Deseja limp\u00e1-lo?
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=Restaurar Favoritos Padr\u00e3o
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=Esta opera\u00e7\u00e3o sobrescrever\u00e1 os favoritos atuais. Deseja continuar?
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E Imposs\u00edvel carregar os favoritos padr\u00e3o.
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I Favoritos Padr\u00e3o foram restaurados.
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E Imposs\u00edvel salvar favoritos no %1.
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Cont\u00eainer do Navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de Ferramentas do Navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Conte\u00fado do Navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Cont\u00eainer de A\u00e7\u00f5es
+FRAME_TITLE_PROPERTIES_CONTAINER=Cont\u00eainer de Propriedades
+FRAME_TITLE_PROPERTIES_CONTENT=Conte\u00fado das Propriedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de Ferramentas de Propriedades
+FRAME_TITLE_STATUS_CONTAINER=Cont\u00eainer de Status
+FRAME_TITLE_STATUS_CONTENT=Conte\u00fado do Status
+FRAME_TITLE_STATUS_TOOLBAR=Barra de Ferramentas de Status
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formul\u00e1rio de Detalhes do Neg\u00f3cio UDDI
+FORM_TITLE_UDDI_REGISTRY_DETAILS=Formul\u00e1rio de Detalhes do Registro UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formul\u00e1rio de Detalhes do Servi\u00e7o UDDI
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=Formul\u00e1rio de Detalhes da Interface do Servi\u00e7o UDDI
+FORM_TITLE_WSDL_DETAILS=Formul\u00e1rio de Detalhes do WSDL
+FORM_TITLE_WSIL_DETAILS=Formul\u00e1rio de Detalhes do WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=Visualiza\u00e7\u00e3o da Lista de Neg\u00f3cios UDDI
+VIEW_TITLE_UDDI_REGISTRY_LIST=Visualiza\u00e7\u00e3o da Lista de Registros UDDI
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=Visualiza\u00e7\u00e3o da Lista de Interfaces de Servi\u00e7os UDDI
+VIEW_TITLE_UDDI_SERVICE_LIST=Visualiza\u00e7\u00e3o da Lista de Servi\u00e7os UDDI
+VIEW_TITLE_WSDL_SERVICE_LIST=Visualiza\u00e7\u00e3o da Lista de Servi\u00e7os WSDL
+VIEW_TITLE_WSIL_LIST=Visualiza\u00e7\u00e3o da Lista de Links WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_CN.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_CN.properties
new file mode 100644
index 000000000..89b4e4615
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_CN.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=\u6536\u85cf\u5939
+
+# Navigator
+FAVORITES_MAIN_NODE=\u6536\u85cf\u5939\u4e3b\u8981
+FAVORITES_WSIL_FOLDER_NODE=\u6536\u85cf\u5939 WSIL
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=\u6536\u85cf\u5939 WSDL \u670d\u52a1
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=\u6536\u85cf\u5939 UDDI \u670d\u52a1
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=\u6536\u85cf\u5939 UDDI \u4e1a\u52a1
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=\u6536\u85cf\u5939 UDDI \u670d\u52a1\u63a5\u53e3
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=\u6536\u85cf\u5939 UDDI \u6ce8\u518c\u4e2d\u5fc3
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=\u6536\u85cf\u5939 WSIL
+FORM_LABEL_FAVORITE_WSDL=\u6536\u85cf\u5939 WSDL
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=\u6536\u85cf\u5939 UDDI \u6ce8\u518c\u4e2d\u5fc3
+FORM_LABEL_FAVORITE_UDDI_SERVICE=\u6536\u85cf\u5939 UDDI \u670d\u52a1
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=\u6536\u85cf\u5939 UDDI \u4e1a\u52a1\u5b9e\u4f53
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=\u6536\u85cf\u5939 UDDI \u670d\u52a1\u63a5\u53e3
+FORM_LABEL_REMOVE=\u9664\u53bb
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=\u6dfb\u52a0\u81f3 WSIL \u9875\u9762
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=\u6dfb\u52a0\u5230 UDDI \u9875\u9762
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=\u6dfb\u52a0\u5230 WSDL \u9875\u9762
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u7f16\u53f7
+FORM_LABEL_NAME=\u540d\u79f0
+FORM_LABEL_INQUIRY_URL=\u67e5\u8be2 URL
+FORM_LABEL_PUBLISH_URL=\u53d1\u5e03 URL
+FORM_LABEL_REGISTRY_NAME=\u6ce8\u518c\u4e2d\u5fc3\u540d\u79f0
+FORM_LABEL_BUSINESS_NAME=\u4e1a\u52a1\u540d\u79f0
+FORM_LABEL_BUSINESS_KEY=\u4e1a\u52a1\u5bc6\u94a5
+FORM_LABEL_SERVICE_NAME=\u670d\u52a1\u540d\u79f0
+FORM_LABEL_SERVICE_KEY=\u670d\u52a1\u5bc6\u94a5
+FORM_LABEL_SERVICE_INTERFACE_NAME=\u670d\u52a1\u63a5\u53e3\u540d
+FORM_LABEL_SERVICE_INTERFACE_KEY=\u670d\u52a1\u63a5\u53e3\u5bc6\u94a5
+FORM_LABEL_REGISTRY_URL=<a href="%1" target="_blank">\u5355\u51fb\u6b64\u5904</a>\u4ee5\u83b7\u53d6\u6b64\u6ce8\u518c\u4e2d\u5fc3\u7684\u7528\u6237\u6807\u8bc6\u548c\u5bc6\u7801\u3002
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=\u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b\u7684\u6570\u636e\u6587\u4ef6
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E \u81f3\u5c11\u9009\u62e9\u4e00\u9879\u3002
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=\u5217\u793a\u6536\u85cf\u5939 WSIL
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 WSIL \u94fe\u63a5\u5e76\u6309<strong>\u6dfb\u52a0\u81f3 WSIL \u9875\u9762</strong>\u4ee5\u5728 WSIL \u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u6240\u9009\u5185\u5bb9\u3002
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=\u5217\u793a\u6536\u85cf\u5939 WSDL \u670d\u52a1
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 WSDL \u670d\u52a1\u5e76\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u5b83\u4eec\u3002
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=\u5217\u793a\u6536\u85cf\u5939 UDDI \u670d\u52a1
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 UDDI \u670d\u52a1\u5e76\u6309<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5728 UDDI \u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u6240\u9009\u5185\u5bb9\u3002
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=\u5217\u793a\u6536\u85cf\u5939 UDDI \u4e1a\u52a1
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 UDDI \u4e1a\u52a1\u5e76\u6309<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5728 UDDI \u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u6240\u9009\u5185\u5bb9\u3002
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=\u5217\u793a\u6536\u85cf\u5939 UDDI \u6ce8\u518c\u4e2d\u5fc3
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 UDDI \u6ce8\u518c\u4e2d\u5fc3\u5e76\u6309<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5728 UDDI \u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u6240\u9009\u5185\u5bb9\u3002
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=\u5217\u793a\u6536\u85cf\u5939 UDDI \u670d\u52a1\u63a5\u53e3
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=\u9009\u62e9\u4e00\u7ec4\u6536\u85cf\u5939 UDDI \u670d\u52a1\u63a5\u53e3\u5e76\u6309<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5728 UDDI \u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002\u6309<strong>\u9664\u53bb</strong>\u4ee5\u9664\u53bb\u6240\u9009\u5185\u5bb9\u3002
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=\u6536\u85cf\u5939 WSIL \u8be6\u7ec6\u4fe1\u606f
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=\u6536\u85cf\u5939 WSDL \u8be6\u7ec6\u4fe1\u606f
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=\u6536\u85cf\u5939 UDDI \u6ce8\u518c\u4e2d\u5fc3\u8be6\u7ec6\u4fe1\u606f
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=\u6536\u85cf\u5939 UDDI \u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=\u6536\u85cf\u5939 UDDI \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=\u6536\u85cf\u5939 UDDI \u670d\u52a1\u63a5\u53e3\u8be6\u7ec6\u4fe1\u606f
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=\u6dfb\u52a0\u81f3 WSIL \u9875\u9762
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E \u5df2\u7ecf\u5728 WSIL \u9875\u9762\u4e2d\u6253\u5f00\u4e86 %1\u3002
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I \u5df2\u7ecf\u5c06 %1 \u6dfb\u52a0\u81f3 WSIL \u9875\u9762\u3002
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E \u672a\u80fd\u88c5\u5165 WSIL %1\u3002
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=\u6dfb\u52a0\u5230 UDDI \u9875\u9762
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230 %1\u3002
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I \u5df2\u7ecf\u5c06 %1 \u6dfb\u52a0\u5230 UDDI \u9875\u9762\u3002
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=\u6dfb\u52a0\u5230 WSDL \u9875\u9762
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I \u5df2\u7ecf\u5c06 %1 \u6dfb\u52a0\u5230 WSDL \u9875\u9762\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E \u65e0\u6cd5\u88c5\u5165 WSDL %1\u3002
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=\u9664\u53bb\u6536\u85cf\u9879
+MSG_CONFIRM_REMOVE_NODE=%1 \u4e0d\u518d\u53ef\u89e3\u6790\u3002\u60f3\u8981\u6e05\u9664\u5b83\u5417\uff1f
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=\u6062\u590d\u7f3a\u7701\u6536\u85cf\u5939
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=\u6b64\u64cd\u4f5c\u5c06\u8986\u76d6\u5f53\u524d\u6536\u85cf\u5939\u3002\u60f3\u8981\u7ee7\u7eed\u5417\uff1f
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E \u65e0\u6cd5\u88c5\u5165\u7f3a\u7701\u6536\u85cf\u5939\u3002
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I \u6062\u590d\u4e86\u7f3a\u7701\u6536\u85cf\u5939\u3002
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E \u65e0\u6cd5\u5c06\u6536\u85cf\u5939\u4fdd\u5b58\u81f3 %1\u3002
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5bfc\u822a\u5668\u5bb9\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5bfc\u822a\u5668\u5de5\u5177\u680f
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5bfc\u822a\u5668\u5185\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u64cd\u4f5c\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5c5e\u6027\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTENT=\u5c5e\u6027\u5185\u5bb9
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5c5e\u6027\u5de5\u5177\u680f
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6001\u5bb9\u5668
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6001\u5185\u5bb9
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6001\u5de5\u5177\u680f
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_UDDI_REGISTRY_DETAILS=UDDI \u6ce8\u518c\u4e2d\u5fc3\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=UDDI \u670d\u52a1\u63a5\u53e3\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSDL_DETAILS=WSDL \u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSIL_DETAILS=WSIL \u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI \u4e1a\u52a1\u5217\u8868\u89c6\u56fe
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI \u6ce8\u518c\u4e2d\u5fc3\u5217\u8868\u89c6\u56fe
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI \u670d\u52a1\u63a5\u53e3\u5217\u8868\u89c6\u56fe
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI \u670d\u52a1\u5217\u8868\u89c6\u56fe
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL \u670d\u52a1\u5217\u8868\u89c6\u56fe
+VIEW_TITLE_WSIL_LIST=WSIL \u94fe\u63a5\u5217\u8868\u89c6\u56fe
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_TW.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_TW.properties
new file mode 100644
index 000000000..394194d3f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/favorites_zh_TW.properties
@@ -0,0 +1,145 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=\u6211\u7684\u6700\u611b
+
+# Navigator
+FAVORITES_MAIN_NODE=\u6211\u7684\u6700\u611b\u4e3b\u756b\u9762
+FAVORITES_WSIL_FOLDER_NODE=\u6211\u7684\u6700\u611b WSIL
+FAVORITES_WSDL_SERVICE_FOLDER_NODE=\u6211\u7684\u6700\u611b WSDL \u670d\u52d9
+FAVORITES_UDDI_SERVICE_FOLDER_NODE=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9
+FAVORITES_UDDI_BUSINESSES_FOLDER_NODE=\u6211\u7684\u6700\u611b UDDI \u5546\u696d
+FAVORITES_UDDI_SERVICE_INTERFACES_FOLDER_NODE=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u4ecb\u9762
+FAVORITES_UDDI_REGISTRIES_FOLDER_NODE=\u6211\u7684\u6700\u611b UDDI \u767b\u9304
+
+# Form
+FORM_LABEL_FAVORITE_WSIL=\u6211\u7684\u6700\u611b WSIL
+FORM_LABEL_FAVORITE_WSDL=\u6211\u7684\u6700\u611b WSDL
+FORM_LABEL_FAVORITE_UDDI_REGISTRY=\u6211\u7684\u6700\u611b UDDI \u767b\u9304
+FORM_LABEL_FAVORITE_UDDI_SERVICE=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9
+FORM_LABEL_FAVORITE_UDDI_BUSINESS=\u6211\u7684\u6700\u611b UDDI \u5546\u696d\u5be6\u9ad4
+FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u4ecb\u9762
+FORM_LABEL_REMOVE=\u79fb\u9664
+FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE=\u52a0\u5230 WSIL \u9801\u9762
+FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE=\u52a0\u5230 UDDI \u9801\u9762
+FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE=\u52a0\u5230 WSDL \u9801\u9762
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u9805\u76ee #
+FORM_LABEL_NAME=\u540d\u7a31
+FORM_LABEL_INQUIRY_URL=\u67e5\u8a62 URL
+FORM_LABEL_PUBLISH_URL=\u767c\u4f48 URL
+FORM_LABEL_REGISTRY_NAME=\u767b\u9304\u540d\u7a31
+FORM_LABEL_BUSINESS_NAME=\u5546\u696d\u540d\u7a31
+FORM_LABEL_BUSINESS_KEY=\u5546\u696d\u91d1\u9470
+FORM_LABEL_SERVICE_NAME=\u670d\u52d9\u540d\u7a31
+FORM_LABEL_SERVICE_KEY=\u670d\u52d9\u91d1\u9470
+FORM_LABEL_SERVICE_INTERFACE_NAME=\u670d\u52d9\u4ecb\u9762\u540d\u7a31
+FORM_LABEL_SERVICE_INTERFACE_KEY=\u670d\u52d9\u4ecb\u9762\u7d22\u5f15\u9375
+FORM_LABEL_REGISTRY_URL=\u8acb<a href="%1" target="_blank">\u6309\u4e00\u4e0b\u9019\u88e1</a>\u4f86\u53d6\u5f97\u9019\u500b\u767b\u9304\u7684\u4f7f\u7528\u8005 ID \u548c\u5bc6\u78bc\u3002
+FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES=\u4f7f\u7528\u8005\u5b9a\u7fa9\u7684\u7a2e\u985e\u4e4b\u8cc7\u6599\u6a94
+MSG_ERROR_NOTHING_SELECTED=IWAB0315E \u8acb\u9078\u53d6\u81f3\u5c11\u4e00\u500b\u9805\u76ee\u3002
+
+# ListFavoriteWSILAction
+ALT_LIST_FAVORITE_WSIL=\u5217\u51fa\u6211\u7684\u6700\u611b WSIL
+FORM_LABEL_LIST_FAVORITE_WSIL_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b WSIL \u93c8\u7d50\uff0c\u518d\u6309<strong>\u52a0\u5230 WSIL \u9801\u9762</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728 WSIL \u5c0e\u89bd\u5668\u4e2d\u3002\u8acb\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u9078\u9805\u3002
+
+# ListFavoriteWSDLServiceAction
+ALT_LIST_FAVORITE_WSDL_SERVICE=\u5217\u51fa\u6211\u7684\u6700\u611b WSDL \u670d\u52d9
+FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b WSDL \u670d\u52d9\uff0c\u518d\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u5b83\u5011\u3002
+
+# ListFavoriteUDDIServiceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE=\u5217\u51fa\u6211\u7684\u6700\u611b UDDI \u670d\u52d9
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\uff0c\u518d\u6309<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728 UDDI \u5c0e\u89bd\u5668\u4e2d\u3002\u8acb\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u9078\u9805\u3002
+
+# ListFavoriteUDDIBusinessAction
+ALT_LIST_FAVORITE_UDDI_BUSINESS=\u5217\u51fa\u6211\u7684\u6700\u611b UDDI \u5546\u696d
+FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b UDDI \u5546\u696d\uff0c\u518d\u6309<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728 UDDI \u5c0e\u89bd\u5668\u4e2d\u3002\u8acb\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u9078\u9805\u3002
+
+# ListFavoriteUDDIRegistryAction
+ALT_LIST_FAVORITE_UDDI_REGISTRY=\u5217\u51fa\u6211\u7684\u6700\u611b UDDI \u767b\u9304
+FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b UDDI \u767b\u9304\uff0c\u518d\u6309<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728 UDDI \u5c0e\u89bd\u5668\u4e2d\u3002\u8acb\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u9078\u9805\u3002
+
+# ListFavoriteUDDIServiceInterfaceAction
+ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE=\u5217\u51fa\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u4ecb\u9762
+FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC=\u8acb\u9078\u53d6\u4e00\u7d44\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u4ecb\u9762\uff0c\u518d\u6309<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728 UDDI \u5c0e\u89bd\u5668\u4e2d\u3002\u8acb\u6309<strong>\u79fb\u9664</strong>\u4f86\u79fb\u9664\u9078\u9805\u3002
+
+# FavoritesWSILDetailsAction
+ALT_FAVORITES_WSIL_DETAILS=\u6211\u7684\u6700\u611b WSIL \u8a73\u7d30\u8cc7\u6599
+
+# FavoritesWSDLDetailsAction
+ALT_FAVORITES_WSDL_DETAILS=\u6211\u7684\u6700\u611b WSDL \u8a73\u7d30\u8cc7\u6599
+
+# FavoritesUDDIRegistryDetailsAction
+ALT_FAVORITES_UDDI_REGISTRY_DETAILS=\u6211\u7684\u6700\u611b UDDI \u767b\u9304\u8a73\u7d30\u8cc7\u6599
+
+# FavoritesUDDIBusinessDetailsAction
+ALT_FAVORITES_UDDI_BUSINESS_DETAILS=\u6211\u7684\u6700\u611b UDDI \u5546\u696d\u8a73\u7d30\u8cc7\u6599
+
+# FavoritesUDDIServiceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_DETAILS=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u8a73\u7d30\u8cc7\u6599
+
+# FavoritesUDDIServiceInterfaceDetailsAction
+ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS=\u6211\u7684\u6700\u611b UDDI \u670d\u52d9\u4ecb\u9762\u8a73\u7d30\u8cc7\u6599
+
+# AddWSILToWSILPerspectiveAction
+ALT_ADD_WSIL_TO_WSIL_PERSPECTIVE=\u52a0\u5230 WSIL \u9801\u9762
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0316E %1 \u5df2\u958b\u5728 WSIL \u9801\u9762\u4e2d\u3002
+MSG_INFO_ADD_WSIL_TO_WSIL_PERSPECTIVE_SUCCESSFUL=IWAB0317I %1 \u5df2\u52a0\u5230 WSIL \u9801\u9762\u4e2d\u3002
+MSG_ERROR_ADD_WSIL_TO_WSIL_PERSPECTIVE=IWAB0318E WSIL %1 \u7121\u6cd5\u8f09\u5165\u3002
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_TO_UDDI_PERSPECTIVE=\u52a0\u5230 UDDI \u9801\u9762
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0320E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1\u3002
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0321I %1 \u5df2\u52a0\u5230 UDDI \u9801\u9762\u4e2d\u3002
+
+# FavoritesAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=\u52a0\u5230 WSDL \u9801\u9762
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0369I %1 \u5df2\u52a0\u5230 WSDL \u9801\u9762\u4e2d\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0370E WSDL %1 \u7121\u6cd5\u8f09\u5165\u3002
+
+# RemoveFavoriteAction
+ALT_REMOVE_FAVORITE=\u79fb\u9664\u6211\u7684\u6700\u611b
+MSG_CONFIRM_REMOVE_NODE=%1 \u5df2\u7121\u6cd5\u89e3\u6790\u3002\u60a8\u8981\u6e05\u9664\u5b83\u55ce\uff1f
+
+# FavoritesRestoreDefaultFavoritesAction
+ALT_RESTORE_DEFAULT_FAVORITES=\u9084\u539f\u9810\u8a2d\u6211\u7684\u6700\u611b
+MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES=\u9019\u9805\u4f5c\u696d\u5c07\u6539\u5beb\u73fe\u884c\u6211\u7684\u6700\u611b\u3002\u60a8\u8981\u7e7c\u7e8c\u55ce\uff1f
+MSG_ERROR_OPEN_FAVORITES_BACKUP=IWAB0134E \u7121\u6cd5\u8f09\u5165\u9810\u8a2d\u6211\u7684\u6700\u611b\u3002
+MSG_INFO_FAVORITES_RESTORED_TO_DEFAULT=IWAB0322I \u9084\u539f\u9810\u8a2d\u6211\u7684\u6700\u611b\u3002
+MSG_ERROR_SAVE_FAVORITES_WSIL=IWAB0186E \u7121\u6cd5\u5c07\u6211\u7684\u6700\u611b\u5132\u5b58\u5230 %1 \u4e2d\u3002
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5c0e\u89bd\u5668\u5132\u5b58\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5c0e\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5c0e\u89bd\u5668\u5167\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u52d5\u4f5c\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5167\u5bb9\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTENT=\u5167\u5bb9\u5167\u6587
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5167\u5bb9\u5de5\u5177\u5217
+FRAME_TITLE_STATUS_CONTAINER=\u72c0\u614b\u5132\u5b58\u5668
+FRAME_TITLE_STATUS_CONTENT=\u72c0\u614b\u5167\u5bb9
+FRAME_TITLE_STATUS_TOOLBAR=\u72c0\u614b\u5de5\u5177\u5217
+
+# Form titles
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u5546\u696d\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_UDDI_REGISTRY_DETAILS=UDDI \u767b\u9304\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u670d\u52d9\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS=UDDI \u670d\u52d9\u4ecb\u9762\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSDL_DETAILS=WSDL \u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSIL_DETAILS=WSIL \u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESS_LIST=UDDI \u5546\u696d\u6e05\u55ae\u8996\u5716
+VIEW_TITLE_UDDI_REGISTRY_LIST=UDDI \u767b\u9304\u6e05\u55ae\u8996\u5716
+VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST=UDDI \u670d\u52d9\u4ecb\u9762\u6e05\u55ae\u8996\u5716
+VIEW_TITLE_UDDI_SERVICE_LIST=UDDI \u670d\u52d9\u6e05\u55ae\u8996\u5716
+VIEW_TITLE_WSDL_SERVICE_LIST=WSDL \u670d\u52d9\u6e05\u55ae\u8996\u5716
+VIEW_TITLE_WSIL_LIST=WSIL \u93c8\u7d50\u6e05\u55ae\u8996\u5716
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi.properties
new file mode 100644
index 000000000..2972b79ee
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI Main
+NODE_NAME_QUERIES_FOLDER=Executed Queries
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Published Businesses
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Published Services
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Published Service Interfaces
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Open Registry
+FORM_LABEL_OPEN_REGISTRY_DESC=Specify the name and inquiry URL of the registry to be opened. Selecting a favorite registry will automatically fill in the required information. Press <strong>Go</strong> to open the registry.
+FORM_LABEL_FAVORITE_REGISTRY=Favorite Registry
+FORM_LABEL_REGISTRY_NAME=Registry Name
+FORM_LABEL_INQUIRY_URL=Inquiry URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Check for user-defined categories
+DEFAULT_REGISTRY_NAME=IBM UDDI Test Registry
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Enter a valid registry name.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Enter a valid inquiry URL.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I The registry named %1 located at %2 was opened successfully.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=Is WebSphere UDDI registry?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere Private UDDI Registry
+FORM_LABEL_REGISTRY_HOST=Host
+FORM_LABEL_REGISTRY_PORT=Port
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Click here</a> to load this category's data.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Category data file name
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I No user defined categories detected.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Category data for %1 is not available or is invalid.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Data for user defined category %1 was successfully loaded.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Invalid data file for user defined category %1. A category key '%2' was found but '%3' was expected.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Unknown format in line: %1 of the data file for user defined category %2. The line is: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Invalid data file for user defined category %1.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E An error occured while saving data for category %1. Exception text: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Category Browser
+ALT_CATEGORIES=Categories
+
+# Details
+ALT_REGISTRY_DETAILS=Registry Details
+ALT_BUSINESS_DETAILS=Business Details
+ALT_SERVICE_DETAILS=Service Details
+ALT_SERVICE_INTERFACE_DETAILS=Service Interface Details
+FORM_LABEL_DETAILS_EDITABLE=Details for <strong>%1</strong> are shown below. Some items may be added, removed, or changed. Authentication may be required for changes. Other actions are listed at the bottom of this page.
+
+# Get
+ALT_GET=Get
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Name value
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Description value
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Category key name
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Category key value
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Identifier key name
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Identifier key value
+FORM_CONTROL_TITLE_DISCOVERY_URL=Discovery URL
+
+# Find actions
+ALT_FIND=Find
+ALT_SUBQUERY=Find %1 Subquery
+FORM_LABEL_QUERY_NAME=Name of this query
+DEFAULT_QUERY_NAME=query results
+DEFAULT_SUBQUERY_NAME=%1 - %2 subquery
+FORM_LABEL_SEARCH_FOR=Search for
+FORM_OPTION_BUSINESSES=Businesses
+FORM_OPTION_SERVICES=Services
+FORM_OPTION_SERVICE_INTERFACES=Service Interfaces
+FORM_LABEL_SEARCH_TYPE=Type of search
+FORM_RADIO_SIMPLE=Simple
+FORM_RADIO_ADVANCED=Advanced
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Enter the partial or complete name of a business to search for. The '%' symbol can be used as a wildcard that matches any character. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_FIND_ADVANCED_DESC=Enter values for one or more of the parameters listed below. The '%' symbol can be used as a wildcard that matches any character in the Name field of the Names table. Authentication may be required. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Enter the UUID of the business to search for. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_NAMES=Names
+FORM_LINK_ADD=Add
+FORM_LINK_GET=Get
+FORM_LINK_FIND=Find
+FORM_LINK_REMOVE=Remove
+FORM_LABEL_OWNED=Owned
+FORM_LABEL_PUBLISH_URL=Publish URL
+FORM_LABEL_USERID=User ID
+FORM_LABEL_PASSWORD=Password
+FORM_LABEL_LANGUAGE=Language
+FORM_LABEL_NAME=Name
+FORM_LABEL_DESCRIPTION=Description
+FORM_OPTION_LANGUAGE_EN=English
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abkhazian
+FORM_OPTION_LANGUAGE_AF=Afrikaans
+FORM_OPTION_LANGUAGE_AM=Amharic
+FORM_OPTION_LANGUAGE_AR=Arabic
+FORM_OPTION_LANGUAGE_AS=Assamese
+FORM_OPTION_LANGUAGE_AY=Aymara
+FORM_OPTION_LANGUAGE_AZ=Azerbaijani
+FORM_OPTION_LANGUAGE_BA=Bashkir
+FORM_OPTION_LANGUAGE_BE=Byelorussian
+FORM_OPTION_LANGUAGE_BG=Bulgarian
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bislama
+FORM_OPTION_LANGUAGE_BN=Bengali; Bangla
+FORM_OPTION_LANGUAGE_BO=Tibetan
+FORM_OPTION_LANGUAGE_BR=Breton
+FORM_OPTION_LANGUAGE_CA=Catalan
+FORM_OPTION_LANGUAGE_CO=Corsican
+FORM_OPTION_LANGUAGE_CZ=Czech
+FORM_OPTION_LANGUAGE_CY=Welsh
+FORM_OPTION_LANGUAGE_DA=Danish
+FORM_OPTION_LANGUAGE_DE=German
+FORM_OPTION_LANGUAGE_DZ=Bhutani
+FORM_OPTION_LANGUAGE_EL=Greek
+FORM_OPTION_LANGUAGE_EO=Esperanto
+FORM_OPTION_LANGUAGE_ES=Spanish
+FORM_OPTION_LANGUAGE_ET=Estonian
+FORM_OPTION_LANGUAGE_EU=Basque
+FORM_OPTION_LANGUAGE_FA=Persian
+FORM_OPTION_LANGUAGE_FI=Finnish
+FORM_OPTION_LANGUAGE_FJ=Fiji
+FORM_OPTION_LANGUAGE_FO=Faeroese
+FORM_OPTION_LANGUAGE_FR=French
+FORM_OPTION_LANGUAGE_FY=Frisian
+FORM_OPTION_LANGUAGE_GA=Irish
+FORM_OPTION_LANGUAGE_GD=Scots Gaelic
+FORM_OPTION_LANGUAGE_GL=Galician
+FORM_OPTION_LANGUAGE_GN=Guarani
+FORM_OPTION_LANGUAGE_GU=Gujarati
+FORM_OPTION_LANGUAGE_HA=Hausa
+FORM_OPTION_LANGUAGE_HI=Hindi
+FORM_OPTION_LANGUAGE_HR=Croatian
+FORM_OPTION_LANGUAGE_HU=Hungarian
+FORM_OPTION_LANGUAGE_HY=Armenian
+FORM_OPTION_LANGUAGE_IA=Interlingua
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiak
+FORM_OPTION_LANGUAGE_IN=Indonesian
+FORM_OPTION_LANGUAGE_IS=Icelandic
+FORM_OPTION_LANGUAGE_IT=Italian
+FORM_OPTION_LANGUAGE_IW=Hebrew
+FORM_OPTION_LANGUAGE_JA=Japanese
+FORM_OPTION_LANGUAGE_JI=Yiddish
+FORM_OPTION_LANGUAGE_JW=Javanese
+FORM_OPTION_LANGUAGE_KA=Georgian
+FORM_OPTION_LANGUAGE_KK=Kazakh
+FORM_OPTION_LANGUAGE_KL=Greenlandic
+FORM_OPTION_LANGUAGE_KM=Cambodian
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=Korean
+FORM_OPTION_LANGUAGE_KS=Kashmiri
+FORM_OPTION_LANGUAGE_KU=Kurdish
+FORM_OPTION_LANGUAGE_KY=Kirghiz
+FORM_OPTION_LANGUAGE_LA=Latin
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=Laothian
+FORM_OPTION_LANGUAGE_LT=Lithuanian
+FORM_OPTION_LANGUAGE_LV=Latvian, Lettish
+FORM_OPTION_LANGUAGE_MG=Malagasy
+FORM_OPTION_LANGUAGE_MI=Maori
+FORM_OPTION_LANGUAGE_MK=Macedonian
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=Mongolian
+FORM_OPTION_LANGUAGE_MO=Moldavian
+FORM_OPTION_LANGUAGE_MR=Marathi
+FORM_OPTION_LANGUAGE_MS=Malay
+FORM_OPTION_LANGUAGE_MT=Maltese
+FORM_OPTION_LANGUAGE_MY=Burmese
+FORM_OPTION_LANGUAGE_NA=Nauru
+FORM_OPTION_LANGUAGE_NE=Nepali
+FORM_OPTION_LANGUAGE_NL=Dutch
+FORM_OPTION_LANGUAGE_NO=Norwegian
+FORM_OPTION_LANGUAGE_OC=Occitan
+FORM_OPTION_LANGUAGE_OM=(Afan) Oromo
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=Punjabi
+FORM_OPTION_LANGUAGE_PL=Polish
+FORM_OPTION_LANGUAGE_PS=Pashto, Pushto
+FORM_OPTION_LANGUAGE_PT=Portuguese
+FORM_OPTION_LANGUAGE_QU=Quechua
+FORM_OPTION_LANGUAGE_RM=Rhaeto-Romance
+FORM_OPTION_LANGUAGE_RN=Kirundi
+FORM_OPTION_LANGUAGE_RO=Romanian
+FORM_OPTION_LANGUAGE_RU=Russian
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=Sanskrit
+FORM_OPTION_LANGUAGE_SD=Sindhi
+FORM_OPTION_LANGUAGE_SG=Sangro
+FORM_OPTION_LANGUAGE_SH=Serbo-Croatian
+FORM_OPTION_LANGUAGE_SI=Singhalese
+FORM_OPTION_LANGUAGE_SK=Slovak
+FORM_OPTION_LANGUAGE_SL=Slovenian
+FORM_OPTION_LANGUAGE_SM=Samoan
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=Somali
+FORM_OPTION_LANGUAGE_SQ=Albanian
+FORM_OPTION_LANGUAGE_SR=Serbian
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Sundanese
+FORM_OPTION_LANGUAGE_SV=Swedish
+FORM_OPTION_LANGUAGE_SW=Swahili
+FORM_OPTION_LANGUAGE_TA=Tamil
+FORM_OPTION_LANGUAGE_TE=Tegulu
+FORM_OPTION_LANGUAGE_TG=Tajik
+FORM_OPTION_LANGUAGE_TH=Thai
+FORM_OPTION_LANGUAGE_TI=Tigrinya
+FORM_OPTION_LANGUAGE_TK=Turkmen
+FORM_OPTION_LANGUAGE_TL=Tagalog
+FORM_OPTION_LANGUAGE_TN=Setswana
+FORM_OPTION_LANGUAGE_TO=Tonga
+FORM_OPTION_LANGUAGE_TR=Turkish
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=Tatar
+FORM_OPTION_LANGUAGE_TW=Twi
+FORM_OPTION_LANGUAGE_UK=Ukrainian
+FORM_OPTION_LANGUAGE_UR=Urdu
+FORM_OPTION_LANGUAGE_UZ=Uzbek
+FORM_OPTION_LANGUAGE_VI=Vietnamese
+FORM_OPTION_LANGUAGE_VO=Volapuk
+FORM_OPTION_LANGUAGE_WO=Wolof
+FORM_OPTION_LANGUAGE_XH=Xhosa
+FORM_OPTION_LANGUAGE_YO=Yoruba
+FORM_OPTION_LANGUAGE_ZH=Chinese
+FORM_OPTION_LANGUAGE_ZU=Zulu
+FORM_LABEL_EXACT_NAME_MATCH=Exact match
+FORM_LABEL_CASE_SENSITIVE_MATCH=Case sensitive
+FORM_LABEL_SOUNDEX=Sound alike
+FORM_LABEL_IDENTIFIERS=Identifiers
+FORM_LABEL_IDENTIFIER_TYPE=Type
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry
+
+FORM_LABEL_KEY_NAME=Key name
+FORM_LABEL_KEY_VALUE=Key value
+FORM_LABEL_CATEGORIES=Categories
+FORM_LABEL_CATEGORY_TYPE=Type
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW Community
+FORM_LABEL_BUSINESS_CATEGORIES=Compare with:
+FORM_OPTION_BUSINESSES_ONLY=Businesses only
+FORM_OPTION_SERVICES_ONLY=Services only
+FORM_OPTION_BOTH=Businesses and Services
+FORM_LABEL_DISCOVERYURLS=Discovery URLs
+FORM_LABEL_DISCOVERYURL=Discovery URL
+FORM_LABEL_FINDQUALIFIERS=Find Qualifiers
+FORM_LABEL_COMBINE_KEYS=Combine keys:
+FORM_OPTION_ANDALLKEYS=And
+FORM_OPTION_ORALLKEYS=Or
+FORM_OPTION_ORLIKEKEYS=Or Like
+FORM_LABEL_SORT_BY_NAME=Sort by name:
+FORM_RADIO_SORT_ASC=Ascending
+FORM_RADIO_SORT_DESC=Descending
+FORM_LABEL_SORT_BY_DATE=Sort by date:
+FORM_LABEL_MAX_SEARCH_SET=Maximum size of search set:
+FORM_LABEL_MAX_RESULTS=Maximum number of results:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Enter the partial or complete name of a service to search for. The '%' symbol can be used as a wildcard that matches any character. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Enter the UUID of the service to search for. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Enter the partial or complete name of a service interface to search for. The '%' symbol can be used as a wildcard that matches any character. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Enter the UUID of the service interface to search for. Press <strong>Go</strong> to execute the search.
+FORM_LABEL_SERVICE_INTERFACES=Service Interfaces
+FORM_LABEL_UUID_KEY=UUID Key:
+FORM_LABEL_USE_SERVICE=Use service
+FORM_LABEL_SERVICE=Service
+FORM_LABEL_BUSINESS=Business
+FORM_LABEL_PUBLISH_ASSERTIONS=Publisher Assertions
+FORM_LABEL_DIRECTION=Direction
+FORM_LABEL_FROM_KEY=From Key
+FORM_LABEL_TO_KEY=To Key
+FORM_LABEL_STATUS=Status
+FORM_LABEL_ASSERTION_TYPE=Assertion Type
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Parent-Child
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Peer-Peer
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identity
+FORM_LABEL_ASSERTION_DIRETION_DESC=Direction <strong>From</strong> will create a publisher assertion from this business to the businesses above. Direction <strong>To</strong> will create a publisher assertion from the above businesses to this business.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=This
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Enter a valid name for the query.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Enter a series of valid names.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Enter a valid publish URL.
+MSG_ERROR_INVALID_USERID=IWAB0143E Enter a valid user ID.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Enter a valid size for the maximum search set.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Enter a valid size for the maximum number of results.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I Number of businesses found: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E No businesses found.
+MSG_INFO_SERVICES_FOUND=IWAB0149I Number of services found: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E No services found.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E Select just one item.
+MSG_QUESTION_ITEM_REPLACEMENT=The selection will replace an item already in the target. Do you wish to proceed?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I Number of service interfaces found: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E No service interfaces found.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E Select at least one item.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Enter a valid UUID key.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E The subquery's query name cannot be the same as the originator.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E No items of the specified type have been published or discovered yet.
+
+# Results
+ALT_QUERY_RESULTS=Query Results
+FORM_LABEL_SUBQUERY=The results may be used as inputs of another operation. Click the <strong>target</strong> link at the top to see the operation. Selected results can be used in the operation by clicking the <strong>Transfer</strong> button.
+FORM_LABEL_QUERY=Select a result to see more details or select a set of results and click a button to perform an operation.
+FORM_LINK_TARGET=target
+FORM_BUTTON_TRANSFER=Transfer
+FORM_BUTTON_REFRESH=Refresh
+FORM_BUTTON_ADD_TO_FAVORITES=Add to favorites
+FORM_BUTTON_UNPUBLISH=Unpublish
+FORM_BUTTON_CLEAR=Clear
+
+# Publish actions
+ALT_PUBLISH=Publish
+FORM_LABEL_PUBLISH=Publish:
+FORM_OPTION_BUSINESS=Business
+FORM_OPTION_SERVICE=Service
+FORM_OPTION_SERVICE_INTERFACE=Service Interface
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Enter a name and an optional description for the business to be published. Authentication may be required.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Provide a name for the business to be published. Other parameters may also be specified. Authentication may be required.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Get or find a business and then provide the WSDL URL, name and an optional description for the service to be published. Authentication may be required.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Get or find a business and then provide the WSDL URL and a name for the service to be published. Other parameters may also be specified. Authentication may be required.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Provide the WSDL URL, name and an optional description for the service to be published. Authentication may be required.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Provide the WSDL URL and a name for the service to be published. Other parameters may also be specified. Authentication may be required.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Enter a WSDL URL, name and an optional description for the service interface to be published. Authentication may be required.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Provide the WSDL URL and name for the service interface to be published. Other parameters may also be specified. Authentication may be required.
+FORM_LABEL_PUBLISH_FORM=Publication format
+FORM_LABEL_DESCRIPTION=Description
+FORM_LABEL_DESCRIPTIONS=Descriptions
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I Business %1 was successfully published.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I Service %1 was successfully published.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I Service interface %1 was successfully published.
+MSG_ERROR_INVALID_NAME=IWAB0161E Enter a valid name.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E Select a non-blank language for the %1 in row %2. Only the first row can have a blank language.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Change the language for the %1 in row %2. The current one is already in use.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Enter a valid %1 in row %2
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Enter a valid WSDL URL.
+MSG_ERROR_NO_NAMES=IWAB0254E Add at least one name.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Provide a valid service.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Provide a valid business.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Publish Service
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL Browser - %1
+FORM_LABEL_WSDL_SOURCE=Select a WSDL source:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web Projects
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favorites
+FORM_LABEL_WEB_PROJECT=Web Project
+FORM_LABEL_WSDL_URL=WSDL URL
+ALT_WSDL_BROWSER=WSDL Browser
+
+# Details
+FORM_LINK_EDIT=Edit
+FORM_LINK_CANCEL=Cancel
+FORM_LABEL_BUSINESS_KEY=Business Key
+FORM_LABEL_SERVICE_KEY=Service Key
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel Key
+FORM_LABEL_USER_DEFINED_CATEGORIES=User Defined Categories
+FORM_LABEL_CHECKED=Checked
+FORM_LABEL_FILE=File
+MSG_QUESTION_PUBLISH_ITEM=The item could not be found in the registry. Do you wish to publish it?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=The service and its business could not be found in the registry. Proceed to publish?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I Business %1 was successfully updated.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I Service %1 was successfully updated.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I Service Interface %1 was successfully updated.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I Registry %1 was successfully updated.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Unpublish Business
+ALT_UNPUBLISH_SERVICE=Unpublish Service
+ALT_UNPUBLISH_SERVICE_INTERFACE=Unpublish Service Interface
+FORM_LABEL_UNPUBLISH_DESC=Press <strong>Go</strong> to unpublish this object. Authentication may be required.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I Business %1 was successfully unpublished.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I Service %1 was successfully unpublished.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I Service Interface %1 was successfully unpublished.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=Add To WSDL Page
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 was successfully added to WSDL page.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 could not be added to WSDL page.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=Add To Favorites
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 was successfully added to favorites.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 could not be added to favorites.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 already exists in favorties.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorite already exists. Do you wish to overwrite?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 refreshed.
+MSG_QUESTION_REMOVE_NODE=%1 could not be found in the registry. Do you wish to clear it?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=Manage Referenced Services
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=Add discovered or published services to the list of referenced services by clicking the <strong>Add Services</strong> button. Remove selected references by clicking the <strong>Remove References</strong> button. Authentication may be required for changes.
+FORM_LABEL_REFERENCED_SERVICES=Referenced Services
+FORM_BUTTON_ADD_SERVICES=Add Services
+FORM_BUTTON_REMOVE_REFERENCES=Remove References
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Select at least one referenced service before proceeding.
+MSG_ERROR_NO_SERVICES=IWAB0267E Get or find at least one service before proceeding.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E Service %1 could not be referenced.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E Service reference %1 could not be removed.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I Service %1 was successfully referenced.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I Service reference %1 was successfully removed.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=Manage Publisher Assertions
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=Add discovered or published businesses to the list of publisher assertions by clicking <strong>Add Assertions</strong>. Remove selected assertions by clicking <strong>Remove Assertions</strong>. Complete selected assertions by clicking <strong>Complete Assertions</strong>. Click <strong>Refresh Assertions</strong> to refresh the list of assertions.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Please note that incomplete publisher assertions are visible only to the owner of the business.
+FORM_LABEL_BUSINESSES=Businesses
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Refresh Assertions
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Complete Assertions
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=Add Assertions
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Remove Assertions
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Publisher Assertions are refreshed.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E Select at least one incomplete publisher assertion.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E This operation cannot be performed on a business owned by another party.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Get Business
+ALT_GET_BUSINESSES=Get Businesses
+NODE_NAME_SERVICE_BUSINESS=Business for service %1
+NODE_NAME_SI_BUSINESSES=Businesses for service interface %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=The service could not be found in the registry. Do you wish to remove this node?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Get Service Interfaces
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Service interfaces for service %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=The service could not be found in the registry. Do you wish to remove this node?
+
+# GetServices
+ALT_GET_SERVICES=Get Services
+NODE_NAME_SI_SERVICES=Services for service interface %1
+NODE_NAME_BUSINESS_SERVICES=Services for business %1
+MSG_QUESTION_REMOVE_SI_NODE=The service interface could not be found in the registry. Do you wish to remove this node?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=The business could not be found in the registry. Do you wish to remove this node?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 could not be found in the registry.
+
+# Summaries
+ALT_SUMMARY_QUERIES=Summary of Queries
+ALT_SUMMARY_BUSINESSES=Summary of Businesses
+ALT_SUMMARY_SERVICES=Summary of Services
+ALT_SUMMARY_SERVICE_INTERFACES=Summary of Service Interfaces
+FORM_LABEL_QUERIES=Queries
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 could not be found in the registry. Do you wish to remove it?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator Toolbar
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator Content
+FRAME_TITLE_ACTIONS_CONTAINER=Actions Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Properties Container
+FRAME_TITLE_PROPERTIES_TOOLBAR=Properties Toolbar
+FRAME_TITLE_PROPERTIES_CONTENT=Properties Content
+FRAME_TITLE_STATUS_CONTAINER=Status Container
+FRAME_TITLE_STATUS_TOOLBAR=Status Toolbar
+FRAME_TITLE_STATUS_CONTENT=Status Content
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI Page Content
+FRAME_TITLE_CATEGORIES_WORKAREA=Categories Work Area
+FRAME_TITLE_CATEGORIES_TOOLBAR=Categories Toolbar
+FRAME_TITLE_CATEGORIES_CONTENT=Categories Content
+FRAME_TITLE_WSDL_TOOLBAR=WSDL Browser Toolbar
+FRAME_TITLE_WSDL_CONTENT=WSDL Browser Content
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Business Details Form
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Business Publish Service Form
+FORM_TITLE_GET_FORM=Select from Discovered and Published Objects Form
+FORM_TITLE_ITEMS_SUMMARY=Summary of Items Form
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Manage Publisher Assertions Form
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Manage Referenced Services Form
+FORM_TITLE_OPEN_REGISTRY=Open Registry Form
+FORM_TITLE_REGISTRY_DETAILS=Registry Details Form
+FORM_TITLE_REGISTRY_PUBLISH=Registry Publish Form
+FORM_TITLE_REGISTRY_FIND=Registry Find Form
+FORM_TITLE_RESULTS=Results Form
+FORM_TITLE_SERVICE_DETAILS=Service Details Form
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Service Interface Details Form
+FORM_TITLE_UNPUBLISH=Unpublish Form
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_de.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_de.properties
new file mode 100644
index 000000000..389be33b1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_de.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI - Haupt
+NODE_NAME_QUERIES_FOLDER=Ausgef\u00fchrte Abfragen
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Publizierte Gesch\u00e4fte
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Publizierte Services
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Publizierte Serviceschnittstellen
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Registrierung \u00f6ffnen
+FORM_LABEL_OPEN_REGISTRY_DESC=Geben Sie den Namen und die Abfrage-URL der zu \u00f6ffnenden Registrierung an. Bei Auswahl einer bevorzugten Registrierung werden die erforderlichen Informationen automatisch ausgef\u00fcllt. Klicken Sie <strong>Los</strong> an, um die Registrierung zu \u00f6ffnen.
+FORM_LABEL_FAVORITE_REGISTRY=Bevorzugte Registrierung
+FORM_LABEL_REGISTRY_NAME=Registrierungsname
+FORM_LABEL_INQUIRY_URL=Abfrage-URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Benutzerdefinierte Kategorien \u00fcberpr\u00fcfen
+DEFAULT_REGISTRY_NAME=IBM UDDI-Testregistrierung
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Geben Sie einen g\u00fcltigen Registrierungsnamen ein.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Geben Sie eine g\u00fcltige Abfrage-URL ein.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I Die Registrierung mit dem Namen %1, die sich unter %2 befindet, wurde erfolgreich ge\u00f6ffnet.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=Ist WebSphere die UDDI-Registrierung?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=Private UDDI-Registrierung von IBM WebSphere
+FORM_LABEL_REGISTRY_HOST=Host
+FORM_LABEL_REGISTRY_PORT=Port
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Hier klicken</a>, um die Daten dieser Kategorie zu laden.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Name der Kategoriedatendatei
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I Es wurden keine benutzerdefinierten Kategorien gefunden.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Die Kategoriedaten f\u00fcr %1 sind nicht verf\u00fcgbar oder ung\u00fcltig.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Die Daten f\u00fcr die benutzerdefinierte Kategorie %1 wurden erfolgreich geladen.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Ung\u00fcltige Datendatei f\u00fcr benutzerdefinierte Kategorie %1. Es wurde ein Kategorieschl\u00fcssel '%2' gefunden, es wurde jedoch '%3' erwartet.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Unbekanntes Format in Zeile %1 der Datendatei f\u00fcr benutzerdefinierte Kategorie %2. Die Zeile lautet: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Ung\u00fcltige Datendatei f\u00fcr benutzerdefinierte Kategorie %1.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Beim Speichern der Daten f\u00fcr Kategorie %1 ist ein Fehler aufgetreten. Text der Ausnahmebedingung: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Kategoriebrowser
+ALT_CATEGORIES=Kategorien
+
+# Details
+ALT_REGISTRY_DETAILS=Registrierung - Details
+ALT_BUSINESS_DETAILS=Gesch\u00e4ft - Details
+ALT_SERVICE_DETAILS=Service - Details
+ALT_SERVICE_INTERFACE_DETAILS=Serviceschnittstelle - Details
+FORM_LABEL_DETAILS_EDITABLE=Die Details f\u00fcr <strong>%1</strong> werden unten angezeigt. Es k\u00f6nnen einige Eintr\u00e4ge hinzugef\u00fcgt, entfernt oder ge\u00e4ndert worden sein. F\u00fcr \u00c4nderungen ist m\u00f6glicherweise eine Authentifizierung erforderlich. Weitere Aktionen sind am unteren Ende dieser Seite aufgef\u00fchrt.
+
+# Get
+ALT_GET=Empfangen
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Name/Wert
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Beschreibungswert
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Kategorieschl\u00fcsselname
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Kategorieschl\u00fcsselwert
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Kennungsschl\u00fcsselname
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Kennungsschl\u00fcsselwert
+FORM_CONTROL_TITLE_DISCOVERY_URL=Erkennungs-URL
+
+# Find actions
+ALT_FIND=Suchen
+ALT_SUBQUERY=%1 Unterabfrage suchen
+FORM_LABEL_QUERY_NAME=Name dieser Abfrage
+DEFAULT_QUERY_NAME=Abfrageergebnisse
+DEFAULT_SUBQUERY_NAME=%1 - %2 Unterabfrage
+FORM_LABEL_SEARCH_FOR=Suchen nach
+FORM_OPTION_BUSINESSES=Gesch\u00e4fte
+FORM_OPTION_SERVICES=Services
+FORM_OPTION_SERVICE_INTERFACES=Serviceschnittstellen
+FORM_LABEL_SEARCH_TYPE=Suchtyp
+FORM_RADIO_SIMPLE=Einfach
+FORM_RADIO_ADVANCED=Erweitert
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Geben Sie einen Teil oder den vollst\u00e4ndigen Namen eines Gesch\u00e4fts ein, nach dem gesucht werden soll. Das Symbol '%' kann als Platzhalterzeichen f\u00fcr ein beliebiges Zeichen verwendet werden. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_FIND_ADVANCED_DESC=Geben Sie Werte f\u00fcr einen oder mehrere der nachstehend aufgelisteten Parameter ein. Im Namensfeld der Namenstabelle kann das Symbol '%' als Platzhalterzeichen f\u00fcr ein beliebiges Zeichen verwendet werden. M\u00f6glicherweise ist eine Authentifizierung erforderlich. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Geben Sie die UUID des Gesch\u00e4fts ein, nach der gesucht werden soll. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_NAMES=Namen
+FORM_LINK_ADD=Hinzuf\u00fcgen
+FORM_LINK_GET=Empfangen
+FORM_LINK_FIND=Suchen
+FORM_LINK_REMOVE=Entfernen
+FORM_LABEL_OWNED=Mit Eigner
+FORM_LABEL_PUBLISH_URL=Publizierungs-URL
+FORM_LABEL_USERID=Benutzer-ID
+FORM_LABEL_PASSWORD=Kennwort
+FORM_LABEL_LANGUAGE=Sprache
+FORM_LABEL_NAME=Name
+FORM_LABEL_DESCRIPTION=Beschreibung
+FORM_OPTION_LANGUAGE_EN=Englisch
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abchasisch
+FORM_OPTION_LANGUAGE_AF=Afrikaans
+FORM_OPTION_LANGUAGE_AM=Amharic
+FORM_OPTION_LANGUAGE_AR=Arabisch
+FORM_OPTION_LANGUAGE_AS=Assamese
+FORM_OPTION_LANGUAGE_AY=Aymara
+FORM_OPTION_LANGUAGE_AZ=Aserbaidschanisch
+FORM_OPTION_LANGUAGE_BA=Bachkir
+FORM_OPTION_LANGUAGE_BE=Wei\u00dfrussisch
+FORM_OPTION_LANGUAGE_BG=Bulgarisch
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bislama
+FORM_OPTION_LANGUAGE_BN=Bengali; Bangla
+FORM_OPTION_LANGUAGE_BO=Tibetisch
+FORM_OPTION_LANGUAGE_BR=Bretonisch
+FORM_OPTION_LANGUAGE_CA=Katalanisch
+FORM_OPTION_LANGUAGE_CO=Korsisch
+FORM_OPTION_LANGUAGE_CZ=Tschechisch
+FORM_OPTION_LANGUAGE_CY=Walisisch
+FORM_OPTION_LANGUAGE_DA=D\u00e4nisch
+FORM_OPTION_LANGUAGE_DE=Deutsch
+FORM_OPTION_LANGUAGE_DZ=Bhutani
+FORM_OPTION_LANGUAGE_EL=Griechisch
+FORM_OPTION_LANGUAGE_EO=Esperanto
+FORM_OPTION_LANGUAGE_ES=Spanisch
+FORM_OPTION_LANGUAGE_ET=Estonisch
+FORM_OPTION_LANGUAGE_EU=Baskisch
+FORM_OPTION_LANGUAGE_FA=Persisch
+FORM_OPTION_LANGUAGE_FI=Finnisch
+FORM_OPTION_LANGUAGE_FJ=Fidschi
+FORM_OPTION_LANGUAGE_FO=F\u00e4r\u00f6isch
+FORM_OPTION_LANGUAGE_FR=Franz\u00f6sisch
+FORM_OPTION_LANGUAGE_FY=Friesisch
+FORM_OPTION_LANGUAGE_GA=Irisch
+FORM_OPTION_LANGUAGE_GD=Schottisches G\u00e4lisch
+FORM_OPTION_LANGUAGE_GL=Galizisch
+FORM_OPTION_LANGUAGE_GN=Guarani
+FORM_OPTION_LANGUAGE_GU=Gujarati
+FORM_OPTION_LANGUAGE_HA=Haussa
+FORM_OPTION_LANGUAGE_HI=Hindi
+FORM_OPTION_LANGUAGE_HR=Kroatisch
+FORM_OPTION_LANGUAGE_HU=Ungarisch
+FORM_OPTION_LANGUAGE_HY=Armenisch
+FORM_OPTION_LANGUAGE_IA=Interlingua
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiaq
+FORM_OPTION_LANGUAGE_IN=Indonesisch
+FORM_OPTION_LANGUAGE_IS=Isl\u00e4ndisch
+FORM_OPTION_LANGUAGE_IT=Italienisch
+FORM_OPTION_LANGUAGE_IW=Hebr\u00e4isch
+FORM_OPTION_LANGUAGE_JA=Japanisch
+FORM_OPTION_LANGUAGE_JI=Jiddisch
+FORM_OPTION_LANGUAGE_JW=Javanisch
+FORM_OPTION_LANGUAGE_KA=Georgisch
+FORM_OPTION_LANGUAGE_KK=Kasachisch
+FORM_OPTION_LANGUAGE_KL=Gr\u00f6nl\u00e4ndisch
+FORM_OPTION_LANGUAGE_KM=Kambodschanisch
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=Koreanisch
+FORM_OPTION_LANGUAGE_KS=Kaschmiri
+FORM_OPTION_LANGUAGE_KU=Kurdisch
+FORM_OPTION_LANGUAGE_KY=Kirgisisch
+FORM_OPTION_LANGUAGE_LA=Latein
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=Laotisch
+FORM_OPTION_LANGUAGE_LT=Litauisch
+FORM_OPTION_LANGUAGE_LV=Lettisch
+FORM_OPTION_LANGUAGE_MG=Malagassi
+FORM_OPTION_LANGUAGE_MI=Maori
+FORM_OPTION_LANGUAGE_MK=Mazedonisch
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=Mongolisch
+FORM_OPTION_LANGUAGE_MO=Moldavisch
+FORM_OPTION_LANGUAGE_MR=Marathi
+FORM_OPTION_LANGUAGE_MS=Malaiisch
+FORM_OPTION_LANGUAGE_MT=Maltesisch
+FORM_OPTION_LANGUAGE_MY=Burmesisch
+FORM_OPTION_LANGUAGE_NA=Nauruanisch
+FORM_OPTION_LANGUAGE_NE=Nepali
+FORM_OPTION_LANGUAGE_NL=Niederl\u00e4ndisch
+FORM_OPTION_LANGUAGE_NO=Norwegisch
+FORM_OPTION_LANGUAGE_OC=Okzitanisch
+FORM_OPTION_LANGUAGE_OM=(Afan) Oromo
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=Punjabi
+FORM_OPTION_LANGUAGE_PL=Polnisch
+FORM_OPTION_LANGUAGE_PS=Paschtu
+FORM_OPTION_LANGUAGE_PT=Portugiesisch
+FORM_OPTION_LANGUAGE_QU=Quechua
+FORM_OPTION_LANGUAGE_RM=R\u00e4toromanisch
+FORM_OPTION_LANGUAGE_RN=Kirundi
+FORM_OPTION_LANGUAGE_RO=Rum\u00e4nisch
+FORM_OPTION_LANGUAGE_RU=Russisch
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=Sanskrit
+FORM_OPTION_LANGUAGE_SD=Sindhi
+FORM_OPTION_LANGUAGE_SG=Sangro
+FORM_OPTION_LANGUAGE_SH=Serbokroatisch
+FORM_OPTION_LANGUAGE_SI=Singhalesisch
+FORM_OPTION_LANGUAGE_SK=Slowakisch
+FORM_OPTION_LANGUAGE_SL=Slowenisch
+FORM_OPTION_LANGUAGE_SM=Samoanisch
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=Somali
+FORM_OPTION_LANGUAGE_SQ=Albanisch
+FORM_OPTION_LANGUAGE_SR=Serbisch
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Sundanesisch
+FORM_OPTION_LANGUAGE_SV=Schwedisch
+FORM_OPTION_LANGUAGE_SW=Suaheli
+FORM_OPTION_LANGUAGE_TA=Tamil
+FORM_OPTION_LANGUAGE_TE=Tegulu
+FORM_OPTION_LANGUAGE_TG=Tajik
+FORM_OPTION_LANGUAGE_TH=Thai
+FORM_OPTION_LANGUAGE_TI=Tigrinja
+FORM_OPTION_LANGUAGE_TK=Turkmenisch
+FORM_OPTION_LANGUAGE_TL=Tagalog
+FORM_OPTION_LANGUAGE_TN=Setswana
+FORM_OPTION_LANGUAGE_TO=Tonga
+FORM_OPTION_LANGUAGE_TR=T\u00fcrkisch
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=Tatarisch
+FORM_OPTION_LANGUAGE_TW=Twi
+FORM_OPTION_LANGUAGE_UK=Ukrainisch
+FORM_OPTION_LANGUAGE_UR=Urdu
+FORM_OPTION_LANGUAGE_UZ=Usbekisch
+FORM_OPTION_LANGUAGE_VI=Vietnamesisch
+FORM_OPTION_LANGUAGE_VO=Volap\u00fck
+FORM_OPTION_LANGUAGE_WO=Wolof
+FORM_OPTION_LANGUAGE_XH=Xhosa
+FORM_OPTION_LANGUAGE_YO=Yoruba
+FORM_OPTION_LANGUAGE_ZH=Chinesisch
+FORM_OPTION_LANGUAGE_ZU=Zulu
+FORM_LABEL_EXACT_NAME_MATCH=Exakte \u00dcbereinstimmung
+FORM_LABEL_CASE_SENSITIVE_MATCH=Gro\u00df-/Kleinschreibung
+FORM_LABEL_SOUNDEX=Klingt wie
+FORM_LABEL_IDENTIFIERS=Kennungen
+FORM_LABEL_IDENTIFIER_TYPE=Typ
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry
+
+FORM_LABEL_KEY_NAME=Schl\u00fcsselname
+FORM_LABEL_KEY_VALUE=Schl\u00fcsselwert
+FORM_LABEL_CATEGORIES=Kategorien
+FORM_LABEL_CATEGORY_TYPE=Typ
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW Community
+FORM_LABEL_BUSINESS_CATEGORIES=Vergleichen mit:
+FORM_OPTION_BUSINESSES_ONLY=Nur Gesch\u00e4fte
+FORM_OPTION_SERVICES_ONLY=Nur Services
+FORM_OPTION_BOTH=Gesch\u00e4fte und Services
+FORM_LABEL_DISCOVERYURLS=Erkennungs-URLs
+FORM_LABEL_DISCOVERYURL=Erkennungs-URL
+FORM_LABEL_FINDQUALIFIERS=Qualifikationsmerkmale suchen
+FORM_LABEL_COMBINE_KEYS=Schl\u00fcssel kombinieren:
+FORM_OPTION_ANDALLKEYS=Und
+FORM_OPTION_ORALLKEYS=Oder
+FORM_OPTION_ORLIKEKEYS=Oder \u00e4hnlich
+FORM_LABEL_SORT_BY_NAME=Sortieren nach Namen:
+FORM_RADIO_SORT_ASC=Aufsteigend
+FORM_RADIO_SORT_DESC=Absteigend
+FORM_LABEL_SORT_BY_DATE=Sortieren nach Datum:
+FORM_LABEL_MAX_SEARCH_SET=Maximale Gr\u00f6\u00dfe der Suchgruppe:
+FORM_LABEL_MAX_RESULTS=Maximale Anzahl Suchergebnisse:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Geben Sie einen Teil oder den vollst\u00e4ndigen Namen eines Services ein, nach dem gesucht werden soll. Das Symbol '%' kann als Platzhalterzeichen f\u00fcr ein beliebiges Zeichen verwendet werden. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Geben Sie die UUID des Services ein, nach der gesucht werden soll. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Geben Sie einen Teil oder den vollst\u00e4ndigen Namen einer Serviceschnittstelle ein, nach der gesucht werden soll. Das Symbol '%' kann als Platzhalterzeichen f\u00fcr ein beliebiges Zeichen verwendet werden. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Geben Sie die UUID der Serviceschnittstelle ein, nach der gesucht werden soll. Klicken Sie <strong>Los</strong> an, um die Suche zu starten.
+FORM_LABEL_SERVICE_INTERFACES=Serviceschnittstellen
+FORM_LABEL_UUID_KEY=UUID-Schl\u00fcssel:
+FORM_LABEL_USE_SERVICE=Service verwenden
+FORM_LABEL_SERVICE=Service
+FORM_LABEL_BUSINESS=Gesch\u00e4ft
+FORM_LABEL_PUBLISH_ASSERTIONS=Gesch\u00e4ftsbeziehungen
+FORM_LABEL_DIRECTION=Richtung
+FORM_LABEL_FROM_KEY=Von Schl\u00fcssel
+FORM_LABEL_TO_KEY=Zu Schl\u00fcssel
+FORM_LABEL_STATUS=Status
+FORM_LABEL_ASSERTION_TYPE=Beziehungstyp
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Elter-Kind
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Peer-Peer
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identit\u00e4t
+FORM_LABEL_ASSERTION_DIRETION_DESC=Bei Verwendung von Richtung <strong>Von</strong> wird eine Gesch\u00e4ftsbeziehung (Publisher Assertion) von diesem Gesch\u00e4ft zum obigen Gesch\u00e4ft erstellt. Bei Verwendung von Richtung <strong>Zu</strong> wird eine Gesch\u00e4ftsbeziehung vom obigen Gesch\u00e4ft zu diesem Gesch\u00e4ft erstellt.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=Dieses
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Geben Sie einen g\u00fcltigen Namen f\u00fcr die Abfrage ein.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Geben Sie eine Reihe g\u00fcltiger Namen ein.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Geben Sie eine g\u00fcltige Publizierungs-URL ein.
+MSG_ERROR_INVALID_USERID=IWAB0143E Geben Sie eine g\u00fcltige Benutzer-ID ein.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Geben Sie eine g\u00fcltige maximale Gr\u00f6\u00dfe f\u00fcr die Suchgruppe ein.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Geben Sie einen g\u00fcltigen Wert f\u00fcr die maximale Anzahl Suchergebnisse ein.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I Anzahl gefundener Gesch\u00e4fte: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E Keine Gesch\u00e4fte gefunden.
+MSG_INFO_SERVICES_FOUND=IWAB0149I Anzahl gefundener Services: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E Keine Services gefunden.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E W\u00e4hlen Sie nur einen Eintrag aus.
+MSG_QUESTION_ITEM_REPLACEMENT=Die Auswahl ersetzt ein Element, das sich bereits im Ziel befindet. M\u00f6chten Sie fortfahren?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I Anzahl gefundener Serviceschnittstellen: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E Keine Serviceschnittstellen gefunden.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E W\u00e4hlen Sie mindestens einen Eintrag aus.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Geben Sie einen g\u00fcltigen UUID-Schl\u00fcssel ein.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E Der Abfragename der Unterabfrage darf nicht mit dem Absender identisch sein.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Es wurden noch keine Elemente des angegebenen Typs publiziert oder aufgesp\u00fcrt.
+
+# Results
+ALT_QUERY_RESULTS=Abfrageergebnisse
+FORM_LABEL_SUBQUERY=Die Ergebnisse k\u00f6nnen als Eingabe f\u00fcr eine andere Operation verwendet werden. Klicken Sie den Link <strong>Ziel</strong> oben an, um die Operation anzuzeigen. Ausgew\u00e4hlte Ergebnisse k\u00f6nnen in der Operation verwendet werden, indem Sie den Knopf <strong>\u00dcbertragen</strong> anklicken.
+FORM_LABEL_QUERY=W\u00e4hlen Sie ein Ergebnis aus, um weitere Details anzuzeigen, oder w\u00e4hlen Sie eine Ergebnismenge aus, und klicken Sie einen Knopf an, um eine Operation auszuf\u00fchren.
+FORM_LINK_TARGET=Ziel
+FORM_BUTTON_TRANSFER=\u00dcbertragen
+FORM_BUTTON_REFRESH=Aktualisieren
+FORM_BUTTON_ADD_TO_FAVORITES=Zu Favoriten hinzuf\u00fcgen
+FORM_BUTTON_UNPUBLISH=Publizierung zur\u00fccknehmen
+FORM_BUTTON_CLEAR=Inhalt l\u00f6schen
+
+# Publish actions
+ALT_PUBLISH=Publizieren
+FORM_LABEL_PUBLISH=Publizieren:
+FORM_OPTION_BUSINESS=Gesch\u00e4ft
+FORM_OPTION_SERVICE=Service
+FORM_OPTION_SERVICE_INTERFACE=Serviceschnittstelle
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Geben Sie einen Namen und eine optionale Beschreibung f\u00fcr das zu publizierende Gesch\u00e4ft ein. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Geben Sie einen Namen f\u00fcr das zu publizierende Gesch\u00e4ft ein. Es k\u00f6nnen auch weitere Parameter angegeben werden. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Rufen Sie ein Gesch\u00e4ft ab oder suchen Sie eines, und geben Sie die WSDL-URL, den Namen und eine optionale Beschreibung f\u00fcr den zu publizierenden Service ein. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Rufen Sie ein Gesch\u00e4ft ab oder suchen Sie eines, und geben Sie die WSDL-URL und einen Namen f\u00fcr den zu publizierenden Service ein. Es k\u00f6nnen auch weitere Parameter angegeben werden. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Geben Sie die WSDL-URL, den Namen und eine optionale Beschreibung f\u00fcr den zu publizierenden Service ein. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Geben Sie die WSDL-URL und einen Namen f\u00fcr den zu publizierenden Service ein. Es k\u00f6nnen auch weitere Parameter angegeben werden. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Geben Sie eine WSDL-URL, einen Namen und eine optionale Beschreibung f\u00fcr die zu publizierende Serviceschnittstelle ein. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Geben Sie die WSDL-URL und einen Namen f\u00fcr die zu publizierende Serviceschnittstelle ein. Es k\u00f6nnen auch weitere Parameter angegeben werden. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+FORM_LABEL_PUBLISH_FORM=Publikationsformat
+FORM_LABEL_DESCRIPTION=Beschreibung
+FORM_LABEL_DESCRIPTIONS=Beschreibungen
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I Gesch\u00e4ft %1 wurde erfolgreich publiziert.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I Service %1 wurde erfolgreich publiziert.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I Serviceschnittstelle %1 wurde erfolgreich publiziert.
+MSG_ERROR_INVALID_NAME=IWAB0161E Geben Sie einen g\u00fcltigen Namen ein.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E W\u00e4hlen Sie eine belegte Sprache f\u00fcr %1 in Zeile %2 aus. Nicht belegte Sprachen d\u00fcrfen nur von der ersten Zeile verwendet werden.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E \u00c4ndern Sie die Sprache f\u00fcr %1 in Zeile %2. Die aktuelle Sprache wird bereits verwendet.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Geben Sie einen g\u00fcltigen %1 in Zeile %2 ein.
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Geben Sie eine g\u00fcltige WSDL-URL ein.
+MSG_ERROR_NO_NAMES=IWAB0254E F\u00fcgen Sie mindestens einen Namen hinzu.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Geben Sie einen g\u00fcltigen Service an.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Geben Sie ein g\u00fcltiges Gesch\u00e4ft an.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Service publizieren
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL-Browser - %1
+FORM_LABEL_WSDL_SOURCE=W\u00e4hlen Sie eine WSDL-Quelle aus:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Webprojekte
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoriten
+FORM_LABEL_WEB_PROJECT=Webprojekt
+FORM_LABEL_WSDL_URL=WSDL-URL
+ALT_WSDL_BROWSER=WSDL-Browser
+
+# Details
+FORM_LINK_EDIT=Bearbeiten
+FORM_LINK_CANCEL=Abbrechen
+FORM_LABEL_BUSINESS_KEY=Gesch\u00e4ftsschl\u00fcssel
+FORM_LABEL_SERVICE_KEY=Serviceschl\u00fcssel
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel-Schl\u00fcssel
+FORM_LABEL_USER_DEFINED_CATEGORIES=Benutzerdefinierte Kategorien
+FORM_LABEL_CHECKED=\u00dcberpr\u00fcft
+FORM_LABEL_FILE=Datei
+MSG_QUESTION_PUBLISH_ITEM=Der Eintrag konnte in der Registrierung nicht gefunden werden. Soll er publiziert werden?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=Der Service und sein Gesch\u00e4ft konnten in der Registrierung nicht gefunden werden. Publizierung fortsetzen?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I Gesch\u00e4ft %1 wurde erfolgreich aktualisiert.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I Service %1 wurde erfolgreich aktualisiert.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I Serviceschnittstelle %1 wurde erfolgreich aktualisiert.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I Registrierung %1 wurde erfolgreich aktualisiert.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Publizierung des Gesch\u00e4fts zur\u00fccknehmen
+ALT_UNPUBLISH_SERVICE=Publizierung des Services zur\u00fccknehmen
+ALT_UNPUBLISH_SERVICE_INTERFACE=Publizierung der Serviceschnittstelle zur\u00fccknehmen
+FORM_LABEL_UNPUBLISH_DESC=Klicken Sie <strong>Los</strong> an, um die Publizierung dieses Objekts zur\u00fcckzunehmen. M\u00f6glicherweise ist eine Authentifizierung erforderlich.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I Die Publizierung von Gesch\u00e4ft %1 wurde erfolgreich zur\u00fcckgenommen.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I Die Publizierung von Service %1 wurde erfolgreich zur\u00fcckgenommen.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I Die Publizierung von Serviceschnittstelle %1 wurde erfolgreich zur\u00fcckgenommen.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=Zu WSDL-Seite hinzuf\u00fcgen
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 wurde erfolgreich zu WSDL-Seite hinzugef\u00fcgt.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 konnte nicht zu WSDL-Seite hinzugef\u00fcgt werden.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=Zu Favoriten hinzuf\u00fcgen
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 wurde erfolgreich zu den Favoriten hinzugef\u00fcgt.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 konnte nicht zu den Favoriten hinzugef\u00fcgt werden.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 ist bereits in den Favoriten vorhanden.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorit bereits vorhanden. \u00dcberschreiben?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 wurde aktualisiert.
+MSG_QUESTION_REMOVE_NODE=%1 konnte in der Registrierung nicht gefunden werden. Soll der Knoten gel\u00f6scht werden?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=Services verwalten, auf die Verweise bestehen
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=F\u00fcgen Sie aufgesp\u00fcrte oder publizierte Services zur Liste der Services mit Verweisen hinzu, indem Sie <strong>Services hinzuf\u00fcgen</strong> anklicken. Entfernen Sie ausgew\u00e4hlte Verweise, indem Sie den Knopf <strong>Verweise entfernen</strong> anklicken. F\u00fcr \u00c4nderungen ist m\u00f6glicherweise eine Authentifizierung erforderlich.
+FORM_LABEL_REFERENCED_SERVICES=Services, auf die Verweise bestehen
+FORM_BUTTON_ADD_SERVICES=Services hinzuf\u00fcgen
+FORM_BUTTON_REMOVE_REFERENCES=Verweise entfernen
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Bevor Sie fortfahren, m\u00fcssen Sie mindestens einen Service ausw\u00e4hlen, auf den Verweise bestehen.
+MSG_ERROR_NO_SERVICES=IWAB0267E Bevor Sie fortfahren, m\u00fcssen Sie mindestens einen Service abrufen oder suchen.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E Verweis auf Service %1 nicht m\u00f6glich.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E Serviceverweis %1 konnte nicht entfernt werden.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I Verweis auf Service %1 erfolgreich.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I Serviceverweis %1 erfolgreich entfernt.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=Gesch\u00e4ftsbeziehungen verwalten
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=F\u00fcgen Sie aufgesp\u00fcrte oder publizierte Gesch\u00e4fte zur Liste der Gesch\u00e4ftsbeziehungen hinzu, indem Sie <strong> Beziehungen hinzuf\u00fcgen</strong> anklicken. Entfernen Sie ausgew\u00e4hlte Beziehungen, indem Sie <strong>Beziehungen entfernen</strong> anklicken. Vervollst\u00e4ndigen Sie ausgew\u00e4hlte Beziehungen, indem Sie <strong>Beziehungen vervollst\u00e4ndigen</strong> anklicken. Klicken Sie <strong>Beziehungen aktualisieren</strong> an, um die Liste der Beziehungen zu aktualisieren.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Beachten Sie, dass unvollst\u00e4ndige Gesch\u00e4ftsbeziehungen nur vom Eigner des Gesch\u00e4fts angezeigt werden k\u00f6nnen.
+FORM_LABEL_BUSINESSES=Gesch\u00e4fte
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Beziehungen aktualisieren
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Beziehungen vervollst\u00e4ndigen
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=Beziehungen hinzuf\u00fcgen
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Beziehungen entfernen
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Gesch\u00e4ftsbeziehungen werden aktualisiert.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E W\u00e4hlen Sie mindestens eine unvollst\u00e4ndige Gesch\u00e4ftsbeziehung aus.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Diese Operation kann nicht f\u00fcr ein Gesch\u00e4ft ausgef\u00fchrt werden, das einer anderen Partei geh\u00f6rt.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Gesch\u00e4ft abrufen
+ALT_GET_BUSINESSES=Gesch\u00e4fte abrufen
+NODE_NAME_SERVICE_BUSINESS=Gesch\u00e4ft f\u00fcr Service %1
+NODE_NAME_SI_BUSINESSES=Gesch\u00e4fte f\u00fcr Serviceschnittstelle %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=Der Service konnte in der Registrierung nicht gefunden werden. Soll dieser Knoten gel\u00f6scht werden?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Serviceschnittstellen abrufen
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Serviceschnittstelle f\u00fcr Service %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=Der Service konnte in der Registrierung nicht gefunden werden. Soll dieser Knoten gel\u00f6scht werden?
+
+# GetServices
+ALT_GET_SERVICES=Services abrufen
+NODE_NAME_SI_SERVICES=Services f\u00fcr Serviceschnittstelle %1
+NODE_NAME_BUSINESS_SERVICES=Services f\u00fcr Gesch\u00e4ft %1
+MSG_QUESTION_REMOVE_SI_NODE=Die Serviceschnittstelle konnte in der Registrierung nicht gefunden werden. Soll dieser Knoten gel\u00f6scht werden?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=Das Gesch\u00e4ft konnte in der Registrierung nicht gefunden werden. Soll dieser Knoten gel\u00f6scht werden?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 konnte in der Registrierung nicht gefunden werden.
+
+# Summaries
+ALT_SUMMARY_QUERIES=Zusammenfassung der Abfragen
+ALT_SUMMARY_BUSINESSES=Zusammenfassung der Abfragen
+ALT_SUMMARY_SERVICES=Zusammenfassung der Services
+ALT_SUMMARY_SERVICE_INTERFACES=Zusammenfassung der Serviceschnittstellen
+FORM_LABEL_QUERIES=Abfragen
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 konnte in der Registrierung nicht gefunden werden. Soll es gel\u00f6scht werden?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator - Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator - Symbolleiste
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator - Inhalt
+FRAME_TITLE_ACTIONS_CONTAINER=Aktionen - Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Eigenschaften - Container
+FRAME_TITLE_PROPERTIES_TOOLBAR=Eigenschaften - Symbolleiste
+FRAME_TITLE_PROPERTIES_CONTENT=Eigenschaften - Inhalt
+FRAME_TITLE_STATUS_CONTAINER=Status - Container
+FRAME_TITLE_STATUS_TOOLBAR=Status - Symbolleiste
+FRAME_TITLE_STATUS_CONTENT=Status - Inhalt
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI-Seite - Inhalt
+FRAME_TITLE_CATEGORIES_WORKAREA=Kategorien - Arbeitsbereich
+FRAME_TITLE_CATEGORIES_TOOLBAR=Kategorien - Symbolleiste
+FRAME_TITLE_CATEGORIES_CONTENT=Kategorien - Inhalt
+FRAME_TITLE_WSDL_TOOLBAR=WSDL-Browser - Symbolleiste
+FRAME_TITLE_WSDL_CONTENT=WSDL-Browser - Inhalt
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Formular f\u00fcr Gesch\u00e4ftsdetails
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Formular zur Publizierung eines Gesch\u00e4ftsservices
+FORM_TITLE_GET_FORM=Formular zum Treffen einer Auswahl aus aufgesp\u00fcrten und publizierten Objekten
+FORM_TITLE_ITEMS_SUMMARY=Formular f\u00fcr Zusammenfassung von Eintr\u00e4gen
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Formular zum Verwalten von Gesch\u00e4ftsbeziehungen
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Formular zum Verwalten von Services, auf die Verweise bestehen
+FORM_TITLE_OPEN_REGISTRY=Registrierungsformular \u00f6ffnen
+FORM_TITLE_REGISTRY_DETAILS=Formular f\u00fcr Registrierungsdetails
+FORM_TITLE_REGISTRY_PUBLISH=Formular zur Publizierung einer Registrierung
+FORM_TITLE_REGISTRY_FIND=Formular zum Suchen nach einer Registrierung
+FORM_TITLE_RESULTS=Formular f\u00fcr Ergebnisse
+FORM_TITLE_SERVICE_DETAILS=Formular f\u00fcr Servicedetails
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Formular f\u00fcr Serviceschnittstellendetails
+FORM_TITLE_UNPUBLISH=Formular zum Zur\u00fccknehmen einer Publizierung
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_es.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_es.properties
new file mode 100644
index 000000000..766896419
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_es.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI - Principal
+NODE_NAME_QUERIES_FOLDER=Consultas ejecutadas
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Empresas publicadas
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Servicios publicados
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Interfaces de servicio publicadas
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Abrir registro
+FORM_LABEL_OPEN_REGISTRY_DESC=Especifique le nombre y el URL de consulta del registro que desea abrir. Si selecciona un registro de favoritos se cumplimentar\u00e1 autom\u00e1ticamente la informaci\u00f3n necesaria. Pulse <strong>Ir</strong> para abrir el registro.
+FORM_LABEL_FAVORITE_REGISTRY=Registro de favoritos
+FORM_LABEL_REGISTRY_NAME=Nombre de registro
+FORM_LABEL_INQUIRY_URL=URL de consulta
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Comprobar categor\u00edas definidas por el usuario
+DEFAULT_REGISTRY_NAME=Registro de prueba UDDI de IBM
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Entre un nombre de registro v\u00e1lido.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Entre un URL de consulta v\u00e1lido.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I El registro llamado %1 y ubicado en %2 se ha abierto satisfactoriamente.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=\u00bfEs un registro UDDI de WebSphere?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=Registro UDDI privado de IBM WebSphere
+FORM_LABEL_REGISTRY_HOST=Sistema principal
+FORM_LABEL_REGISTRY_PORT=Puerto
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Pulse aqu\u00ed</a> para cargar los datos de esta categor\u00eda.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Nombre de archivo de datos de categor\u00eda
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I No se han detectado categor\u00edas definidas por el usuario.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Los datos de categor\u00eda para %1 no est\u00e1n disponibles o no son v\u00e1lidos.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Los datos para la categor\u00eda %1 definida por el usuario se han cargado satisfactoriamente.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Archivo de datos no v\u00e1lido para la categor\u00eda %1 definida por el usuario. Se ha encontrado una clave de categor\u00eda '%2' pero se esperaba '%3'.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Formato desconocido en l\u00ednea: %1 del archivo de datos para la categor\u00eda %2 definida por el usuario. La l\u00ednea es: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Archivo de datos no v\u00e1lido para la categor\u00eda %1 definida por el usuario.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Se ha producido un error al guardar datos para la categor\u00eda %1. Texto de excepci\u00f3n: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Navegador de categor\u00edas
+ALT_CATEGORIES=Categor\u00edas
+
+# Details
+ALT_REGISTRY_DETAILS=Detalles de registro
+ALT_BUSINESS_DETAILS=Detalles de empresa
+ALT_SERVICE_DETAILS=Detalles de servicio
+ALT_SERVICE_INTERFACE_DETAILS=Detalles de interfaz de servicio
+FORM_LABEL_DETAILS_EDITABLE=Los detalles de <strong>%1</strong> se muestran m\u00e1s abajo. Algunos elementos pueden a\u00f1adirse, eliminarse o cambiarse. Puede ser necesaria la autenticaci\u00f3n para los cambios. En la parte inferior de esta p\u00e1gina se indican otras acciones.
+
+# Get
+ALT_GET=Obtener
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Nombre de valor
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Valor de descripci\u00f3n
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Nombre de clave de categor\u00eda
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Valor de clave de categor\u00eda
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Nombre de clave de identificador
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Valor de clave de identificador
+FORM_CONTROL_TITLE_DISCOVERY_URL=URL de descubrimiento
+
+# Find actions
+ALT_FIND=Buscar
+ALT_SUBQUERY=Subconsulta de b\u00fasqueda de %1
+FORM_LABEL_QUERY_NAME=Nombre de esta consulta
+DEFAULT_QUERY_NAME=resultados de la consulta
+DEFAULT_SUBQUERY_NAME=%1 - subconsulta de %2
+FORM_LABEL_SEARCH_FOR=Buscar
+FORM_OPTION_BUSINESSES=Empresas
+FORM_OPTION_SERVICES=Servicios
+FORM_OPTION_SERVICE_INTERFACES=Interfaces de servicio
+FORM_LABEL_SEARCH_TYPE=Tipo de b\u00fasqueda
+FORM_RADIO_SIMPLE=Simple
+FORM_RADIO_ADVANCED=Avanzada
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Entre el nombre parcial o completo de una empresa que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_FIND_ADVANCED_DESC=Entre valores para uno o varios de los par\u00e1metros que figuran a continuaci\u00f3n. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter en el campo Nombre de la tabla de nombres. Puede ser necesaria la autenticaci\u00f3n. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Entre el UUID de la empresa que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_NAMES=Nombres
+FORM_LINK_ADD=A\u00f1adir
+FORM_LINK_GET=Obtener
+FORM_LINK_FIND=Buscar
+FORM_LINK_REMOVE=Eliminar
+FORM_LABEL_OWNED=Con propietario
+FORM_LABEL_PUBLISH_URL=URL de publicaci\u00f3n
+FORM_LABEL_USERID=ID de usuario:
+FORM_LABEL_PASSWORD=Contrase\u00f1a:
+FORM_LABEL_LANGUAGE=Idioma
+FORM_LABEL_NAME=Nombre
+FORM_LABEL_DESCRIPTION=Descripci\u00f3n
+FORM_OPTION_LANGUAGE_EN=Ingl\u00e9s
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abkhaziano
+FORM_OPTION_LANGUAGE_AF=Afrikaans
+FORM_OPTION_LANGUAGE_AM=Am\u00e1rico
+FORM_OPTION_LANGUAGE_AR=\u00c1rabe
+FORM_OPTION_LANGUAGE_AS=Asam\u00e9s
+FORM_OPTION_LANGUAGE_AY=Aymara
+FORM_OPTION_LANGUAGE_AZ=Azer\u00ed
+FORM_OPTION_LANGUAGE_BA=Bashkir
+FORM_OPTION_LANGUAGE_BE=Bielorruso
+FORM_OPTION_LANGUAGE_BG=B\u00falgaro
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bislama
+FORM_OPTION_LANGUAGE_BN=Bengal\u00ed
+FORM_OPTION_LANGUAGE_BO=Tibetano
+FORM_OPTION_LANGUAGE_BR=Bret\u00f3n
+FORM_OPTION_LANGUAGE_CA=Catal\u00e1n
+FORM_OPTION_LANGUAGE_CO=Corso
+FORM_OPTION_LANGUAGE_CZ=Checo
+FORM_OPTION_LANGUAGE_CY=Gal\u00e9s
+FORM_OPTION_LANGUAGE_DA=Dan\u00e9s
+FORM_OPTION_LANGUAGE_DE=Alem\u00e1n
+FORM_OPTION_LANGUAGE_DZ=Bhutan\u00ed
+FORM_OPTION_LANGUAGE_EL=Griego
+FORM_OPTION_LANGUAGE_EO=Esperanto
+FORM_OPTION_LANGUAGE_ES=Espa\u00f1ol
+FORM_OPTION_LANGUAGE_ET=Estonio
+FORM_OPTION_LANGUAGE_EU=Vasco
+FORM_OPTION_LANGUAGE_FA=Farsi
+FORM_OPTION_LANGUAGE_FI=Finland\u00e9s
+FORM_OPTION_LANGUAGE_FJ=Fidji
+FORM_OPTION_LANGUAGE_FO=Fero\u00e9s
+FORM_OPTION_LANGUAGE_FR=Franc\u00e9s
+FORM_OPTION_LANGUAGE_FY=Fris\u00f3n
+FORM_OPTION_LANGUAGE_GA=Irland\u00e9s
+FORM_OPTION_LANGUAGE_GD=Ga\u00e9lico
+FORM_OPTION_LANGUAGE_GL=Gallego
+FORM_OPTION_LANGUAGE_GN=Guaran\u00ed
+FORM_OPTION_LANGUAGE_GU=Gujarati
+FORM_OPTION_LANGUAGE_HA=Hausa
+FORM_OPTION_LANGUAGE_HI=Hindi
+FORM_OPTION_LANGUAGE_HR=Croata
+FORM_OPTION_LANGUAGE_HU=H\u00fangaro
+FORM_OPTION_LANGUAGE_HY=Armenio
+FORM_OPTION_LANGUAGE_IA=Interlingua
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiak
+FORM_OPTION_LANGUAGE_IN=Indonesio
+FORM_OPTION_LANGUAGE_IS=Island\u00e9s
+FORM_OPTION_LANGUAGE_IT=Italiano
+FORM_OPTION_LANGUAGE_IW=Hebreo
+FORM_OPTION_LANGUAGE_JA=Japon\u00e9s
+FORM_OPTION_LANGUAGE_JI=Yiddish
+FORM_OPTION_LANGUAGE_JW=Javan\u00e9s
+FORM_OPTION_LANGUAGE_KA=Georgiano
+FORM_OPTION_LANGUAGE_KK=Kazaj
+FORM_OPTION_LANGUAGE_KL=Groenland\u00e9s
+FORM_OPTION_LANGUAGE_KM=Camboyano
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=Koreano
+FORM_OPTION_LANGUAGE_KS=Cachemir
+FORM_OPTION_LANGUAGE_KU=Kurdo
+FORM_OPTION_LANGUAGE_KY=Kirghiz
+FORM_OPTION_LANGUAGE_LA=Lat\u00edn
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=Laosiano
+FORM_OPTION_LANGUAGE_LT=Lituano
+FORM_OPTION_LANGUAGE_LV=Let\u00f3n
+FORM_OPTION_LANGUAGE_MG=Malgache
+FORM_OPTION_LANGUAGE_MI=Maori
+FORM_OPTION_LANGUAGE_MK=Macedonio
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=Mongol
+FORM_OPTION_LANGUAGE_MO=Moldavo
+FORM_OPTION_LANGUAGE_MR=Marathi
+FORM_OPTION_LANGUAGE_MS=Malayo
+FORM_OPTION_LANGUAGE_MT=Malt\u00e9s
+FORM_OPTION_LANGUAGE_MY=Birmano
+FORM_OPTION_LANGUAGE_NA=Nauri
+FORM_OPTION_LANGUAGE_NE=Nepal\u00ed
+FORM_OPTION_LANGUAGE_NL=Holand\u00e9s
+FORM_OPTION_LANGUAGE_NO=Noruego
+FORM_OPTION_LANGUAGE_OC=Occitano
+FORM_OPTION_LANGUAGE_OM=(Afan) Oromo
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=Panjab\u00ed
+FORM_OPTION_LANGUAGE_PL=Polaco
+FORM_OPTION_LANGUAGE_PS=Past\u00fan
+FORM_OPTION_LANGUAGE_PT=Portugu\u00e9s
+FORM_OPTION_LANGUAGE_QU=Quechua
+FORM_OPTION_LANGUAGE_RM=Reto-romance
+FORM_OPTION_LANGUAGE_RN=Kirundi
+FORM_OPTION_LANGUAGE_RO=Rumano
+FORM_OPTION_LANGUAGE_RU=Ruso
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=S\u00e1nscrito
+FORM_OPTION_LANGUAGE_SD=Sindhi
+FORM_OPTION_LANGUAGE_SG=Sangro
+FORM_OPTION_LANGUAGE_SH=Serbocroata
+FORM_OPTION_LANGUAGE_SI=Cingal\u00e9s
+FORM_OPTION_LANGUAGE_SK=Eslovaco
+FORM_OPTION_LANGUAGE_SL=Esloveno
+FORM_OPTION_LANGUAGE_SM=Samoano
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=Somal\u00ed
+FORM_OPTION_LANGUAGE_SQ=Alban\u00e9s
+FORM_OPTION_LANGUAGE_SR=Serbio
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Sudan\u00e9s
+FORM_OPTION_LANGUAGE_SV=Sueco
+FORM_OPTION_LANGUAGE_SW=Swahili
+FORM_OPTION_LANGUAGE_TA=Tamil
+FORM_OPTION_LANGUAGE_TE=Tegulu
+FORM_OPTION_LANGUAGE_TG=Tayico
+FORM_OPTION_LANGUAGE_TH=Tailand\u00e9s
+FORM_OPTION_LANGUAGE_TI=Tigrinya
+FORM_OPTION_LANGUAGE_TK=Turcomano
+FORM_OPTION_LANGUAGE_TL=Tagalo
+FORM_OPTION_LANGUAGE_TN=Setswana
+FORM_OPTION_LANGUAGE_TO=Tongano
+FORM_OPTION_LANGUAGE_TR=Turco
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=Tatar
+FORM_OPTION_LANGUAGE_TW=Twi
+FORM_OPTION_LANGUAGE_UK=Ucraniano
+FORM_OPTION_LANGUAGE_UR=Urdu
+FORM_OPTION_LANGUAGE_UZ=Uzbeco
+FORM_OPTION_LANGUAGE_VI=Vietnamita
+FORM_OPTION_LANGUAGE_VO=Volapuk
+FORM_OPTION_LANGUAGE_WO=Uolof
+FORM_OPTION_LANGUAGE_XH=Xhosa
+FORM_OPTION_LANGUAGE_YO=Yoruba
+FORM_OPTION_LANGUAGE_ZH=Chino
+FORM_OPTION_LANGUAGE_ZU=Zul\u00fa
+FORM_LABEL_EXACT_NAME_MATCH=Coincidencia exacta
+FORM_LABEL_CASE_SENSITIVE_MATCH=Sensible a las may\u00fasculas/min\u00fasculas
+FORM_LABEL_SOUNDEX=Suena parecido
+FORM_LABEL_IDENTIFIERS=Identificadores
+FORM_LABEL_IDENTIFIER_TYPE=Tipo
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry
+
+FORM_LABEL_KEY_NAME=Nombre de clave
+FORM_LABEL_KEY_VALUE=Valor de clave
+FORM_LABEL_CATEGORIES=Categor\u00edas
+FORM_LABEL_CATEGORY_TYPE=Tipo
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW Community
+FORM_LABEL_BUSINESS_CATEGORIES=Comparar con:
+FORM_OPTION_BUSINESSES_ONLY=Solo empresas
+FORM_OPTION_SERVICES_ONLY=Solo servicios
+FORM_OPTION_BOTH=Empresas y servicios
+FORM_LABEL_DISCOVERYURLS=URL de descubrimiento
+FORM_LABEL_DISCOVERYURL=URL de descubrimiento
+FORM_LABEL_FINDQUALIFIERS=Buscar calificadores
+FORM_LABEL_COMBINE_KEYS=Combinar claves:
+FORM_OPTION_ANDALLKEYS=And
+FORM_OPTION_ORALLKEYS=Or
+FORM_OPTION_ORLIKEKEYS=Or Like
+FORM_LABEL_SORT_BY_NAME=Ordenar por nombre:
+FORM_RADIO_SORT_ASC=Ascendente
+FORM_RADIO_SORT_DESC=Descendente
+FORM_LABEL_SORT_BY_DATE=Ordenar por fecha:
+FORM_LABEL_MAX_SEARCH_SET=Tama\u00f1o m\u00e1ximo del conjunto de b\u00fasqueda:
+FORM_LABEL_MAX_RESULTS=N\u00famero m\u00e1ximo de resultados:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Entre el nombre parcial o completo de un servicio que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Entre el UUID del servicio que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Entre el nombre parcial o completo de una interfaz de servicio que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Entre el UUID de la interfaz servicio que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
+FORM_LABEL_SERVICE_INTERFACES=Interfaces de servicio
+FORM_LABEL_UUID_KEY=Clave de UUID:
+FORM_LABEL_USE_SERVICE=Utilizar servicio
+FORM_LABEL_SERVICE=Servicio
+FORM_LABEL_BUSINESS=Empresa
+FORM_LABEL_PUBLISH_ASSERTIONS=Aserciones de publicador
+FORM_LABEL_DIRECTION=Direcci\u00f3n
+FORM_LABEL_FROM_KEY=Desde clave
+FORM_LABEL_TO_KEY=A clave
+FORM_LABEL_STATUS=Estado
+FORM_LABEL_ASSERTION_TYPE=Tipo de aserci\u00f3n
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Padre-Hijo
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Similar-Similar
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identidad
+FORM_LABEL_ASSERTION_DIRETION_DESC=La direcci\u00f3n <strong>Desde</strong> crear\u00e1 una aserci\u00f3n de publicador desde esta empresa a las empresas anteriores. La direcci\u00f3n <strong>A</strong> crear\u00e1 una aserci\u00f3n desde las empresas anteriores a esta empresa.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=Esta
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Entre un nombre v\u00e1lido para la consulta.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Entre una serie de nombres v\u00e1lidos.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Entre un URL de publicaci\u00f3n v\u00e1lido.
+MSG_ERROR_INVALID_USERID=IWAB0143E Entre un ID de usuario v\u00e1lido.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Entre un tama\u00f1o v\u00e1lido para el conjunto de b\u00fasqueda m\u00e1ximo.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Entre un tama\u00f1o v\u00e1lido para el n\u00famero m\u00e1ximo de resultados.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I N\u00famero de empresas encontradas: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E No se ha encontrado ninguna empresa.
+MSG_INFO_SERVICES_FOUND=IWAB0149I N\u00famero de servicios encontrados: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E No se ha encontrado ning\u00fan servicio.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E Seleccione tan solo un elemento.
+MSG_QUESTION_ITEM_REPLACEMENT=La selecci\u00f3n sustituir\u00e1 a un elemento que ya est\u00e1 en el destino. \u00bfDesea continuar?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I N\u00famero de interfaces de servicio encontradas: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E No se ha encontrado ninguna interfaz de servicio.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E Seleccione como m\u00ednimo un elemento.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Entre una clave UUID v\u00e1lida.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E El nombre de consulta de la subconsulta no puede ser igual que el originador.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Todav\u00eda no se ha publicado ni descubierto ning\u00fan elemento del tipo especificado.
+
+# Results
+ALT_QUERY_RESULTS=Resultados de la consulta
+FORM_LABEL_SUBQUERY=Los resultados pueden utilizarse como entradas de otra operaci\u00f3n. Para ver la operaci\u00f3n pulse el enlace <strong>destino</strong> situado en la parte superior. Los resultados seleccionados pueden utilizarse en la operaci\u00f3n pulsando el bot\u00f3n <strong>Transferir</strong>.
+FORM_LABEL_QUERY=Seleccione un resultado para ver m\u00e1s detalles o seleccione un conjunto de resultados y pulse un bot\u00f3n para realizar una operaci\u00f3n.
+FORM_LINK_TARGET=destino
+FORM_BUTTON_TRANSFER=Transferir
+FORM_BUTTON_REFRESH=Renovar
+FORM_BUTTON_ADD_TO_FAVORITES=A\u00f1adir a favoritos
+FORM_BUTTON_UNPUBLISH=Despublicar
+FORM_BUTTON_CLEAR=Borrar
+
+# Publish actions
+ALT_PUBLISH=Publicar
+FORM_LABEL_PUBLISH=Publicar:
+FORM_OPTION_BUSINESS=Empresa
+FORM_OPTION_SERVICE=Servicio
+FORM_OPTION_SERVICE_INTERFACE=Interfaz de servicio
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Especifique un nombre y, opcionalmente, una descripci\u00f3n para la empresa que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Proporcione un nombre para la empresa que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Obtenga o localice una empresa y despu\u00e9s proporcione el URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para el servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Obtenga o localice una empresa y despu\u00e9s proporcione el URL WSDL y un nombre para el servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Proporcione el URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para el servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Proporcione el URL WSDL y un nombre para el servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Entre un URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para la interfaz de servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Proporcione el URL WSDL y el nombre para la interfaz de servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
+FORM_LABEL_PUBLISH_FORM=Formato de publicaci\u00f3n
+FORM_LABEL_DESCRIPTION=Descripci\u00f3n
+FORM_LABEL_DESCRIPTIONS=Descripciones
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I La empresa %1 se ha publicado satisfactoriamente.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I El servicio %1 se ha publicado satisfactoriamente.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I La interfaz de servicio %1 se ha publicado satisfactoriamente.
+MSG_ERROR_INVALID_NAME=IWAB0161E Entre un nombre v\u00e1lido.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E Seleccione un idioma que no est\u00e9 en blanco para %1 de la fila %2. Solo la primera fila puede tener un idioma en blanco.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Cambie el idioma para %1 en la fila %2. El actual ya se est\u00e1 utilizando.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Entre un %1 en la fila %2
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Entre un URL WSDL v\u00e1lido.
+MSG_ERROR_NO_NAMES=IWAB0254E A\u00f1ada como m\u00ednimo un nombre.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Proporcione un servicio v\u00e1lido.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Proporcione una empresa v\u00e1lida.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Publicar servicio
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=Navegador WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Seleccione un origen WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Proyectos Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoritos
+FORM_LABEL_WEB_PROJECT=Proyecto Web
+FORM_LABEL_WSDL_URL=URL WSDL
+ALT_WSDL_BROWSER=Navegador WSDL
+
+# Details
+FORM_LINK_EDIT=Editar
+FORM_LINK_CANCEL=Cancelar
+FORM_LABEL_BUSINESS_KEY=Clave de empresa
+FORM_LABEL_SERVICE_KEY=Clave de servicio
+FORM_LABEL_SERVICE_INTERFACE_KEY=Clave de TModel
+FORM_LABEL_USER_DEFINED_CATEGORIES=Categor\u00edas definidas por usuario
+FORM_LABEL_CHECKED=Marcado
+FORM_LABEL_FILE=Archivo
+MSG_QUESTION_PUBLISH_ITEM=No se ha podido encontrar el elemento en el registro. \u00bfDesea publicarlo?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=No se han podido encontrar el servicio y su empresa en el registro. \u00bfDesea publicarlos?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I La empresa %1 se ha actualizado satisfactoriamente.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I El servicio %1 se ha actualizado satisfactoriamente.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I La interfaz de servicio %1 se ha actualizado satisfactoriamente.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I El registro %1 se ha actualizado satisfactoriamente.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Despublicar empresa
+ALT_UNPUBLISH_SERVICE=Despublicar servicio
+ALT_UNPUBLISH_SERVICE_INTERFACE=Despublicar interfaz de servicio
+FORM_LABEL_UNPUBLISH_DESC=Pulse <strong>Ir</strong> para despublicar este objeto. Puede ser necesaria la autenticaci\u00f3n.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I La empresa %1 se ha despublicado satisfactoriamente.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I El servicio %1 se ha despublicado satisfactoriamente.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I La interfaz de servicio %1 se ha despublicado satisfactoriamente.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSDL
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 se ha a\u00f1adido satisfactoriamente a la p\u00e1gina WSDL.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 no se ha podido a\u00f1adir a la p\u00e1gina WSDL.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=A\u00f1adir a favoritos
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 se ha a\u00f1adido satisfactoriamente a los favoritos.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 no se ha podido a\u00f1adir a los favoritos.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 ya existe en los favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=El favorito ya existe. \u00bfDesea sobrescribirlo?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 se ha renovado.
+MSG_QUESTION_REMOVE_NODE=%1 no se ha podido encontrar en el registro. \u00bfDesea borrarlo?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=Gestionar servicios referidos
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=A\u00f1ada servicios descubiertos o publicados a la lista de servicios a los que se hace referencia pulsando el bot\u00f3n <strong>A\u00f1adir servicios</strong>. Elimine las referencias seleccionadas pulsando el bot\u00f3n <strong>Eliminar referencias</strong>. Puede ser necesaria la autenticaci\u00f3n para los cambios.
+FORM_LABEL_REFERENCED_SERVICES=Servicios a los que se hace referencia
+FORM_BUTTON_ADD_SERVICES=A\u00f1adir servicios
+FORM_BUTTON_REMOVE_REFERENCES=Eliminar referencias
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Antes de continuar, seleccione como m\u00ednimo un servicio al que se haga referencia.
+MSG_ERROR_NO_SERVICES=IWAB0267E Antes de continuar, obtenga o localice como m\u00ednimo un servicio
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E No se ha podido hacer referencia al servicio %1.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E No se ha podido eliminar la referencia al servicio %1.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I Se ha realizado satisfactoriamente una referencia al servicio %1.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I La referencia al servicio %1 se ha eliminado satisfactoriamente.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=Gestionar aserciones de publicador
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=A\u00f1ada empresas descubiertas o publicadas a la lista de aserciones de publicador pulsando <strong>A\u00f1adir aserciones</strong>. Elimine las aserciones seleccionadas pulsando <strong>Eliminar aserciones</strong>. Complete las aserciones seleccionadas pulsando <strong>Completar aserciones</strong>. Pulse <strong>Renovar aserciones</strong> para renovar la lista de aserciones.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Tenga en cuenta que las aserciones de publicador incompletas solo son visibles para el propietario de la empresa.
+FORM_LABEL_BUSINESSES=Empresas
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Renovar aserciones
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Completar aserciones
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=A\u00f1adir aserciones
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Eliminar aserciones
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Las aserciones del publicador se han renovado.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E Seleccione como m\u00ednimo una aserci\u00f3n de publicador incompleta.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Esta operaci\u00f3n no puede realizarse en una empresa propiedad de un tercero.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Obtener empresa
+ALT_GET_BUSINESSES=Obtener empresas
+NODE_NAME_SERVICE_BUSINESS=Empresa para servicio %1
+NODE_NAME_SI_BUSINESSES=Empresas para interfaz de servicio %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=No se ha podido encontrar el servicio en el registro. \u00bfDesea eliminar este nodo?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Obtener interfaces de servicio
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Interfaces de servicio para el servicio %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=No se ha podido encontrar el servicio en el registro. \u00bfDesea eliminar este nodo?
+
+# GetServices
+ALT_GET_SERVICES=Obtener servicios
+NODE_NAME_SI_SERVICES=Servicios para interfaz de servicio %1
+NODE_NAME_BUSINESS_SERVICES=Servicios para la empresa %1
+MSG_QUESTION_REMOVE_SI_NODE=No se ha podido encontrar la interfaz de servicio en el registro. \u00bfDesea eliminar este nodo?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=No se ha podido encontrar la empresa en el registro. \u00bfDesea eliminar este nodo?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 no se ha encontrado en el registro.
+
+# Summaries
+ALT_SUMMARY_QUERIES=Resumen de consultas
+ALT_SUMMARY_BUSINESSES=Resumen de empresas
+ALT_SUMMARY_SERVICES=Resumen de servicios
+ALT_SUMMARY_SERVICE_INTERFACES=Resumen de interfaces de servicio
+FORM_LABEL_QUERIES=Consultas
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 no se ha podido encontrar en el registro. \u00bfDesea eliminarlo?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenedor del navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de herramientas del navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenido del navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Contenedor de acciones
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenedor de propiedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de herramientas de propiedades
+FRAME_TITLE_PROPERTIES_CONTENT=Contenido de propiedades
+FRAME_TITLE_STATUS_CONTAINER=Contenedor de estado
+FRAME_TITLE_STATUS_TOOLBAR=Barra de herramientas de estado
+FRAME_TITLE_STATUS_CONTENT=Contenido de estado
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=Contenido de p\u00e1gina UDDI
+FRAME_TITLE_CATEGORIES_WORKAREA=\u00c1rea de trabajo de categor\u00edas
+FRAME_TITLE_CATEGORIES_TOOLBAR=Barra de herramientas de categor\u00edas
+FRAME_TITLE_CATEGORIES_CONTENT=Contenido de categor\u00edas
+FRAME_TITLE_WSDL_TOOLBAR=Barra de herramientas del navegador WSDL
+FRAME_TITLE_WSDL_CONTENT=Contenido del navegador WSDL
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Formulario Detalles de empresa
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Formulario Servicio de publicaci\u00f3n de empresa
+FORM_TITLE_GET_FORM=Formulario Seleccionar de entre los objetos descubiertos y publicados
+FORM_TITLE_ITEMS_SUMMARY=Formulario Resumen de elementos
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Formulario Gestionar aserciones de publicador
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Formulario Gestionar servicios referidos
+FORM_TITLE_OPEN_REGISTRY=Formulario Abrir registro
+FORM_TITLE_REGISTRY_DETAILS=Formulario Detalles de registro
+FORM_TITLE_REGISTRY_PUBLISH=Formulario Publicar registro
+FORM_TITLE_REGISTRY_FIND=Formulario Buscar registro
+FORM_TITLE_RESULTS=Formulario Resultados
+FORM_TITLE_SERVICE_DETAILS=Formulario Detalles de servicio
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Formulario Detalles de interfaz de servicio
+FORM_TITLE_UNPUBLISH=Formulario Despublicar
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_fr.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_fr.properties
new file mode 100644
index 000000000..89bb835c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_fr.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI - Page principale
+NODE_NAME_QUERIES_FOLDER=Requ\u00eates ex\u00e9cut\u00e9es
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=M\u00e9tiers publi\u00e9s
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Services publi\u00e9s
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Interfaces de service publi\u00e9es
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Ouvrir un registre
+FORM_LABEL_OPEN_REGISTRY_DESC=Indiquez le nom et l'URL d'interrogation du registre \u00e0 ouvrir. Si vous s\u00e9lectionnez un registre favori, les informations requises seront indiqu\u00e9es automatiquement. Pour ouvrir le registre, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FAVORITE_REGISTRY=Registre favori
+FORM_LABEL_REGISTRY_NAME=Nom du registre
+FORM_LABEL_INQUIRY_URL=URL d'interrogation
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Rechercher les cat\u00e9gories d\u00e9finies par l'utilisateur
+DEFAULT_REGISTRY_NAME=Registre UDDI de test IBM
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Indiquez un nom de registre valide.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Indiquez un URL d'interrogation valide.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I Le registre nomm\u00e9 %1 figurant dans %2 a \u00e9t\u00e9 ouvert.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=Est un registre UDDI WebSphere
+DEFAULT_REGISTRY_NAME_WEBSPHERE=Registre UDDI priv\u00e9 IBM WebSphere
+FORM_LABEL_REGISTRY_HOST=H\u00f4te
+FORM_LABEL_REGISTRY_PORT=Port
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Cliquez ici</a> pour charger les donn\u00e9es de cette cat\u00e9gorie.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Nom du fichier de donn\u00e9es de cat\u00e9gories
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I Aucune cat\u00e9gorie d\u00e9finie par l'utilisateur n'a \u00e9t\u00e9 d\u00e9tect\u00e9e.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Les donn\u00e9es de cat\u00e9gorie pour %1 ne sont pas disponibles ou ne sont pas valides.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Les donn\u00e9es pour la cat\u00e9gorie d\u00e9finie par l'utilisateur %1 ont \u00e9t\u00e9 charg\u00e9es.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Fichier de donn\u00e9es non valide pour la cat\u00e9gorie d\u00e9finie par l'utilisateur %1. Une cl\u00e9 de cat\u00e9gorie '%2' a \u00e9t\u00e9 trouv\u00e9e alors que '%3' est attendue.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Format inconnu \u00e0 la ligne %1 du fichier de donn\u00e9es pour la cat\u00e9gorie d\u00e9finie par l'utilisateur %2. La ligne est : "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Fichier de donn\u00e9es non valide pour la cat\u00e9gorie d\u00e9finie par l'utilisateur %1.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Une erreur s'est produite lors de la sauvegarde des donn\u00e9es pour la cat\u00e9gorie %1. Texte de l'exception : %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Navigateur par cat\u00e9gories
+ALT_CATEGORIES=Cat\u00e9gories
+
+# Details
+ALT_REGISTRY_DETAILS=D\u00e9tails du registre
+ALT_BUSINESS_DETAILS=D\u00e9tails du m\u00e9tier
+ALT_SERVICE_DETAILS=D\u00e9tails du service
+ALT_SERVICE_INTERFACE_DETAILS=D\u00e9tails de l'interface de service
+FORM_LABEL_DETAILS_EDITABLE=Les d\u00e9tails de <strong>%1</strong> sont indiqu\u00e9s ci-dessous. Vous pouvez ajouter, supprimer ou modifier des \u00e9l\u00e9ments. Une authentification peut \u00eatre requise pour les modifications. D'autres actions sont r\u00e9pertori\u00e9es au bas de cette page.
+
+# Get
+ALT_GET=Get
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Valeur du nom
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Valeur de la description
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Nom de la cl\u00e9 de cat\u00e9gorie
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Valeur de la cl\u00e9 de cat\u00e9gorie
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Nom de cl\u00e9 pour l'identificateur
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Valeur de cl\u00e9 pour l'identificateur
+FORM_CONTROL_TITLE_DISCOVERY_URL=URL de recherche
+
+# Find actions
+ALT_FIND=Rechercher
+ALT_SUBQUERY=Rechercher la sous-requ\u00eate %1
+FORM_LABEL_QUERY_NAME=Nom de cette requ\u00eate
+DEFAULT_QUERY_NAME=R\u00e9sultats de la requ\u00eate
+DEFAULT_SUBQUERY_NAME=Sous-requ\u00eate %1 - %2
+FORM_LABEL_SEARCH_FOR=Rechercher
+FORM_OPTION_BUSINESSES=M\u00e9tiers
+FORM_OPTION_SERVICES=Services
+FORM_OPTION_SERVICE_INTERFACES=Interfaces de service
+FORM_LABEL_SEARCH_TYPE=Type de recherche
+FORM_RADIO_SIMPLE=Simple
+FORM_RADIO_ADVANCED=Avanc\u00e9e
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Indiquez le nom partiel ou complet d'un m\u00e9tier \u00e0 rechercher. Vous pouvez utiliser le symbole '%' comme caract\u00e8re g\u00e9n\u00e9rique pour remplacer un caract\u00e8re. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FIND_ADVANCED_DESC=Indiquez des valeurs pour un ou plusieurs param\u00e8tres r\u00e9pertori\u00e9s ci-dessous. Vous pouvez utiliser le symbole '%' comme caract\u00e8re g\u00e9n\u00e9rique pour remplacer un caract\u00e8re dans la zone Nom du tableau Noms. Vous devrez peut-\u00eatre vous authentifier. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Indiquez l'UUID du m\u00e9tier \u00e0 rechercher. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_NAMES=Noms
+FORM_LINK_ADD=Ajouter
+FORM_LINK_GET=Extraire
+FORM_LINK_FIND=Rechercher
+FORM_LINK_REMOVE=Supprimer
+FORM_LABEL_OWNED=Propri\u00e9taire
+FORM_LABEL_PUBLISH_URL=URL de publication
+FORM_LABEL_USERID=ID utilisateur
+FORM_LABEL_PASSWORD=Mot de passe
+FORM_LABEL_LANGUAGE=Langue
+FORM_LABEL_NAME=Nom
+FORM_LABEL_DESCRIPTION=Description
+FORM_OPTION_LANGUAGE_EN=Anglais
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abkhazien
+FORM_OPTION_LANGUAGE_AF=Afrikaans
+FORM_OPTION_LANGUAGE_AM=Amharique
+FORM_OPTION_LANGUAGE_AR=Arabe
+FORM_OPTION_LANGUAGE_AS=Assamais
+FORM_OPTION_LANGUAGE_AY=Aymara
+FORM_OPTION_LANGUAGE_AZ=Azerba\u00efdjanais
+FORM_OPTION_LANGUAGE_BA=Bashkir
+FORM_OPTION_LANGUAGE_BE=Bi\u00e9lorusse
+FORM_OPTION_LANGUAGE_BG=Bulgare
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bichlamar
+FORM_OPTION_LANGUAGE_BN=Bengali; Bangla
+FORM_OPTION_LANGUAGE_BO=Tib\u00e9tain
+FORM_OPTION_LANGUAGE_BR=Breton
+FORM_OPTION_LANGUAGE_CA=Catalan
+FORM_OPTION_LANGUAGE_CO=Corse
+FORM_OPTION_LANGUAGE_CZ=Tch\u00e8que
+FORM_OPTION_LANGUAGE_CY=Gallois
+FORM_OPTION_LANGUAGE_DA=Danois
+FORM_OPTION_LANGUAGE_DE=Allemand
+FORM_OPTION_LANGUAGE_DZ=Bhutani
+FORM_OPTION_LANGUAGE_EL=Grec
+FORM_OPTION_LANGUAGE_EO=Esp\u00e9ranto
+FORM_OPTION_LANGUAGE_ES=Espagnol
+FORM_OPTION_LANGUAGE_ET=Estonien
+FORM_OPTION_LANGUAGE_EU=Basque
+FORM_OPTION_LANGUAGE_FA=Perse
+FORM_OPTION_LANGUAGE_FI=Finnois
+FORM_OPTION_LANGUAGE_FJ=Fidji
+FORM_OPTION_LANGUAGE_FO=F\u00e9roien
+FORM_OPTION_LANGUAGE_FR=Fran\u00e7ais
+FORM_OPTION_LANGUAGE_FY=Frisien
+FORM_OPTION_LANGUAGE_GA=Irlandais
+FORM_OPTION_LANGUAGE_GD=Ga\u00e9lique \u00e9cossais
+FORM_OPTION_LANGUAGE_GL=Galicien
+FORM_OPTION_LANGUAGE_GN=Guarani
+FORM_OPTION_LANGUAGE_GU=Goujrati
+FORM_OPTION_LANGUAGE_HA=Haoussa
+FORM_OPTION_LANGUAGE_HI=Hindi
+FORM_OPTION_LANGUAGE_HR=Croate
+FORM_OPTION_LANGUAGE_HU=Hongrois
+FORM_OPTION_LANGUAGE_HY=Arm\u00e9nien
+FORM_OPTION_LANGUAGE_IA=Interlingue
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiak
+FORM_OPTION_LANGUAGE_IN=Indon\u00e9sien
+FORM_OPTION_LANGUAGE_IS=Islandais
+FORM_OPTION_LANGUAGE_IT=Italien
+FORM_OPTION_LANGUAGE_IW=H\u00e9breu
+FORM_OPTION_LANGUAGE_JA=Japonais
+FORM_OPTION_LANGUAGE_JI=Yiddish
+FORM_OPTION_LANGUAGE_JW=Javanais
+FORM_OPTION_LANGUAGE_KA=G\u00e9orgien
+FORM_OPTION_LANGUAGE_KK=Kazakh
+FORM_OPTION_LANGUAGE_KL=Groenlandais
+FORM_OPTION_LANGUAGE_KM=Cambodgien
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=Cor\u00e9en
+FORM_OPTION_LANGUAGE_KS=Kashmiri
+FORM_OPTION_LANGUAGE_KU=Kurde
+FORM_OPTION_LANGUAGE_KY=Kirghiz
+FORM_OPTION_LANGUAGE_LA=Latin
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=Laotien
+FORM_OPTION_LANGUAGE_LT=Lituanien
+FORM_OPTION_LANGUAGE_LV=Letton, lettonien
+FORM_OPTION_LANGUAGE_MG=Malgache
+FORM_OPTION_LANGUAGE_MI=Maori
+FORM_OPTION_LANGUAGE_MK=Mac\u00e9donien
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=Mongol
+FORM_OPTION_LANGUAGE_MO=Moldave
+FORM_OPTION_LANGUAGE_MR=Marathe
+FORM_OPTION_LANGUAGE_MS=Malais
+FORM_OPTION_LANGUAGE_MT=Maltais
+FORM_OPTION_LANGUAGE_MY=Birman
+FORM_OPTION_LANGUAGE_NA=Nauri
+FORM_OPTION_LANGUAGE_NE=N\u00e9palais
+FORM_OPTION_LANGUAGE_NL=N\u00e9erlandais
+FORM_OPTION_LANGUAGE_NO=Norv\u00e9gien
+FORM_OPTION_LANGUAGE_OC=Occitan
+FORM_OPTION_LANGUAGE_OM=(Afan) oromo
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=Pendjabi
+FORM_OPTION_LANGUAGE_PL=Polonais
+FORM_OPTION_LANGUAGE_PS=Pashto, Pashtou
+FORM_OPTION_LANGUAGE_PT=Portugais
+FORM_OPTION_LANGUAGE_QU=Quichua
+FORM_OPTION_LANGUAGE_RM=Rh\u00e9to-roman
+FORM_OPTION_LANGUAGE_RN=Kiroundi
+FORM_OPTION_LANGUAGE_RO=Roumain
+FORM_OPTION_LANGUAGE_RU=Russe
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=Sanscrit
+FORM_OPTION_LANGUAGE_SD=Sindhi
+FORM_OPTION_LANGUAGE_SG=Sango
+FORM_OPTION_LANGUAGE_SH=Serbo-croate
+FORM_OPTION_LANGUAGE_SI=Singhalais
+FORM_OPTION_LANGUAGE_SK=Slovaque
+FORM_OPTION_LANGUAGE_SL=Slov\u00e8ne
+FORM_OPTION_LANGUAGE_SM=Samoan
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=Somali
+FORM_OPTION_LANGUAGE_SQ=Albanais
+FORM_OPTION_LANGUAGE_SR=Serbe
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Soundanais
+FORM_OPTION_LANGUAGE_SV=Su\u00e9dois
+FORM_OPTION_LANGUAGE_SW=Swahili
+FORM_OPTION_LANGUAGE_TA=Tamoul
+FORM_OPTION_LANGUAGE_TE=T\u00e9goulou
+FORM_OPTION_LANGUAGE_TG=Tadjik
+FORM_OPTION_LANGUAGE_TH=Tha\u00ef
+FORM_OPTION_LANGUAGE_TI=Tigrinya
+FORM_OPTION_LANGUAGE_TK=Turkm\u00e8ne
+FORM_OPTION_LANGUAGE_TL=Tagal
+FORM_OPTION_LANGUAGE_TN=Setchwana
+FORM_OPTION_LANGUAGE_TO=Tonga
+FORM_OPTION_LANGUAGE_TR=Turc
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=Tatar
+FORM_OPTION_LANGUAGE_TW=Tchi
+FORM_OPTION_LANGUAGE_UK=Ukrainien
+FORM_OPTION_LANGUAGE_UR=Ourdou
+FORM_OPTION_LANGUAGE_UZ=Ouzbek
+FORM_OPTION_LANGUAGE_VI=Vietnamien
+FORM_OPTION_LANGUAGE_VO=Volap\u00fck
+FORM_OPTION_LANGUAGE_WO=Ouolof
+FORM_OPTION_LANGUAGE_XH=Xhosa
+FORM_OPTION_LANGUAGE_YO=Yorouba
+FORM_OPTION_LANGUAGE_ZH=Chinois
+FORM_OPTION_LANGUAGE_ZU=Zoulou
+FORM_LABEL_EXACT_NAME_MATCH=Occurrence exacte
+FORM_LABEL_CASE_SENSITIVE_MATCH=Distinction maj/min
+FORM_LABEL_SOUNDEX=Imitation du son
+FORM_LABEL_IDENTIFIERS=Identificateurs
+FORM_LABEL_IDENTIFIER_TYPE=Type
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Registre Thomas
+
+FORM_LABEL_KEY_NAME=Nom de cl\u00e9
+FORM_LABEL_KEY_VALUE=Valeur de cl\u00e9
+FORM_LABEL_CATEGORIES=Cat\u00e9gories
+FORM_LABEL_CATEGORY_TYPE=Type
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=Communaut\u00e9 dW
+FORM_LABEL_BUSINESS_CATEGORIES=Comparer avec :
+FORM_OPTION_BUSINESSES_ONLY=M\u00e9tiers uniquement
+FORM_OPTION_SERVICES_ONLY=Services uniquement
+FORM_OPTION_BOTH=M\u00e9tiers et services
+FORM_LABEL_DISCOVERYURLS=URL de recherche
+FORM_LABEL_DISCOVERYURL=URL de recherche
+FORM_LABEL_FINDQUALIFIERS=Rechercher les qualificatifs
+FORM_LABEL_COMBINE_KEYS=Combiner les cl\u00e9s :
+FORM_OPTION_ANDALLKEYS=Et
+FORM_OPTION_ORALLKEYS=Ou
+FORM_OPTION_ORLIKEKEYS=Ou comme
+FORM_LABEL_SORT_BY_NAME=Trier par nom :
+FORM_RADIO_SORT_ASC=Ordre croissant
+FORM_RADIO_SORT_DESC=Ordre d\u00e9croissant
+FORM_LABEL_SORT_BY_DATE=Trier par date :
+FORM_LABEL_MAX_SEARCH_SET=Taille maximale de l'ensemble recherch\u00e9 :
+FORM_LABEL_MAX_RESULTS=Nombre maximal de r\u00e9sultats :
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Indiquez le nom partiel ou complet d'un service \u00e0 rechercher. Vous pouvez utiliser le symbole '%' comme caract\u00e8re g\u00e9n\u00e9rique pour remplacer un caract\u00e8re. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Indiquez l'UUID du service \u00e0 rechercher. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Indiquez le nom partiel ou complet d'une interface de service \u00e0 rechercher. Vous pouvez utiliser le symbole '%' comme caract\u00e8re g\u00e9n\u00e9rique pour remplacer un caract\u00e8re. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Indiquez l'UUID de l'interface de service \u00e0 rechercher. Pour lancer la recherche, cliquez sur <strong>OK</strong>.
+FORM_LABEL_SERVICE_INTERFACES=Interfaces de service
+FORM_LABEL_UUID_KEY=Cl\u00e9 de l'UUID :
+FORM_LABEL_USE_SERVICE=Utiliser le service
+FORM_LABEL_SERVICE=Service
+FORM_LABEL_BUSINESS=M\u00e9tier
+FORM_LABEL_PUBLISH_ASSERTIONS=Relations commerciales
+FORM_LABEL_DIRECTION=Sens
+FORM_LABEL_FROM_KEY=A partir de la cl\u00e9
+FORM_LABEL_TO_KEY=Vers la cl\u00e9
+FORM_LABEL_STATUS=Statut
+FORM_LABEL_ASSERTION_TYPE=Type de relation
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Parent-enfant
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Egal-\u00e9gal
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identit\u00e9
+FORM_LABEL_ASSERTION_DIRETION_DESC=Le sens <strong>A partir de</strong> cr\u00e9era une relation commerciale \u00e0 partir de ce m\u00e9tier vers les m\u00e9tiers situ\u00e9s au-dessus. Le sens <strong>Vers</strong> cr\u00e9era une relation commerciale \u00e0 partir des m\u00e9tiers au-dessus vers ce m\u00e9tier.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=Ce m\u00e9tier
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Indiquez un nom valide pour la requ\u00eate.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Indiquez une s\u00e9rie de noms valides.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Indiquez une URL de publication valide.
+MSG_ERROR_INVALID_USERID=IWAB0143E Indiquez un ID utilisateur valide.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Indiquez une taille valide pour la taille maximale de l'ensemble recherch\u00e9.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Indiquez une taille valide pour le nombre maximal de r\u00e9sultats.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I Nombre de m\u00e9tiers trouv\u00e9s : %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E Aucun m\u00e9tier n'a \u00e9t\u00e9 trouv\u00e9.
+MSG_INFO_SERVICES_FOUND=IWAB0149I Nombre de services trouv\u00e9s : %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E Aucun service n'a \u00e9t\u00e9 trouv\u00e9.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E S\u00e9lectionnez un seul \u00e9l\u00e9ment.
+MSG_QUESTION_ITEM_REPLACEMENT=La s\u00e9lection remplacera un \u00e9l\u00e9ment figurant d\u00e9j\u00e0 dans la cible. Voulez-vous continuer ?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I Nombre d'interfaces de service trouv\u00e9es : %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E Aucune interface de service n'a \u00e9t\u00e9 trouv\u00e9e.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E S\u00e9lectionnez au moins un \u00e9l\u00e9ment.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Indiquez une cl\u00e9 d'UUID valide.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E Le nom de requ\u00eate de la sous-requ\u00eate ne peut pas \u00eatre identique \u00e0 celui de son auteur.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Aucun \u00e9l\u00e9ment du type indiqu\u00e9 n'a encore \u00e9t\u00e9 publi\u00e9 ouhe's a recherch\u00e9.
+
+# Results
+ALT_QUERY_RESULTS=R\u00e9sultats de la requ\u00eate
+FORM_LABEL_SUBQUERY=Les r\u00e9sultats peuvent \u00eatre utilis\u00e9s comme entr\u00e9es pour une autre op\u00e9ration. Pour afficher l'op\u00e9ration, cliquez sur le lien <strong>cible</strong> en haut. Les r\u00e9sultats s\u00e9lectionn\u00e9s peuvent \u00eatre utilis\u00e9s dans l'op\u00e9ration en cliquant sur le bouton <strong>Transf\u00e9rer</strong>.
+FORM_LABEL_QUERY=S\u00e9lectionnez un r\u00e9sultat pour afficher ses d\u00e9tails ou s\u00e9lectionnez un ensemble de r\u00e9sultats et cliquez sur un bouton pour effectuer une op\u00e9ration.
+FORM_LINK_TARGET=cible
+FORM_BUTTON_TRANSFER=Transf\u00e9rer
+FORM_BUTTON_REFRESH=R\u00e9g\u00e9n\u00e9ration
+FORM_BUTTON_ADD_TO_FAVORITES=Ajouter aux favoris
+FORM_BUTTON_UNPUBLISH=Annuler la publication
+FORM_BUTTON_CLEAR=Effacer
+
+# Publish actions
+ALT_PUBLISH=Publier
+FORM_LABEL_PUBLISH=Publier :
+FORM_OPTION_BUSINESS=M\u00e9tier
+FORM_OPTION_SERVICE=Service
+FORM_OPTION_SERVICE_INTERFACE=Interface de service
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Indiquez un nom et une description \u00e9ventuelle pour le m\u00e9tier \u00e0 publier. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Indiquez un nom pour le m\u00e9tier \u00e0 publier. Vous pouvez aussi indiquer d'autres param\u00e8tres. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Extrayez ou recherchez un m\u00e9tier puis indiquez l'URL WSDL, un nom et une description \u00e9ventuelle pour le service \u00e0 publier. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Extrayez ou recherchez un m\u00e9tier puis indiquez l'URL WSDL et un nom pour le service \u00e0 publier. Vous pouvez aussi indiquer d'autres param\u00e8tres. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Extrayez ou recherchez un m\u00e9tier puis indiquez l'URL WSDL, un nom et une description \u00e9ventuelle pour le service \u00e0 publier. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Indiquez l'URL WSDL et le nom du service \u00e0 publier. Vous pouvez aussi indiquer d'autres param\u00e8tres. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Indiquez l'URL WSDL, le nom et la description \u00e9ventuelle de l'interface de service \u00e0 publier. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Indiquez l'URL WSDL et le nom de l'interface de service \u00e0 publier. Vous pouvez aussi indiquer d'autres param\u00e8tres. Vous devrez peut-\u00eatre vous authentifier.
+FORM_LABEL_PUBLISH_FORM=Format de publication
+FORM_LABEL_DESCRIPTION=Description
+FORM_LABEL_DESCRIPTIONS=Descriptions
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I Le m\u00e9tier %1 a \u00e9t\u00e9 publi\u00e9.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I Le service %1 a \u00e9t\u00e9 publi\u00e9.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I L'interface de service %1 a \u00e9t\u00e9 publi\u00e9e.
+MSG_ERROR_INVALID_NAME=IWAB0161E Indiquez un nom valide.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E S\u00e9lectionnez une langue sous la forme d'autres caract\u00e8res que des caract\u00e8res blancs pour le %1 de la ligne %2. Seule la premi\u00e8re ligne peut contenir une langue sous la forme de caract\u00e8res blancs.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Changez la langue pour le %1 de la ligne %2. Celle-ci est d\u00e9j\u00e0 utilis\u00e9e.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Indiquez un %1 valide \u00e0 la ligne %2
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Indiquez une URL WSDL valide.
+MSG_ERROR_NO_NAMES=IWAB0254E Ajoutez au moins un nom.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Indiquez un service valide.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Indiquez un m\u00e9tier valide.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Publier un service
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=Navigateur de WSDL - %1
+FORM_LABEL_WSDL_SOURCE=S\u00e9lectionnez la source WSDL :
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Projets Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoris
+FORM_LABEL_WEB_PROJECT=Projet Web
+FORM_LABEL_WSDL_URL=URL WSDL
+ALT_WSDL_BROWSER=Navigateur WSDL
+
+# Details
+FORM_LINK_EDIT=Editer
+FORM_LINK_CANCEL=Annuler
+FORM_LABEL_BUSINESS_KEY=Cl\u00e9 du m\u00e9tier
+FORM_LABEL_SERVICE_KEY=Cl\u00e9 du service
+FORM_LABEL_SERVICE_INTERFACE_KEY=Cl\u00e9 TModel
+FORM_LABEL_USER_DEFINED_CATEGORIES=Cat\u00e9gories d\u00e9finies par l'utilisateur
+FORM_LABEL_CHECKED=Contr\u00f4l\u00e9e
+FORM_LABEL_FILE=Fichier
+MSG_QUESTION_PUBLISH_ITEM=L'\u00e9l\u00e9ment est introuvable dans le registre. Voulez-vous le publier ?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=Le service et son m\u00e9tier sont introuvables dans le registre. Voulez-vous continuer pour publier ?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I Le m\u00e9tier %1 a \u00e9t\u00e9 mis \u00e0 jour.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I Le service %1 a \u00e9t\u00e9 mis \u00e0 jour.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I L'interface de service %1 a \u00e9t\u00e9 mise \u00e0 jour.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I Le registre %1 a \u00e9t\u00e9 mis \u00e0 jour.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Annuler la publication du m\u00e9tier
+ALT_UNPUBLISH_SERVICE=Annuler la publication du service
+ALT_UNPUBLISH_SERVICE_INTERFACE=Annuler la publication de l'interface de service
+FORM_LABEL_UNPUBLISH_DESC=Pour annuler la publication de cet objet, cliquez sur <strong>OK</strong>. Vous devrez peut-\u00eatre vous authentifier.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I La publication du m\u00e9tier %1 a \u00e9t\u00e9 annul\u00e9e.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I La publication du service %1 a \u00e9t\u00e9 annul\u00e9e.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I La publication de l'interface de service %1 a \u00e9t\u00e9 annul\u00e9e.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=Ajouter \u00e0 la page WSDL
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 a \u00e9t\u00e9 ajout\u00e9 \u00e0 la page WSDL.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 n'a pas pu \u00eatre ajout\u00e9 \u00e0 la page WSDL.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=Ajouter aux favoris
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 a \u00e9t\u00e9 ajout\u00e9 aux favoris.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 n'a pas pu \u00eatre ajout\u00e9 aux favoris.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 figure d\u00e9j\u00e0 dans les favoris.
+MSG_QUESTION_OVERWRITE_FAVORITES=Le favori existe d\u00e9j\u00e0. Voulez-vous le remplacer ?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 actualis\u00e9.
+MSG_QUESTION_REMOVE_NODE=%1 est introuvable dans le registre. Voulez-vous l'effacer ?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=G\u00e9rer les services r\u00e9f\u00e9renc\u00e9s
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=Ajoutez des services recherch\u00e9s ou publi\u00e9s \u00e0 la liste des services r\u00e9f\u00e9renc\u00e9s en cliquant sur le bouton <strong>Ajouter des services</strong>. Supprimez les r\u00e9f\u00e9rences s\u00e9lectionn\u00e9es en cliquant sur le bouton <strong>Supprimer des r\u00e9f\u00e9rences</strong>. Une authentification peut \u00eatre requise pour les modifications.
+FORM_LABEL_REFERENCED_SERVICES=Services r\u00e9f\u00e9renc\u00e9s
+FORM_BUTTON_ADD_SERVICES=Ajouter des services
+FORM_BUTTON_REMOVE_REFERENCES=Supprimer des r\u00e9f\u00e9rences
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E S\u00e9lectionnez au moins un service r\u00e9f\u00e9renc\u00e9 avant de continuer.
+MSG_ERROR_NO_SERVICES=IWAB0267E Extrayez ou recherchez au moins un service avant de continuer.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E Le service %1 n'a pas pu \u00eatre r\u00e9f\u00e9renc\u00e9.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E La r\u00e9f\u00e9rence de service %1 n'a pas pu \u00eatre supprim\u00e9e.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I Le service %1 a \u00e9t\u00e9 r\u00e9f\u00e9renc\u00e9.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I La r\u00e9f\u00e9rence de service %1 a \u00e9t\u00e9 supprim\u00e9e.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=G\u00e9rer les relations commerciales
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=Ajoutez des m\u00e9tiers recherch\u00e9s ou publi\u00e9s \u00e0 la liste des relations commerciales en cliquant sur <strong>Ajouter des relations</strong>. Supprimez les relations s\u00e9lectionn\u00e9es en cliquant sur <strong>Supprimer des relations</strong>. Compl\u00e9tez les relations s\u00e9lectionn\u00e9es en cliquant sur <strong>Compl\u00e9ter des relations</strong>. Cliquez sur <strong>Actualiser les relations</strong> pour r\u00e9g\u00e9n\u00e9rer la liste des relations.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Les relations commerciales incompl\u00e8tes ne sont visibles que par le propri\u00e9taire du m\u00e9tier.
+FORM_LABEL_BUSINESSES=M\u00e9tiers
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Actualiser les relations
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Compl\u00e9ter les relations
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=Ajouter des relations
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Supprimer des relations
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Les relations commerciales ont \u00e9t\u00e9 actualis\u00e9es.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E S\u00e9lectionnez au moins une relation commerciale incompl\u00e8te.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Cette op\u00e9ration ne peut pas \u00eatre effectu\u00e9e sur un m\u00e9tier appartenant \u00e0 une autre partie.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Extraire un m\u00e9tier
+ALT_GET_BUSINESSES=Extraire des m\u00e9tiers
+NODE_NAME_SERVICE_BUSINESS=M\u00e9tier pour le service %1
+NODE_NAME_SI_BUSINESSES=M\u00e9tiers pour l'interface de service %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=Le service est introuvable dans le registre. Voulez-vous supprimer ce noeud ?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Extraire des interfaces de service
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Interfaces de service pour le service %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=Le service est introuvable dans le registre. Voulez-vous supprimer ce noeud ?
+
+# GetServices
+ALT_GET_SERVICES=Extraire des services
+NODE_NAME_SI_SERVICES=Services pour l'interface de service %1
+NODE_NAME_BUSINESS_SERVICES=Services pour le m\u00e9tier %1
+MSG_QUESTION_REMOVE_SI_NODE=L'interface de service est introuvable dans le registre. Voulez-vous supprimer ce noeud ?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=Le m\u00e9tier est introuvable dans le registre. Voulez-vous supprimer ce noeud ?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 est introuvable dans le registre.
+
+# Summaries
+ALT_SUMMARY_QUERIES=R\u00e9capitulatif des requ\u00eates
+ALT_SUMMARY_BUSINESSES=R\u00e9capitulatif des m\u00e9tiers
+ALT_SUMMARY_SERVICES=R\u00e9capitulatif des services
+ALT_SUMMARY_SERVICE_INTERFACES=R\u00e9capitulatif des interfaces de service
+FORM_LABEL_QUERIES=Requ\u00eates
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 est introuvable dans le registre. Voulez-vous le supprimer ?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigateur - Conteneur
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigateur - Barre d'outils
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigateur - Contenu
+FRAME_TITLE_ACTIONS_CONTAINER=Conteneur d'actions
+FRAME_TITLE_PROPERTIES_CONTAINER=Conteneur de propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barre d'outils des propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_CONTENT=Contenu des propri\u00e9t\u00e9s
+FRAME_TITLE_STATUS_CONTAINER=Conteneur de statuts
+FRAME_TITLE_STATUS_TOOLBAR=Barre d'outils des statuts
+FRAME_TITLE_STATUS_CONTENT=Contenu des statuts
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=Contenu des pages UDDI
+FRAME_TITLE_CATEGORIES_WORKAREA=Cat\u00e9gories - Zone de travail
+FRAME_TITLE_CATEGORIES_TOOLBAR=Cat\u00e9gories - Barre d'outils
+FRAME_TITLE_CATEGORIES_CONTENT=Cat\u00e9gories - Contenu
+FRAME_TITLE_WSDL_TOOLBAR=Barre d'outils du navigateur WSDL
+FRAME_TITLE_WSDL_CONTENT=Contenu du navigateur WSDL
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Formulaire Informations sur le m\u00e9tier
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Formulaire Service de publication du m\u00e9tier
+FORM_TITLE_GET_FORM=Effectuez votre s\u00e9lection dans les objets recherch\u00e9s et publi\u00e9s
+FORM_TITLE_ITEMS_SUMMARY=Formulaire R\u00e9capitulatif des \u00e9l\u00e9ments
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Formulaire Gestion des relations commerciales
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Formulaire Gestion des services r\u00e9f\u00e9renc\u00e9s
+FORM_TITLE_OPEN_REGISTRY=Formulaire Ouverture du registre
+FORM_TITLE_REGISTRY_DETAILS=Formulaire Informations sur le registre
+FORM_TITLE_REGISTRY_PUBLISH=Formulaire Publication du registre
+FORM_TITLE_REGISTRY_FIND=Formulaire Recherche du registre
+FORM_TITLE_RESULTS=Formulaire R\u00e9sultats
+FORM_TITLE_SERVICE_DETAILS=Formulaire Informations sur le service
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Formulaire Informations sur l'interface de service
+FORM_TITLE_UNPUBLISH=Formulaire Annulation de la publication
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_it.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_it.properties
new file mode 100644
index 000000000..6ac397b11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_it.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI principale
+NODE_NAME_QUERIES_FOLDER=Query eseguite
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Business pubblicati
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Servizi pubblicati
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Interfacce di servizio pubblicate
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Apri registro
+FORM_LABEL_OPEN_REGISTRY_DESC=Specificare il nome e l'URL di richiesta del registro da aprire. La selezione di un registro preferito consentir\u00e0 di inserire automaticamente le informazioni richieste. Premere <strong>Vai</strong> per aprire il registro.
+FORM_LABEL_FAVORITE_REGISTRY=Registro preferito
+FORM_LABEL_REGISTRY_NAME=Nome registro
+FORM_LABEL_INQUIRY_URL=URL di richiesta
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Ricerca categorie definite dall'utente
+DEFAULT_REGISTRY_NAME=Registro di prova UDDI IBM
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Immettere un nome registro valido.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Immettere un URL di richiesta valido.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I Il registro denominato %1 situato su %2 \u00e8 stato aperto correttamente.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=Si tratta del registro UDDI WebSphere?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=Registro UDDI privato IBM WebSphere
+FORM_LABEL_REGISTRY_HOST=Host
+FORM_LABEL_REGISTRY_PORT=Porta
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Fare clic qui</a> per caricare i dati di questa categoria.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Nome file dati categoria
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I Non \u00e8 stata rilevata alcuna categoria definita dall'utente.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I I dati della categoria per %1 non sono disponibili o non sono validi.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I I dati per la categoria %1 definita dall'utente sono stati caricati correttamente.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E File di dati non valido per la categoria %1 definita dall'utente. \u00c8 stata rilevata una chiave di categoria '%2' ma era prevista '%3'.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Formato sconosciuto alla riga: %1 del file di dati per la categoria %2 definita dall'utente. La riga \u00e8: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E File di dati non valido per la categoria %1 definita dall'utente.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Si \u00e8 verificato un errore durante il salvataggio dei dati per la categoria %1. Testo eccezione: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Browser categoria
+ALT_CATEGORIES=Categorie
+
+# Details
+ALT_REGISTRY_DETAILS=Dettagli registro
+ALT_BUSINESS_DETAILS=Dettagli business
+ALT_SERVICE_DETAILS=Dettagli servizio
+ALT_SERVICE_INTERFACE_DETAILS=Dettagli interfaccia di servizio
+FORM_LABEL_DETAILS_EDITABLE=I dettagli per <strong>%1</strong> sono visualizzati in basso. Alcuni elementi possono essere aggiunti, rimossi o modificati. Per le modifiche, potrebbe essere richiesta l'autenticazione. Le altre azioni vengono visualizzate nella parte inferiore di questa pagina.
+
+# Get
+ALT_GET=Richiama
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Nome valore
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Valore descrizione
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Nome chiave categoria
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Valore chiave categoria
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Nome chiave identificativo
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Valore chiave identificativo
+FORM_CONTROL_TITLE_DISCOVERY_URL=URL di rilevamento
+
+# Find actions
+ALT_FIND=Trova
+ALT_SUBQUERY=Trova query secondaria %1
+FORM_LABEL_QUERY_NAME=Nome di questa query
+DEFAULT_QUERY_NAME=risultati della query
+DEFAULT_SUBQUERY_NAME=%1 - %2 query secondaria
+FORM_LABEL_SEARCH_FOR=Cerca
+FORM_OPTION_BUSINESSES=Business
+FORM_OPTION_SERVICES=Servizi
+FORM_OPTION_SERVICE_INTERFACES=Interfacce di servizio
+FORM_LABEL_SEARCH_TYPE=Tipo di ricerca
+FORM_RADIO_SIMPLE=Semplice
+FORM_RADIO_ADVANCED=Avanzata
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Immettere il nome parziale o completo di un business da ricercare. Il simbolo '%' pu\u00f2 essere utilizzato come un carattere jolly che corrisponde a qualsiasi carattere. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_FIND_ADVANCED_DESC=Immettere i valori per uno o pi\u00f9 parametri elencati in basso. Il simbolo '%' pu\u00f2 essere utilizzato come un carattere jolly che corrisponde a qualsiasi carattere del campo Nome o della tabella Nomi. Potrebbe essere richiesta l'autenticazione. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Immettere l'UUID del business da ricercare. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_NAMES=Nomi
+FORM_LINK_ADD=Aggiungi
+FORM_LINK_GET=Richiama
+FORM_LINK_FIND=Trova
+FORM_LINK_REMOVE=Rimuovi
+FORM_LABEL_OWNED=Proprietario
+FORM_LABEL_PUBLISH_URL=URL di pubblicazione
+FORM_LABEL_USERID=ID utente
+FORM_LABEL_PASSWORD=Password
+FORM_LABEL_LANGUAGE=Lingua
+FORM_LABEL_NAME=Nome
+FORM_LABEL_DESCRIPTION=Descrizione
+FORM_OPTION_LANGUAGE_EN=Inglese
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abkhazian
+FORM_OPTION_LANGUAGE_AF=Afrikaans
+FORM_OPTION_LANGUAGE_AM=Amarico
+FORM_OPTION_LANGUAGE_AR=Arabo
+FORM_OPTION_LANGUAGE_AS=Assamese
+FORM_OPTION_LANGUAGE_AY=Aymara
+FORM_OPTION_LANGUAGE_AZ=Azerbaijani
+FORM_OPTION_LANGUAGE_BA=Bashkir
+FORM_OPTION_LANGUAGE_BE=Bielorusso
+FORM_OPTION_LANGUAGE_BG=Bulgaro
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bislama
+FORM_OPTION_LANGUAGE_BN=Bengali; Bangla
+FORM_OPTION_LANGUAGE_BO=Tibetano
+FORM_OPTION_LANGUAGE_BR=Bretone
+FORM_OPTION_LANGUAGE_CA=Catalano
+FORM_OPTION_LANGUAGE_CO=Corsica
+FORM_OPTION_LANGUAGE_CZ=Ceco
+FORM_OPTION_LANGUAGE_CY=Gallese
+FORM_OPTION_LANGUAGE_DA=Danese
+FORM_OPTION_LANGUAGE_DE=Tedesco
+FORM_OPTION_LANGUAGE_DZ=Bhutani
+FORM_OPTION_LANGUAGE_EL=Greco
+FORM_OPTION_LANGUAGE_EO=Esperanto
+FORM_OPTION_LANGUAGE_ES=Spagnolo
+FORM_OPTION_LANGUAGE_ET=Estone
+FORM_OPTION_LANGUAGE_EU=Basco
+FORM_OPTION_LANGUAGE_FA=Persiano
+FORM_OPTION_LANGUAGE_FI=Finlandese
+FORM_OPTION_LANGUAGE_FJ=Fiji
+FORM_OPTION_LANGUAGE_FO=Faeroese
+FORM_OPTION_LANGUAGE_FR=Francese
+FORM_OPTION_LANGUAGE_FY=Frisone
+FORM_OPTION_LANGUAGE_GA=Irlandese
+FORM_OPTION_LANGUAGE_GD=Scozzese gaelico
+FORM_OPTION_LANGUAGE_GL=Galiziano
+FORM_OPTION_LANGUAGE_GN=Guarani
+FORM_OPTION_LANGUAGE_GU=Gujarati
+FORM_OPTION_LANGUAGE_HA=Hausa
+FORM_OPTION_LANGUAGE_HI=Hindi
+FORM_OPTION_LANGUAGE_HR=Croato
+FORM_OPTION_LANGUAGE_HU=Ungherese
+FORM_OPTION_LANGUAGE_HY=Armeno
+FORM_OPTION_LANGUAGE_IA=Interlingua
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiak
+FORM_OPTION_LANGUAGE_IN=Indonesiano
+FORM_OPTION_LANGUAGE_IS=Islandese
+FORM_OPTION_LANGUAGE_IT=Italiano
+FORM_OPTION_LANGUAGE_IW=Ebreo
+FORM_OPTION_LANGUAGE_JA=Giapponese
+FORM_OPTION_LANGUAGE_JI=Yiddish
+FORM_OPTION_LANGUAGE_JW=Giavanese
+FORM_OPTION_LANGUAGE_KA=Georgiano
+FORM_OPTION_LANGUAGE_KK=Kazako
+FORM_OPTION_LANGUAGE_KL=Groenlandese
+FORM_OPTION_LANGUAGE_KM=Cambogiano
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=Coreano
+FORM_OPTION_LANGUAGE_KS=Kashmiri
+FORM_OPTION_LANGUAGE_KU=Curdo
+FORM_OPTION_LANGUAGE_KY=Kirghiz
+FORM_OPTION_LANGUAGE_LA=Latino
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=Laotiano
+FORM_OPTION_LANGUAGE_LT=Lituano
+FORM_OPTION_LANGUAGE_LV=Lettone
+FORM_OPTION_LANGUAGE_MG=Malagasy
+FORM_OPTION_LANGUAGE_MI=Maori
+FORM_OPTION_LANGUAGE_MK=Macedone
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=Mongolo
+FORM_OPTION_LANGUAGE_MO=Moldavo
+FORM_OPTION_LANGUAGE_MR=Marathi
+FORM_OPTION_LANGUAGE_MS=Malese
+FORM_OPTION_LANGUAGE_MT=Maltese
+FORM_OPTION_LANGUAGE_MY=Burmese
+FORM_OPTION_LANGUAGE_NA=Nauru
+FORM_OPTION_LANGUAGE_NE=Nepali
+FORM_OPTION_LANGUAGE_NL=Olandese
+FORM_OPTION_LANGUAGE_NO=Norvegese
+FORM_OPTION_LANGUAGE_OC=Occitano
+FORM_OPTION_LANGUAGE_OM=(Afan) Oromo
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=Punjabi
+FORM_OPTION_LANGUAGE_PL=Polacco
+FORM_OPTION_LANGUAGE_PS=Pashto, Pushto
+FORM_OPTION_LANGUAGE_PT=Portoghese
+FORM_OPTION_LANGUAGE_QU=Quechua
+FORM_OPTION_LANGUAGE_RM=Rhaeto-Romance
+FORM_OPTION_LANGUAGE_RN=Kirundi
+FORM_OPTION_LANGUAGE_RO=Rumeno
+FORM_OPTION_LANGUAGE_RU=Russo
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=Sanscrito
+FORM_OPTION_LANGUAGE_SD=Sindhi
+FORM_OPTION_LANGUAGE_SG=Sangro
+FORM_OPTION_LANGUAGE_SH=Serbo-Croato
+FORM_OPTION_LANGUAGE_SI=Singalese
+FORM_OPTION_LANGUAGE_SK=Slovacco
+FORM_OPTION_LANGUAGE_SL=Sloveno
+FORM_OPTION_LANGUAGE_SM=Samoano
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=Somalo
+FORM_OPTION_LANGUAGE_SQ=Albanese
+FORM_OPTION_LANGUAGE_SR=Serbo
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Sundanese
+FORM_OPTION_LANGUAGE_SV=Svedese
+FORM_OPTION_LANGUAGE_SW=Swahili
+FORM_OPTION_LANGUAGE_TA=Tamil
+FORM_OPTION_LANGUAGE_TE=Tegulu
+FORM_OPTION_LANGUAGE_TG=Tajik
+FORM_OPTION_LANGUAGE_TH=Thai
+FORM_OPTION_LANGUAGE_TI=Tigrinya
+FORM_OPTION_LANGUAGE_TK=Turkmeno
+FORM_OPTION_LANGUAGE_TL=Tagalog
+FORM_OPTION_LANGUAGE_TN=Setswana
+FORM_OPTION_LANGUAGE_TO=Tonga
+FORM_OPTION_LANGUAGE_TR=Turco
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=Tatar
+FORM_OPTION_LANGUAGE_TW=Twi
+FORM_OPTION_LANGUAGE_UK=Ucraino
+FORM_OPTION_LANGUAGE_UR=Urdu
+FORM_OPTION_LANGUAGE_UZ=Uzbek
+FORM_OPTION_LANGUAGE_VI=Vietnamita
+FORM_OPTION_LANGUAGE_VO=Volapuk
+FORM_OPTION_LANGUAGE_WO=Wolof
+FORM_OPTION_LANGUAGE_XH=Xhosa
+FORM_OPTION_LANGUAGE_YO=Yoruba
+FORM_OPTION_LANGUAGE_ZH=Cinese
+FORM_OPTION_LANGUAGE_ZU=Zulu
+FORM_LABEL_EXACT_NAME_MATCH=Corrispondenza esatta
+FORM_LABEL_CASE_SENSITIVE_MATCH=Sensibile al maiuscolo/minuscolo
+FORM_LABEL_SOUNDEX=Suona come
+FORM_LABEL_IDENTIFIERS=Identificativi
+FORM_LABEL_IDENTIFIER_TYPE=Tipo
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Registro Thomas
+
+FORM_LABEL_KEY_NAME=Nome chiave
+FORM_LABEL_KEY_VALUE=Valore chiave
+FORM_LABEL_CATEGORIES=Categorie
+FORM_LABEL_CATEGORY_TYPE=Tipo
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=Comunit\u00e0 dW
+FORM_LABEL_BUSINESS_CATEGORIES=Confronta con:
+FORM_OPTION_BUSINESSES_ONLY=Solo business
+FORM_OPTION_SERVICES_ONLY=Solo servizi
+FORM_OPTION_BOTH=Business e servizi
+FORM_LABEL_DISCOVERYURLS=URL di rilevamento
+FORM_LABEL_DISCOVERYURL=URL di rilevamento
+FORM_LABEL_FINDQUALIFIERS=Trova qualificatori
+FORM_LABEL_COMBINE_KEYS=Unisci chiavi:
+FORM_OPTION_ANDALLKEYS=And
+FORM_OPTION_ORALLKEYS=Or
+FORM_OPTION_ORLIKEKEYS=Or Like
+FORM_LABEL_SORT_BY_NAME=Ordina per nome:
+FORM_RADIO_SORT_ASC=Ascendente
+FORM_RADIO_SORT_DESC=Discendente
+FORM_LABEL_SORT_BY_DATE=Ordina per data:
+FORM_LABEL_MAX_SEARCH_SET=Dimensione massima dell'insieme di ricerca:
+FORM_LABEL_MAX_RESULTS=Numero massimo di risultati:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Immettere il nome parziale o completo di un service da ricercare. Il simbolo '%' pu\u00f2 essere utilizzato come un carattere jolly che corrisponde a qualsiasi carattere. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Immettere l'UUID del servizio da ricercare. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Immettere il nome parziale o completo di un'interfaccia di servizio da ricercare. Il simbolo '%' pu\u00f2 essere utilizzato come un carattere jolly che corrisponde a qualsiasi carattere. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Immettere l'UUID dell'interfaccia di servizio da ricercare. Premere <strong>Vai</strong> per eseguire la ricerca.
+FORM_LABEL_SERVICE_INTERFACES=Interfacce di servizio
+FORM_LABEL_UUID_KEY=Chiave UUID:
+FORM_LABEL_USE_SERVICE=Utilizza servizio
+FORM_LABEL_SERVICE=Servizio
+FORM_LABEL_BUSINESS=Business
+FORM_LABEL_PUBLISH_ASSERTIONS=Relazioni commerciali
+FORM_LABEL_DIRECTION=Direzione
+FORM_LABEL_FROM_KEY=Da chiave
+FORM_LABEL_TO_KEY=A chiave
+FORM_LABEL_STATUS=Stato
+FORM_LABEL_ASSERTION_TYPE=Tipo di relazione
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Principale-Secondario
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Peer-Peer
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identit\u00e0
+FORM_LABEL_ASSERTION_DIRETION_DESC=La direzione <strong>Da</strong> crea una relazione commerciale da questo business ai business superiori. La direzione <strong>A</strong> crea una relazione commerciale dai business superiori a questo business.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=Questo
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Immettere un nome valido per la query.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Immettere una serie di nomi validi.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Immettere un URL di pubblicazione valido.
+MSG_ERROR_INVALID_USERID=IWAB0143E Immettere un ID utente valido.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Immettere una dimensione valida per l'insieme di ricerca massimo.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Immettere una dimensione valida per il numero massimo di risultati.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I Numero di business rilevati: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E Nessun business rilevato.
+MSG_INFO_SERVICES_FOUND=IWAB0149I Numero di servizi rilevati: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E Nessun servizio rilevato.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E Selezionare solo un elemento.
+MSG_QUESTION_ITEM_REPLACEMENT=la selezione sostituir\u00e0 un elemento gi\u00e0 presente nella destinazione. Continuare?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I Numero di interfacce di servizio rilevate: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E Nessuna interfaccia di servizio rilevata.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E Selezionare almeno un elemento.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Immettere una chiave UUID valida.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E Il nome query della query secondaria non pu\u00f2 essere uguale al nome del creatore.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Nessun elemento del tipo specificato \u00e8 stato pubblicato o rilevato.
+
+# Results
+ALT_QUERY_RESULTS=Risultati della query
+FORM_LABEL_SUBQUERY=I risultati possono essere utilizzati come input di un'altra operazione. Fare clic sul collegamento <strong>destinazione</strong> in alto per visualizzare l'operazione. I risultati selezionati possono essere utilizzati nell'operazione facendo clic sul pulsante <strong>Trasferisci</strong>.
+FORM_LABEL_QUERY=Selezionare un risultato per visualizzare ulteriori dettagli o selezionare un insieme di risultati e fare clic su un pulsante per eseguire un'operazione.
+FORM_LINK_TARGET=destinazione
+FORM_BUTTON_TRANSFER=Trasferisci
+FORM_BUTTON_REFRESH=Aggiorna
+FORM_BUTTON_ADD_TO_FAVORITES=Aggiungi a preferiti
+FORM_BUTTON_UNPUBLISH=Annulla pubblicazione
+FORM_BUTTON_CLEAR=Cancella
+
+# Publish actions
+ALT_PUBLISH=Pubblica
+FORM_LABEL_PUBLISH=Pubblica:
+FORM_OPTION_BUSINESS=Business
+FORM_OPTION_SERVICE=Servizio
+FORM_OPTION_SERVICE_INTERFACE=Interfaccia di servizio
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Immettere un nome e una descrizione facoltativa per il business da pubblicare. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Fornire un nome per il business da pubblicare. \u00c8 possibile specificare anche altri parametri. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Richiamare o individuare un business, quindi fornire l'URL WSDL, il nome e una descrizione facoltativa per il servizio da pubblicare. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Richiamare o individuare un business, quindi fornire l'URL WSDL e un nome per il servizio da pubblicare. \u00c8 possibile specificare anche altri parametri. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Fornire l'URL WSDL, il nome e una descrizione facoltativa per il servizio da pubblicare. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Fornire l'URL WSDL e un nome per il servizio da pubblicare. \u00c8 possibile specificare anche altri parametri. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Immettere un URL WSDL, il nome e una descrizione facoltativa per l'interfaccia di servizio da pubblicare. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Fornire l'URL WSDL e un nome per l'interfaccia di servizio da pubblicare. \u00c8 possibile specificare anche altri parametri. Potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_PUBLISH_FORM=Formato pubblicazione
+FORM_LABEL_DESCRIPTION=Descrizione
+FORM_LABEL_DESCRIPTIONS=Descrizioni
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I Il business %1 \u00e8 stato pubblicato correttamente.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I Il servizio %1 \u00e8 stato pubblicato correttamente.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I L'interfaccia di servizio %1 non \u00e8 stata pubblicata correttamente.
+MSG_ERROR_INVALID_NAME=IWAB0161E Immettere un nome valido.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E Selezionare una lingua non vuota per %1 alla riga %2. Solo nella prima riga pu\u00f2 esserci una lingua vuota.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Modificare la lingua per %1 alla riga %2. La lingua corrente \u00e8 gi\u00e0 in uso.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Immettere un %1 valido alla riga %2
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Immettere un URL WSDL valido.
+MSG_ERROR_NO_NAMES=IWAB0254E Aggiungere almeno un nome.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Fornire un servizio valido.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Fornire un business valido.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Pubblica servizio
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=Browser WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Selezionare un'origine WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Progetti Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Preferiti
+FORM_LABEL_WEB_PROJECT=Progetto Web
+FORM_LABEL_WSDL_URL=URL WSDL
+ALT_WSDL_BROWSER=Browser WSDL
+
+# Details
+FORM_LINK_EDIT=Modifica
+FORM_LINK_CANCEL=Annulla
+FORM_LABEL_BUSINESS_KEY=Chiave business
+FORM_LABEL_SERVICE_KEY=Chiave servizio
+FORM_LABEL_SERVICE_INTERFACE_KEY=Chiave TModel
+FORM_LABEL_USER_DEFINED_CATEGORIES=Categorie definite dall'utente
+FORM_LABEL_CHECKED=Selezionato
+FORM_LABEL_FILE=File
+MSG_QUESTION_PUBLISH_ITEM=\u00c8 possibile che l'elemento non sia stato trovato nel registro. Pubblicarlo?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=\u00c8 possibile che il servizio o il relativo business non sia stato trovato nel registro. Pubblicarlo?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I Il business %1 \u00e8 stato aggiornato correttamente.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I Il servizio %1 \u00e8 stato aggiornato correttamente.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I L'interfaccia di servizio %1 \u00e8 stata aggiornata correttamente.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I Il registro %1 \u00e8 stato aggiornato correttamente.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Annulla pubblicazione business
+ALT_UNPUBLISH_SERVICE=Annulla pubblicazione servizio
+ALT_UNPUBLISH_SERVICE_INTERFACE=Annulla pubblicazione interfaccia di servizio
+FORM_LABEL_UNPUBLISH_DESC=Premere <strong>Vai</strong> per annullare la pubblicazione di questo oggetto. Potrebbe essere richiesta l'autenticazione.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I La pubblicazione del business %1 \u00e8 stata annullata correttamente.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I La pubblicazione del servizio %1 \u00e8 stata annullata correttamente.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I La pubblicazione dell'interfaccia di servizio %1 \u00e8 stata annullata correttamente.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=Aggiungi alla pagina WSDL
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 \u00e8 stato aggiunto correttamente alla pagina WSDL.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 non \u00e8 stato aggiunto alla pagina WSDL.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=Aggiungi alla pagina Preferiti
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 \u00e8 stato aggiunto ai preferiti.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 non \u00e8 stato aggiunto ai preferiti.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 esiste gi\u00e0 nei preferiti.
+MSG_QUESTION_OVERWRITE_FAVORITES=I preferiti esistono gi\u00e0. Sovrascriverli?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 aggiornato.
+MSG_QUESTION_REMOVE_NODE=\u00c8 possibile che %1 non sia stato trovato nel registro. Cancellarlo?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=Gestisci servizi di riferimento
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=Aggiungere i servizi rilevati o pubblicati all'elenco dei servizi di riferimento facendo clic sul pulsante <strong>Aggiungi servizi</strong>. Rimuovere i riferimenti selezionati facendo clic sul pulsante <strong>Rimuovi riferimenti</strong>. Per le modifiche, potrebbe essere richiesta l'autenticazione.
+FORM_LABEL_REFERENCED_SERVICES=Servizi di riferimento
+FORM_BUTTON_ADD_SERVICES=Aggiungi servizi
+FORM_BUTTON_REMOVE_REFERENCES=Rimuovi riferimenti
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Prima di procedere, selezionare almeno un servizio di riferimento.
+MSG_ERROR_NO_SERVICES=IWAB0267E Prima di continuare, richiamare o individuare almeno un servizio.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E Non \u00e8 stato possibile utilizzare il servizio %1 come riferimento.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E Non \u00e8 stato possibile rimuovere il riferimento del servizio %1.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I \u00c8 stato effettuato un riferimento corretto al servizio %1.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I Il riferimento al servizio %1 \u00e8 stato rimosso correttamente.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=Gestisci relazioni commerciali
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=Aggiungere i business rilevati o pubblicati all'elenco delle relazioni commerciali facendo clic su <strong>Aggiungi relazioni</strong>. Rimuovere le relazioni selezionate facendo clic sul pulsante <strong>Rimuovi relazioni</strong>. Completare le relazioni selezionate facendo clic su <strong>Completa relazioni</strong>. Fare clic su <strong>Aggiorna relazioni</strong> per aggiornare l'elenco di relazioni.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Relazioni commerciali incomplete sono visibili solo al proprietario del business.
+FORM_LABEL_BUSINESSES=Business
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Aggiorna relazioni
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Completa relazioni
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=Aggiungi relazioni
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Rimuovi relazioni
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Le relazioni commerciali vengono aggiornate.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E Selezionare almeno una relazione commerciale completa.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Questa operazione non pu\u00f2 essere eseguita su un business di propriet\u00e0 di un altro fornitore.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Richiama business
+ALT_GET_BUSINESSES=Richiama business
+NODE_NAME_SERVICE_BUSINESS=Business per il servizio %1
+NODE_NAME_SI_BUSINESSES=Business per l'interfaccia di servizio %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=\u00c8 possibile che il servizio non sia stato trovato nel registro. Rimuovere questo nodo?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Richiama interfacce di servizio
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Interfacce di servizio per il servizio %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=\u00c8 possibile che il servizio non sia stato trovato nel registro. Rimuovere questo nodo?
+
+# GetServices
+ALT_GET_SERVICES=Richiama servizi
+NODE_NAME_SI_SERVICES=Servizi per l'interfaccia di servizio %1
+NODE_NAME_BUSINESS_SERVICES=Servizi per il business %1
+MSG_QUESTION_REMOVE_SI_NODE=\u00c8 possibile che l'interfaccia di servizio non sia stata trovata nel registro. Rimuovere questo nodo?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=\u00c8 possibile che il business non sia stato trovato nel registro. Rimuovere questo nodo?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E \u00c8 possibile che %1 non sia stato trovato nel registro.
+
+# Summaries
+ALT_SUMMARY_QUERIES=Riepilogo delle query
+ALT_SUMMARY_BUSINESSES=Riepilogo dei business
+ALT_SUMMARY_SERVICES=Riepilogo dei servizi
+ALT_SUMMARY_SERVICE_INTERFACES=Riepilogo delle interfacce di servizio
+FORM_LABEL_QUERIES=Query
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=\u00c8 possibile che %1 non sia stato trovato nel registro. Rimuoverlo?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenitore Selezione
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra degli strumenti Selezione
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenuto Selezione
+FRAME_TITLE_ACTIONS_CONTAINER=Contenitore azioni
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenitore propriet\u00e0
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra degli strumenti propriet\u00e0
+FRAME_TITLE_PROPERTIES_CONTENT=Contenuto propriet\u00e0
+FRAME_TITLE_STATUS_CONTAINER=Contenitore stato
+FRAME_TITLE_STATUS_TOOLBAR=Barra degli strumenti stato
+FRAME_TITLE_STATUS_CONTENT=Contenuto stato
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=Contenuto pagina UDDI
+FRAME_TITLE_CATEGORIES_WORKAREA=Area di lavoro categorie
+FRAME_TITLE_CATEGORIES_TOOLBAR=Barra degli strumenti categorie
+FRAME_TITLE_CATEGORIES_CONTENT=Contenuto categorie
+FRAME_TITLE_WSDL_TOOLBAR=Barra degli strumenti del browser WSDL
+FRAME_TITLE_WSDL_CONTENT=Contenuto del browser WSDL
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Modulo dettagli business
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Modulo servizio di pubblicazione business
+FORM_TITLE_GET_FORM=Selezionare dal modulo degli oggetti rilevati e pubblicati
+FORM_TITLE_ITEMS_SUMMARY=Riepilogo del modulo degli elementi
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Gestisci modulo relazioni commerciali
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Gestisci modulo servizi di riferimento
+FORM_TITLE_OPEN_REGISTRY=Apri modulo di registro
+FORM_TITLE_REGISTRY_DETAILS=Modulo dettagli registro
+FORM_TITLE_REGISTRY_PUBLISH=Modulo pubblicazione registro
+FORM_TITLE_REGISTRY_FIND=Modulo di ricerca registro
+FORM_TITLE_RESULTS=Modulo risultati
+FORM_TITLE_SERVICE_DETAILS=Modulo dettagli servizio
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Modulo dettagli interfaccia di servizio
+FORM_TITLE_UNPUBLISH=Annulla pubblicazione modulo
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ja.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ja.properties
new file mode 100644
index 000000000..ae5702353
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ja.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI \u30e1\u30a4\u30f3
+NODE_NAME_QUERIES_FOLDER=\u5b9f\u884c\u6e08\u307f\u7167\u4f1a
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=\u516c\u958b\u6e08\u307f\u30d3\u30b8\u30cd\u30b9
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=\u516c\u958b\u6e08\u307f\u30b5\u30fc\u30d3\u30b9
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=\u516c\u958b\u6e08\u307f\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3092\u958b\u304f
+FORM_LABEL_OPEN_REGISTRY_DESC=\u958b\u304f\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u306e\u540d\u524d\u304a\u3088\u3073\u7167\u4f1a URL \u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u304a\u6c17\u306b\u5165\u308a\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u5fc5\u8981\u306a\u60c5\u5831\u304c\u81ea\u52d5\u7684\u306b\u5165\u529b\u3055\u308c\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3092\u958b\u304d\u307e\u3059\u3002
+FORM_LABEL_FAVORITE_REGISTRY=\u304a\u6c17\u306b\u5165\u308a\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc
+FORM_LABEL_REGISTRY_NAME=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u540d
+FORM_LABEL_INQUIRY_URL=\u7167\u4f1a URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u30c1\u30a7\u30c3\u30af
+DEFAULT_REGISTRY_NAME=IBM UDDI \u30c6\u30b9\u30c8\u30fb\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E \u6709\u52b9\u306a\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E \u6709\u52b9\u306a\u7167\u4f1a URL \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_INFO_REGISTRY_OPENED=IWAB0139I %2 \u306b\u3042\u308b %1 \u3068\u3044\u3046\u540d\u524d\u306e\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u304c\u6b63\u5e38\u306b\u958b\u304d\u307e\u3057\u305f\u3002
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=WebSphere \u306f UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u3059\u304b?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 UDDI \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc
+FORM_LABEL_REGISTRY_HOST=\u30db\u30b9\u30c8
+FORM_LABEL_REGISTRY_PORT=\u30dd\u30fc\u30c8:
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">\u3053\u3053\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066</a>\u3053\u306e\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002
+FORM_CONTROL_TITLE_CATEGORY_FILE=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb\u540d
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc\u304c\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I %1 \u306e\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30c7\u30fc\u30bf\u304c\u4f7f\u7528\u53ef\u80fd\u3067\u306a\u3044\u304b\u3001\u307e\u305f\u306f\u7121\u52b9\u3067\u3059\u3002
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc %1 \u306e\u30c7\u30fc\u30bf\u304c\u6b63\u5e38\u306b\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc %1 \u306e\u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u3067\u3059\u3002 \u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30ad\u30fc '%2' \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u304c\u3001'%3' \u304c\u4e88\u60f3\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E \u884c\u306b\u4e0d\u660e\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059: \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc %2 \u306e\u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb\u306e %1\u3002 \u884c: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E \u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc %1 \u306e\u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u3067\u3059\u3002
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E \u30ab\u30c6\u30b4\u30ea\u30fc %1 \u306e\u30c7\u30fc\u30bf\u3092\u4fdd\u7ba1\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u4f8b\u5916\u30c6\u30ad\u30b9\u30c8: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30d6\u30e9\u30a6\u30b6\u30fc
+ALT_CATEGORIES=\u30ab\u30c6\u30b4\u30ea\u30fc
+
+# Details
+ALT_REGISTRY_DETAILS=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u8a73\u7d30
+ALT_BUSINESS_DETAILS=\u30d3\u30b8\u30cd\u30b9\u8a73\u7d30
+ALT_SERVICE_DETAILS=\u30b5\u30fc\u30d3\u30b9\u8a73\u7d30
+ALT_SERVICE_INTERFACE_DETAILS=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u8a73\u7d30
+FORM_LABEL_DETAILS_EDITABLE=<strong>%1</strong> \u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002 \u4e00\u90e8\u306e\u9805\u76ee\u3092\u8ffd\u52a0\u3001\u9664\u53bb\u3001\u307e\u305f\u306f\u5909\u66f4\u3067\u304d\u307e\u3059\u3002 \u5909\u66f4\u306b\u306f\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u3001\u3053\u306e\u30da\u30fc\u30b8\u306e\u4e0b\u306b\u30ea\u30b9\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+
+# Get
+ALT_GET=\u53d6\u5f97
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=\u540d\u524d\u5024
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=\u8a18\u8ff0\u5024
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30ad\u30fc\u540d
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30ad\u30fc\u5024
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=ID \u30ad\u30fc\u540d
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=ID \u30ad\u30fc\u5024
+FORM_CONTROL_TITLE_DISCOVERY_URL=\u30c7\u30a3\u30b9\u30ab\u30d0\u30ea\u30fc URL
+
+# Find actions
+ALT_FIND=\u691c\u7d22
+ALT_SUBQUERY=%1 \u526f\u7167\u4f1a\u306e\u691c\u7d22
+FORM_LABEL_QUERY_NAME=\u3053\u306e\u7167\u4f1a\u306e\u540d\u524d
+DEFAULT_QUERY_NAME=\u7167\u4f1a\u7d50\u679c
+DEFAULT_SUBQUERY_NAME=%1 - %2 \u526f\u7167\u4f1a
+FORM_LABEL_SEARCH_FOR=\u691c\u7d22
+FORM_OPTION_BUSINESSES=\u30d3\u30b8\u30cd\u30b9
+FORM_OPTION_SERVICES=\u30b5\u30fc\u30d3\u30b9
+FORM_OPTION_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+FORM_LABEL_SEARCH_TYPE=\u691c\u7d22\u306e\u30bf\u30a4\u30d7
+FORM_RADIO_SIMPLE=\u30b7\u30f3\u30d7\u30eb
+FORM_RADIO_ADVANCED=\u62e1\u5f35
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=\u691c\u7d22\u3059\u308b\u30d3\u30b8\u30cd\u30b9\u306e\u540d\u524d\u306e\u4e00\u90e8\u307e\u305f\u306f\u5168\u90e8\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u4efb\u610f\u306e\u6587\u5b57\u3068\u4e00\u81f4\u3059\u308b\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066 '%' \u8a18\u53f7\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_FIND_ADVANCED_DESC=\u4ee5\u4e0b\u306b\u30ea\u30b9\u30c8\u3055\u308c\u305f\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u5024\u3092 1 \u3064\u4ee5\u4e0a\u5165\u529b\u3057\u307e\u3059\u3002 \u540d\u524d\u30c6\u30fc\u30d6\u30eb\u306e\u540d\u524d\u30d5\u30a3\u30fc\u30eb\u30c9\u5185\u306b\u3042\u308b\u4efb\u610f\u306e\u6587\u5b57\u3068\u4e00\u81f4\u3059\u308b\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066 '%' \u8a18\u53f7\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=\u691c\u7d22\u3059\u308b\u30d3\u30b8\u30cd\u30b9\u306e UUID \u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_NAMES=\u540d\u524d
+FORM_LINK_ADD=\u8ffd\u52a0
+FORM_LINK_GET=\u53d6\u5f97
+FORM_LINK_FIND=\u691c\u7d22
+FORM_LINK_REMOVE=\u9664\u53bb
+FORM_LABEL_OWNED=\u6240\u6709
+FORM_LABEL_PUBLISH_URL=\u516c\u958b URL
+FORM_LABEL_USERID=\u30e6\u30fc\u30b6\u30fc ID
+FORM_LABEL_PASSWORD=\u30d1\u30b9\u30ef\u30fc\u30c9
+FORM_LABEL_LANGUAGE=\u8a00\u8a9e
+FORM_LABEL_NAME=\u540d\u524d
+FORM_LABEL_DESCRIPTION=\u8aac\u660e
+FORM_OPTION_LANGUAGE_EN=\u82f1\u8a9e
+FORM_OPTION_LANGUAGE_AA=\u30a2\u30d5\u30a1\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_AB=\u30a2\u30d6\u30cf\u30ba\u8a9e
+FORM_OPTION_LANGUAGE_AF=\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e
+FORM_OPTION_LANGUAGE_AM=\u30a2\u30e0\u30cf\u30e9\u8a9e
+FORM_OPTION_LANGUAGE_AR=\u30a2\u30e9\u30d3\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_AS=\u30a2\u30c3\u30b5\u30e0\u8a9e
+FORM_OPTION_LANGUAGE_AY=\u30a2\u30a4\u30de\u30e9\u8a9e
+FORM_OPTION_LANGUAGE_AZ=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_BA=\u30d0\u30b7\u30ad\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_BE=\u30d9\u30ed\u30eb\u30b7\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_BG=\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_BH=\u30d3\u30cf\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_BI=\u30d3\u30b9\u30e9\u30de\u8a9e
+FORM_OPTION_LANGUAGE_BN=\u30d9\u30f3\u30ac\u30eb\u8a9e\u3001\u30d0\u30f3\u30b0\u30e9\u8a9e
+FORM_OPTION_LANGUAGE_BO=\u30c1\u30d9\u30c3\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_BR=\u30d6\u30eb\u30c8\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_CA=\u30ab\u30bf\u30ed\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_CO=\u30b3\u30eb\u30b7\u30ab\u8a9e
+FORM_OPTION_LANGUAGE_CZ=\u30c1\u30a7\u30b3\u8a9e
+FORM_OPTION_LANGUAGE_CY=\u30a6\u30a7\u30fc\u30eb\u30ba\u8a9e
+FORM_OPTION_LANGUAGE_DA=\u30c7\u30f3\u30de\u30fc\u30af\u8a9e
+FORM_OPTION_LANGUAGE_DE=\u30c9\u30a4\u30c4\u8a9e
+FORM_OPTION_LANGUAGE_DZ=\u30d6\u30fc\u30bf\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_EL=\u30ae\u30ea\u30b7\u30e3\u8a9e
+FORM_OPTION_LANGUAGE_EO=\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_ES=\u30b9\u30da\u30a4\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_ET=\u30a8\u30b9\u30c8\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_EU=\u30d0\u30b9\u30af\u8a9e
+FORM_OPTION_LANGUAGE_FA=\u30da\u30eb\u30b7\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_FI=\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_FJ=\u30d5\u30a3\u30b8\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_FO=\u30d5\u30a7\u30ed\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_FR=\u30d5\u30e9\u30f3\u30b9\u8a9e
+FORM_OPTION_LANGUAGE_FY=\u30d5\u30ea\u30fc\u30b9\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_GA=\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_GD=\u30b9\u30b3\u30c3\u30c1\u30fb\u30b2\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_GL=\u30ac\u30ea\u30b7\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_GN=\u30b0\u30ef\u30e9\u30cb\u8a9e
+FORM_OPTION_LANGUAGE_GU=\u30b0\u30b8\u30e3\u30e9\u30fc\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_HA=\u30cf\u30a6\u30b5\u8a9e
+FORM_OPTION_LANGUAGE_HI=\u30d2\u30f3\u30c7\u30a3\u8a9e
+FORM_OPTION_LANGUAGE_HR=\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_HU=\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_HY=\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_IA=\u30a4\u30f3\u30c6\u30eb\u30ea\u30f3\u30b0\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_IE=\u30a4\u30f3\u30c6\u30eb\u30ea\u30f3\u30b0\u8a9e
+FORM_OPTION_LANGUAGE_IK=\u30a4\u30cc\u30d4\u30a2\u30c3\u30af\u8a9e
+FORM_OPTION_LANGUAGE_IN=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_IS=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_IT=\u30a4\u30bf\u30ea\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_IW=\u30d8\u30d6\u30e9\u30a4\u8a9e
+FORM_OPTION_LANGUAGE_JA=\u65e5\u672c\u8a9e
+FORM_OPTION_LANGUAGE_JI=\u30a4\u30c7\u30a3\u30c3\u30b7\u30e5\u8a9e
+FORM_OPTION_LANGUAGE_JW=\u30b8\u30e3\u30ef\u8a9e
+FORM_OPTION_LANGUAGE_KA=\u30b0\u30eb\u30b8\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_KK=\u30ab\u30b6\u30d5\u8a9e
+FORM_OPTION_LANGUAGE_KL=\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_KM=\u30ab\u30f3\u30dc\u30b8\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_KN=\u30ab\u30f3\u30ca\u30c0\u8a9e
+FORM_OPTION_LANGUAGE_KO=\u97d3\u56fd\u8a9e
+FORM_OPTION_LANGUAGE_KS=\u30ab\u30b7\u30df\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_KU=\u30af\u30eb\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_KY=\u30ad\u30eb\u30ae\u30b9\u8a9e
+FORM_OPTION_LANGUAGE_LA=\u30e9\u30c6\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_LN=\u30ea\u30f3\u30ac\u30e9\u8a9e
+FORM_OPTION_LANGUAGE_LO=\u30e9\u30aa\u8a9e
+FORM_OPTION_LANGUAGE_LT=\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_LV=\u30e9\u30c8\u30d3\u30a2\u8a9e\u3001\u30ec\u30c3\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_MG=\u30de\u30e9\u30ac\u30b7\u8a9e
+FORM_OPTION_LANGUAGE_MI=\u30de\u30aa\u30ea\u8a9e
+FORM_OPTION_LANGUAGE_MK=\u30de\u30b1\u30c9\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_ML=\u30de\u30e9\u30e4\u30fc\u30e9\u30e0\u8a9e
+FORM_OPTION_LANGUAGE_MN=\u30e2\u30f3\u30b4\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_MO=\u30e2\u30eb\u30c0\u30d3\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_MR=\u30de\u30e9\u30fc\u30c6\u30a3\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_MS=\u30de\u30ec\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_MT=\u30de\u30eb\u30bf\u8a9e
+FORM_OPTION_LANGUAGE_MY=\u30d3\u30eb\u30de\u8a9e
+FORM_OPTION_LANGUAGE_NA=\u30ca\u30a6\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_NE=\u30cd\u30d1\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_NL=\u30aa\u30e9\u30f3\u30c0\u8a9e
+FORM_OPTION_LANGUAGE_NO=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_OC=\u30aa\u30ad\u30b7\u30bf\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_OM=\u30aa\u30ed\u30e2\u8a9e (Afan)
+FORM_OPTION_LANGUAGE_OR=\u30aa\u30ea\u30e4\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_PA=\u30d1\u30f3\u30b8\u30e3\u30d6\u8a9e
+FORM_OPTION_LANGUAGE_PL=\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e
+FORM_OPTION_LANGUAGE_PS=\u30d1\u30b7\u30e5\u30c8\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_PT=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_QU=\u30b1\u30c1\u30e5\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_RM=\u30ec\u30c8\u30fb\u30ed\u30de\u30fc\u30cb\u30c3\u30b7\u30e5\u8a9e
+FORM_OPTION_LANGUAGE_RN=\u30ad\u30eb\u30f3\u30c7\u30a3\u8a9e
+FORM_OPTION_LANGUAGE_RO=\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_RU=\u30ed\u30b7\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_RW=\u30ad\u30cb\u30e4\u30eb\u30ef\u30f3\u30c0\u8a9e
+FORM_OPTION_LANGUAGE_SA=\u30b5\u30f3\u30b9\u30af\u30ea\u30c3\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_SD=\u30b7\u30f3\u30c7\u30a3\u8a9e
+FORM_OPTION_LANGUAGE_SG=\u30b5\u30f3\u30b0\u30ed\u8a9e
+FORM_OPTION_LANGUAGE_SH=\u30bb\u30eb\u30dc\u30fb\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SI=\u30b7\u30f3\u30cf\u30e9\u8a9e
+FORM_OPTION_LANGUAGE_SK=\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SL=\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SM=\u30b5\u30e2\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SN=\u30b7\u30e7\u30ca\u8a9e
+FORM_OPTION_LANGUAGE_SO=\u30bd\u30de\u30ea\u8a9e
+FORM_OPTION_LANGUAGE_SQ=\u30a2\u30eb\u30d0\u30cb\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SR=\u30bb\u30eb\u30d3\u30a2\u8a9e
+FORM_OPTION_LANGUAGE_SS=\u30b7\u30b9\u30ef\u30c6\u30a3\u8a9e
+FORM_OPTION_LANGUAGE_ST=\u30bb\u30bd\u30c8\u8a9e
+FORM_OPTION_LANGUAGE_SU=\u30b9\u30f3\u30c0\u8a9e
+FORM_OPTION_LANGUAGE_SV=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_SW=\u30b9\u30ef\u30d2\u30ea\u8a9e
+FORM_OPTION_LANGUAGE_TA=\u30bf\u30df\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_TE=\u30c6\u30b0\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_TG=\u30bf\u30b8\u30af\u8a9e
+FORM_OPTION_LANGUAGE_TH=\u30bf\u30a4\u8a9e
+FORM_OPTION_LANGUAGE_TI=\u30c6\u30a3\u30b0\u30ea\u30cb\u30e3\u8a9e
+FORM_OPTION_LANGUAGE_TK=\u30c8\u30eb\u30af\u30e1\u30f3\u8a9e
+FORM_OPTION_LANGUAGE_TL=\u30bf\u30ac\u30ed\u30b0\u8a9e
+FORM_OPTION_LANGUAGE_TN=\u30bb\u30c4\u30ef\u30ca\u8a9e
+FORM_OPTION_LANGUAGE_TO=\u30c8\u30f3\u30ac\u8a9e
+FORM_OPTION_LANGUAGE_TR=\u30c8\u30eb\u30b3\u8a9e
+FORM_OPTION_LANGUAGE_TS=\u30c4\u30a9\u30f3\u30ac\u8a9e
+FORM_OPTION_LANGUAGE_TT=\u30bf\u30bf\u30fc\u30eb\u8a9e
+FORM_OPTION_LANGUAGE_TW=\u30c8\u30a5\u30a4\u8a9e
+FORM_OPTION_LANGUAGE_UK=\u30a6\u30af\u30e9\u30a4\u30ca\u8a9e
+FORM_OPTION_LANGUAGE_UR=\u30a6\u30eb\u30c9\u30a5\u30fc\u8a9e
+FORM_OPTION_LANGUAGE_UZ=\u30a6\u30ba\u30d9\u30af\u8a9e
+FORM_OPTION_LANGUAGE_VI=\u30d9\u30c8\u30ca\u30e0\u8a9e
+FORM_OPTION_LANGUAGE_VO=\u30dc\u30e9\u30d4\u30e5\u30fc\u30af\u8a9e
+FORM_OPTION_LANGUAGE_WO=\u30a6\u30a9\u30ed\u30d5\u8a9e
+FORM_OPTION_LANGUAGE_XH=\u30b3\u30fc\u30b5\u8a9e
+FORM_OPTION_LANGUAGE_YO=\u30e8\u30eb\u30d0\u8a9e
+FORM_OPTION_LANGUAGE_ZH=\u4e2d\u56fd\u8a9e
+FORM_OPTION_LANGUAGE_ZU=\u30ba\u30fc\u30eb\u30fc\u8a9e
+FORM_LABEL_EXACT_NAME_MATCH=\u5b8c\u5168\u4e00\u81f4
+FORM_LABEL_CASE_SENSITIVE_MATCH=\u5927/\u5c0f\u6587\u5b57\u306e\u533a\u5225
+FORM_LABEL_SOUNDEX=\u985e\u4f3c
+FORM_LABEL_IDENTIFIERS=ID
+FORM_LABEL_IDENTIFIER_TYPE=\u30bf\u30a4\u30d7
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry
+
+FORM_LABEL_KEY_NAME=\u30ad\u30fc\u540d
+FORM_LABEL_KEY_VALUE=\u30ad\u30fc\u5024
+FORM_LABEL_CATEGORIES=\u30ab\u30c6\u30b4\u30ea\u30fc
+FORM_LABEL_CATEGORY_TYPE=\u30bf\u30a4\u30d7
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30fc
+FORM_LABEL_BUSINESS_CATEGORIES=\u6b21\u3068\u6bd4\u8f03:
+FORM_OPTION_BUSINESSES_ONLY=\u30d3\u30b8\u30cd\u30b9\u306e\u307f
+FORM_OPTION_SERVICES_ONLY=\u30b5\u30fc\u30d3\u30b9\u306e\u307f
+FORM_OPTION_BOTH=\u30d3\u30b8\u30cd\u30b9\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_DISCOVERYURLS=\u30c7\u30a3\u30b9\u30ab\u30d0\u30ea\u30fc URL
+FORM_LABEL_DISCOVERYURL=\u30c7\u30a3\u30b9\u30ab\u30d0\u30ea\u30fc URL
+FORM_LABEL_FINDQUALIFIERS=\u4fee\u98fe\u5b50\u306e\u691c\u7d22
+FORM_LABEL_COMBINE_KEYS=\u7d50\u5408\u30ad\u30fc:
+FORM_OPTION_ANDALLKEYS=AND
+FORM_OPTION_ORALLKEYS=OR
+FORM_OPTION_ORLIKEKEYS=\u307e\u305f\u306f LIKE
+FORM_LABEL_SORT_BY_NAME=\u540d\u524d\u3067\u30bd\u30fc\u30c8:
+FORM_RADIO_SORT_ASC=\u6607\u9806
+FORM_RADIO_SORT_DESC=\u964d\u9806
+FORM_LABEL_SORT_BY_DATE=\u65e5\u4ed8\u3067\u30bd\u30fc\u30c8:
+FORM_LABEL_MAX_SEARCH_SET=\u691c\u7d22\u30bb\u30c3\u30c8\u306e\u6700\u5927\u30b5\u30a4\u30ba:
+FORM_LABEL_MAX_RESULTS=\u7d50\u679c\u306e\u6700\u5927\u6570:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=\u691c\u7d22\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\u306e\u4e00\u90e8\u307e\u305f\u306f\u5168\u90e8\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u4efb\u610f\u306e\u6587\u5b57\u3068\u4e00\u81f4\u3059\u308b\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066 '%' \u8a18\u53f7\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_FIND_SERVICE_UUID_DESC=\u691c\u7d22\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e UUID \u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=\u691c\u7d22\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u540d\u524d\u306e\u4e00\u90e8\u307e\u305f\u306f\u5168\u90e8\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u4efb\u610f\u306e\u6587\u5b57\u3068\u4e00\u81f4\u3059\u308b\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066 '%' \u8a18\u53f7\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=\u691c\u7d22\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e UUID \u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LABEL_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+FORM_LABEL_UUID_KEY=UUID \u30ad\u30fc:
+FORM_LABEL_USE_SERVICE=\u30b5\u30fc\u30d3\u30b9\u306e\u4f7f\u7528
+FORM_LABEL_SERVICE=\u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_BUSINESS=\u30d3\u30b8\u30cd\u30b9
+FORM_LABEL_PUBLISH_ASSERTIONS=\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e
+FORM_LABEL_DIRECTION=\u65b9\u5411
+FORM_LABEL_FROM_KEY=\u5143\u30ad\u30fc
+FORM_LABEL_TO_KEY=\u30ad\u30fc\u3078
+FORM_LABEL_STATUS=\u72b6\u6cc1
+FORM_LABEL_ASSERTION_TYPE=\u8868\u660e\u306e\u30bf\u30a4\u30d7
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=\u89aa - \u5b50
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=\u30d4\u30a2 - \u30d4\u30a2
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=\u8b58\u5225
+FORM_LABEL_ASSERTION_DIRETION_DESC=\u65b9\u5411\u300c<strong>--></strong>\u300d\u3067\u3053\u306e\u30d3\u30b8\u30cd\u30b9\u304b\u3089\u4e0a\u8a18\u306e\u30d3\u30b8\u30cd\u30b9\u306b\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002 \u65b9\u5411\u300c<strong><--</strong>\u300d\u3067\u4e0a\u8a18\u306e\u30d3\u30b8\u30cd\u30b9\u304b\u3089\u3053\u306e\u30d3\u30b8\u30cd\u30b9\u306b\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=\u3053\u308c
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E \u7167\u4f1a\u306e\u6709\u52b9\u306a\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_NAMES=IWAB0141E \u4e00\u9023\u306e\u6709\u52b9\u306a\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E \u6709\u52b9\u306a\u516c\u958b URL \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_USERID=IWAB0143E \u6709\u52b9\u306a\u30e6\u30fc\u30b6\u30fc ID \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E \u6700\u5927\u691c\u7d22\u8a2d\u5b9a\u306e\u6709\u52b9\u306a\u30b5\u30a4\u30ba\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E \u7d50\u679c\u306e\u6700\u5927\u6570\u306e\u6709\u52b9\u30b5\u30a4\u30ba\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I \u898b\u3064\u304b\u3063\u305f\u30d3\u30b8\u30cd\u30b9\u306e\u6570: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E \u30d3\u30b8\u30cd\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_INFO_SERVICES_FOUND=IWAB0149I \u898b\u3064\u304b\u3063\u305f\u30b5\u30fc\u30d3\u30b9\u306e\u6570: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E \u30b5\u30fc\u30d3\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_SINGLE_ITEM=IWAB0151E 1 \u3064\u306e\u9805\u76ee\u3060\u3051\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_QUESTION_ITEM_REPLACEMENT=\u3053\u306e\u9078\u629e\u306b\u3088\u3063\u3066\u3001\u3059\u3067\u306b\u30bf\u30fc\u30b2\u30c3\u30c8\u5185\u306b\u3042\u308b\u9805\u76ee\u304c\u7f6e\u63db\u3055\u308c\u307e\u3059\u3002 \u7d9a\u3051\u307e\u3059\u304b?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I \u898b\u3064\u304b\u3063\u305f\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u6570: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E \u6709\u52b9\u306a UUID \u30ad\u30fc\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E \u526f\u7167\u4f1a\u306e\u7167\u4f1a\u540d\u3092\u767a\u4fe1\u5143\u3068\u540c\u4e00\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E \u6307\u5b9a\u3055\u308c\u305f\u578b\u306e\u9805\u76ee\u304c\u516c\u958b\u3082\u767a\u898b\u3082\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+
+# Results
+ALT_QUERY_RESULTS=\u7167\u4f1a\u7d50\u679c
+FORM_LABEL_SUBQUERY=\u7d50\u679c\u306f\u5225\u306e\u64cd\u4f5c\u306e\u5165\u529b\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u6700\u4e0a\u90e8\u306b\u3042\u308b\u300c<strong>\u30bf\u30fc\u30b2\u30c3\u30c8</strong>\u300d\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u64cd\u4f5c\u3092\u53c2\u7167\u3057\u307e\u3059\u3002 \u9078\u629e\u3055\u308c\u305f\u7d50\u679c\u306f\u300c<strong>\u8ee2\u9001</strong>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u64cd\u4f5c\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002
+FORM_LABEL_QUERY=\u7d50\u679c\u3092\u9078\u629e\u3057\u3066\u8a73\u7d30\u3092\u53c2\u7167\u3059\u308b\u304b\u3001\u307e\u305f\u306f\u7d50\u679c\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u64cd\u4f5c\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
+FORM_LINK_TARGET=\u30bf\u30fc\u30b2\u30c3\u30c8
+FORM_BUTTON_TRANSFER=\u8ee2\u9001
+FORM_BUTTON_REFRESH=\u66f4\u65b0
+FORM_BUTTON_ADD_TO_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+FORM_BUTTON_UNPUBLISH=\u975e\u516c\u958b
+FORM_BUTTON_CLEAR=\u30af\u30ea\u30a2
+
+# Publish actions
+ALT_PUBLISH=\u516c\u958b
+FORM_LABEL_PUBLISH=\u516c\u958b:
+FORM_OPTION_BUSINESS=\u30d3\u30b8\u30cd\u30b9
+FORM_OPTION_SERVICE=\u30b5\u30fc\u30d3\u30b9
+FORM_OPTION_SERVICE_INTERFACE=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=\u516c\u958b\u3059\u308b\u30d3\u30b8\u30cd\u30b9\u306e\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8aac\u660e\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=\u516c\u958b\u3059\u308b\u30d3\u30b8\u30cd\u30b9\u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u4ed6\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=\u30d3\u30b8\u30cd\u30b9\u3092\u53d6\u5f97\u307e\u305f\u306f\u691c\u51fa\u3057\u3001WSDL URL \u3068\u3001\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8aac\u660e\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=\u30d3\u30b8\u30cd\u30b9\u3092\u53d6\u5f97\u307e\u305f\u306f\u691c\u51fa\u3057\u3001WSDL URL \u3068\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u4ed6\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=WSDL URL \u3068\u3001\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8aac\u660e\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=WSDL URL \u3068\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u4ed6\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=WSDL URL \u3068\u3001\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u540d\u524d\u304a\u3088\u3073\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8aac\u660e\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=WSDL URL \u3068\u516c\u958b\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u4ed6\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_PUBLISH_FORM=\u516c\u958b\u30d5\u30a9\u30fc\u30de\u30c3\u30c8
+FORM_LABEL_DESCRIPTION=\u8aac\u660e
+FORM_LABEL_DESCRIPTIONS=\u8aac\u660e
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I \u30d3\u30b8\u30cd\u30b9 %1 \u306f\u6b63\u5e38\u306b\u516c\u958b\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I \u30b5\u30fc\u30d3\u30b9 %1 \u306f\u6b63\u5e38\u306b\u516c\u958b\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 %1 \u306f\u6b63\u5e38\u306b\u516c\u958b\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_ERROR_INVALID_NAME=IWAB0161E \u6709\u52b9\u306a\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E \u884c %2 \u306e %1 \u306e\u975e\u30d6\u30e9\u30f3\u30af\u8a00\u8a9e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u30d6\u30e9\u30f3\u30af\u8a00\u8a9e\u304c\u542b\u3080\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u306f\u6700\u521d\u306e\u884c\u3060\u3051\u3067\u3059\u3002
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E \u884c %2 \u306e %1 \u306e\u8a00\u8a9e\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u73fe\u5728\u306e\u8a00\u8a9e\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E \u884c %2 \u306b\u6709\u52b9\u306a %1 \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E \u6709\u52b9\u306a WSDL URL \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_NO_NAMES=IWAB0254E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u540d\u524d\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_SERVICE=IWAB0255E \u6709\u52b9\u306a\u30b5\u30fc\u30d3\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E \u6709\u52b9\u306a\u30d3\u30b8\u30cd\u30b9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=\u30b5\u30fc\u30d3\u30b9\u306e\u516c\u958b
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc - %1
+FORM_LABEL_WSDL_SOURCE=WSDL \u30bd\u30fc\u30b9\u306e\u9078\u629e:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u304a\u6c17\u306b\u5165\u308a
+FORM_LABEL_WEB_PROJECT=Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8
+FORM_LABEL_WSDL_URL=WSDL URL
+ALT_WSDL_BROWSER=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc
+
+# Details
+FORM_LINK_EDIT=\u7de8\u96c6
+FORM_LINK_CANCEL=\u30ad\u30e3\u30f3\u30bb\u30eb
+FORM_LABEL_BUSINESS_KEY=\u30d3\u30b8\u30cd\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_SERVICE_KEY=\u30b5\u30fc\u30d3\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel \u30ad\u30fc
+FORM_LABEL_USER_DEFINED_CATEGORIES=\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ab\u30c6\u30b4\u30ea\u30fc
+FORM_LABEL_CHECKED=\u691c\u67fb\u6e08\u307f
+FORM_LABEL_FILE=\u30d5\u30a1\u30a4\u30eb
+MSG_QUESTION_PUBLISH_ITEM=\u9805\u76ee\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u516c\u958b\u3057\u307e\u3059\u304b?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=\u30b5\u30fc\u30d3\u30b9\u3068\u305d\u306e\u30d3\u30b8\u30cd\u30b9\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u7d9a\u884c\u3057\u3066\u516c\u958b\u3057\u307e\u3059\u304b?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I \u30d3\u30b8\u30cd\u30b9 %1 \u304c\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_UPDATED=IWAB0258I \u30b5\u30fc\u30d3\u30b9 %1 \u304c\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 %1 \u304c\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I \u30ec\u30b8\u30b9\u30c8\u30ea\u30fc %1 \u304c\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=\u30d3\u30b8\u30cd\u30b9\u306e\u975e\u516c\u958b
+ALT_UNPUBLISH_SERVICE=\u30b5\u30fc\u30d3\u30b9\u306e\u975e\u516c\u958b
+ALT_UNPUBLISH_SERVICE_INTERFACE=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u975e\u516c\u958b
+FORM_LABEL_UNPUBLISH_DESC=\u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u62bc\u3057\u3066\u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u975e\u516c\u958b\u306b\u3057\u307e\u3059\u3002 \u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I \u30d3\u30b8\u30cd\u30b9 %1 \u304c\u6b63\u5e38\u306b\u975e\u516c\u958b\u306b\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I \u30b5\u30fc\u30d3\u30b9 %1 \u304c\u6b63\u5e38\u306b\u975e\u516c\u958b\u306b\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I \u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 %1 \u304c\u6b63\u5e38\u306b\u975e\u516c\u958b\u306b\u3055\u308c\u307e\u3057\u305f\u3002
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 \u304c WSDL \u30da\u30fc\u30b8\u306b\u6b63\u5e38\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 \u3092 WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 \u304c\u304a\u6c17\u306b\u5165\u308a\u306b\u6b63\u5e38\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 \u306f\u304a\u6c17\u306b\u5165\u308a\u306b\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 \u4e0a\u66f8\u304d\u3057\u307e\u3059\u304b?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 \u304c\u6700\u65b0\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+MSG_QUESTION_REMOVE_NODE=%1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u30af\u30ea\u30a2\u3057\u307e\u3059\u304b?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=\u53c2\u7167\u30b5\u30fc\u30d3\u30b9\u306e\u7ba1\u7406
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=\u300c<strong>\u30b5\u30fc\u30d3\u30b9\u306e\u8ffd\u52a0</strong>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u767a\u898b\u307e\u305f\u306f\u516c\u958b\u3055\u308c\u305f\u30b5\u30fc\u30d3\u30b9\u3092\u53c2\u7167\u30b5\u30fc\u30d3\u30b9\u306e\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>\u53c2\u7167\u306e\u9664\u53bb</strong>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u9078\u629e\u3055\u308c\u305f\u53c2\u7167\u3092\u9664\u53bb\u3057\u307e\u3059\u3002 \u5909\u66f4\u306b\u306f\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
+FORM_LABEL_REFERENCED_SERVICES=\u53c2\u7167\u30b5\u30fc\u30d3\u30b9
+FORM_BUTTON_ADD_SERVICES=\u30b5\u30fc\u30d3\u30b9\u306e\u8ffd\u52a0
+FORM_BUTTON_REMOVE_REFERENCES=\u53c2\u7167\u306e\u9664\u53bb
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E \u7d9a\u884c\u3059\u308b\u524d\u306b\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u53c2\u7167\u30b5\u30fc\u30d3\u30b9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_NO_SERVICES=IWAB0267E \u7d9a\u884c\u3059\u308b\u524d\u306b\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u53d6\u5f97\u307e\u305f\u306f\u691c\u51fa\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E \u30b5\u30fc\u30d3\u30b9 %1 \u3092\u53c2\u7167\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E \u30b5\u30fc\u30d3\u30b9\u53c2\u7167 %1 \u3092\u9664\u53bb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I \u30b5\u30fc\u30d3\u30b9 %1 \u304c\u6b63\u5e38\u306b\u53c2\u7167\u3055\u308c\u307e\u3057\u305f\u3002
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I \u30b5\u30fc\u30d3\u30b9\u53c2\u7167 %1 \u304c\u6b63\u5e38\u306b\u9664\u53bb\u3055\u308c\u307e\u3057\u305f\u3002
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u306e\u7ba1\u7406
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=\u300c<strong>\u8868\u660e\u306e\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u767a\u898b\u307e\u305f\u306f\u516c\u958b\u3055\u308c\u305f\u30d3\u30b8\u30cd\u30b9\u3092\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u306e\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>\u8868\u660e\u306e\u9664\u53bb </strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u9078\u629e\u3055\u308c\u305f\u8868\u660e\u3092\u9664\u53bb\u3057\u307e\u3059\u3002 \u300c<strong>\u8868\u660e\u306e\u5b8c\u4e86</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u9078\u629e\u3055\u308c\u305f\u8868\u660e\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002 \u300c<strong>\u8868\u660e\u306e\u66f4\u65b0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u8868\u660e\u306e\u30ea\u30b9\u30c8\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=\u6ce8\u4e0d\u5b8c\u5168\u306a\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u306f\u305d\u306e\u30d3\u30b8\u30cd\u30b9\u306e\u6240\u6709\u8005\u306b\u3057\u304b\u8868\u793a\u3055\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+FORM_LABEL_BUSINESSES=\u30d3\u30b8\u30cd\u30b9
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=\u8868\u660e\u306e\u66f4\u65b0
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=\u8868\u660e\u306e\u5b8c\u4e86
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=\u8868\u660e\u306e\u8ffd\u52a0
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=\u8868\u660e\u306e\u9664\u53bb
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I \u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u304c\u6700\u65b0\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u4e0d\u5b8c\u5168\u306a\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E \u3053\u306e\u64cd\u4f5c\u306f\u3001\u5225\u306e\u95a2\u4fc2\u8005\u306b\u3088\u3063\u3066\u6240\u6709\u3055\u308c\u3066\u3044\u308b\u30d3\u30b8\u30cd\u30b9\u306b\u5bfe\u3057\u3066\u306f\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3002
+
+# GetBusinesses
+ALT_GET_BUSINESS=\u30d3\u30b8\u30cd\u30b9\u306e\u53d6\u5f97
+ALT_GET_BUSINESSES=\u30d3\u30b8\u30cd\u30b9\u306e\u53d6\u5f97
+NODE_NAME_SERVICE_BUSINESS=\u30b5\u30fc\u30d3\u30b9 %1 \u306e\u30d3\u30b8\u30cd\u30b9
+NODE_NAME_SI_BUSINESSES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 %1 \u306e\u30d3\u30b8\u30cd\u30b9
+MSG_QUESTION_REMOVE_SERVICE_NODE=\u30b5\u30fc\u30d3\u30b9\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u30ce\u30fc\u30c9\u3092\u9664\u53bb\u3057\u307e\u3059\u304b?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u53d6\u5f97
+NODE_NAME_SERVICE_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9 %1 \u306e\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=\u30b5\u30fc\u30d3\u30b9\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u30ce\u30fc\u30c9\u3092\u9664\u53bb\u3057\u307e\u3059\u304b?
+
+# GetServices
+ALT_GET_SERVICES=\u30b5\u30fc\u30d3\u30b9\u306e\u53d6\u5f97
+NODE_NAME_SI_SERVICES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 %1 \u306e\u30b5\u30fc\u30d3\u30b9
+NODE_NAME_BUSINESS_SERVICES=\u30d3\u30b8\u30cd\u30b9 %1 \u306e\u30b5\u30fc\u30d3\u30b9
+MSG_QUESTION_REMOVE_SI_NODE=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u30ce\u30fc\u30c9\u3092\u9664\u53bb\u3057\u307e\u3059\u304b?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=\u30d3\u30b8\u30cd\u30b9\u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u30ce\u30fc\u30c9\u3092\u9664\u53bb\u3057\u307e\u3059\u304b?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# Summaries
+ALT_SUMMARY_QUERIES=\u7167\u4f1a\u306e\u8981\u7d04
+ALT_SUMMARY_BUSINESSES=\u30d3\u30b8\u30cd\u30b9\u306e\u8981\u7d04
+ALT_SUMMARY_SERVICES=\u30b5\u30fc\u30d3\u30b9\u306e\u8981\u7d04
+ALT_SUMMARY_SERVICE_INTERFACES=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u8981\u7d04
+FORM_LABEL_QUERIES=\u7167\u4f1a
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u9664\u53bb\u3057\u307e\u3059\u304b?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_NAVIGATOR_CONTENT=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_ACTIONS_CONTAINER=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTAINER=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_PROPERTIES_CONTENT=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6cc1\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI \u30da\u30fc\u30b8\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_CATEGORIES_WORKAREA=\u30ab\u30c6\u30b4\u30ea\u30fc\u4f5c\u696d\u30a8\u30ea\u30a2
+FRAME_TITLE_CATEGORIES_TOOLBAR=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_CATEGORIES_CONTENT=\u30ab\u30c6\u30b4\u30ea\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_WSDL_CONTENT=WSDL \u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=\u30d3\u30b8\u30cd\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=\u30d3\u30b8\u30cd\u30b9\u516c\u958b\u30b5\u30fc\u30d3\u30b9\u66f8\u5f0f
+FORM_TITLE_GET_FORM=\u767a\u898b\u307e\u305f\u306f\u516c\u958b\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u66f8\u5f0f\u304b\u3089\u9078\u629e
+FORM_TITLE_ITEMS_SUMMARY=\u9805\u76ee\u66f8\u5f0f\u306e\u8981\u7d04
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=\u30d1\u30d6\u30ea\u30c3\u30b7\u30e3\u30fc\u8868\u660e\u66f8\u5f0f\u306e\u7ba1\u7406
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=\u53c2\u7167\u30b5\u30fc\u30d3\u30b9\u66f8\u5f0f\u306e\u7ba1\u7406
+FORM_TITLE_OPEN_REGISTRY=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u66f8\u5f0f\u3092\u958b\u304f
+FORM_TITLE_REGISTRY_DETAILS=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_REGISTRY_PUBLISH=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u516c\u958b\u66f8\u5f0f
+FORM_TITLE_REGISTRY_FIND=\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u691c\u7d22\u66f8\u5f0f
+FORM_TITLE_RESULTS=\u7d50\u679c\u66f8\u5f0f
+FORM_TITLE_SERVICE_DETAILS=\u30b5\u30fc\u30d3\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_UNPUBLISH=\u975e\u516c\u958b\u66f8\u5f0f
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ko.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ko.properties
new file mode 100644
index 000000000..61fd852bb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_ko.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI \uae30\ubcf8
+NODE_NAME_QUERIES_FOLDER=\uc2e4\ud589\ub41c \uc870\ud68c
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=\uacf5\uac1c\ub41c \ube44\uc988\ub2c8\uc2a4
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=\uacf5\uac1c\ub41c \uc11c\ube44\uc2a4
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=\uacf5\uac1c\ub41c \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc5f4\uae30
+FORM_LABEL_OPEN_REGISTRY_DESC=\uc5f4\ub9ac\ub294 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc758 \uc774\ub984 \ubc0f \uc870\ud68c URL\uc744 \uc9c0\uc815\ud558\uc2ed\uc2dc\uc624. \uc990\uaca8\ucc3e\uae30 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc120\ud0dd\ud558\uba74 \uc790\ub3d9\uc73c\ub85c \ud544\uc218 \uc815\ubcf4\uac00 \ucc44\uc6cc\uc9d1\ub2c8\ub2e4. \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc5f4\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FAVORITE_REGISTRY=\uc990\uaca8\ucc3e\uae30 \ub808\uc9c0\uc2a4\ud2b8\ub9ac
+FORM_LABEL_REGISTRY_NAME=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc774\ub984
+FORM_LABEL_INQUIRY_URL=\uc870\ud68c URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=\uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac \ud655\uc778
+DEFAULT_REGISTRY_NAME=IBM UDDI \ud14c\uc2a4\ud2b8 \ub808\uc9c0\uc2a4\ud2b8\ub9ac
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E \uc62c\ubc14\ub978 \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E \uc62c\ubc14\ub978 \uc870\ud68c URL\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I %2\uc5d0 \uc704\uce58\ud55c %1 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uac00 \uc5f4\ub838\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=WebSphere UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc785\ub2c8\uae4c?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere \uc0ac\uc124 UDDI \ub808\uc9c0\uc2a4\ud2b8\ub9ac
+FORM_LABEL_REGISTRY_HOST=\ud638\uc2a4\ud2b8
+FORM_LABEL_REGISTRY_PORT=\ud3ec\ud2b8
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=\uc774 \uce74\ud14c\uace0\ub9ac \ub370\uc774\ud130\ub97c \ub85c\ub4dc\ud558\ub824\uba74 <a href="%1">\uc5ec\uae30\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624</a>.
+FORM_CONTROL_TITLE_CATEGORY_FILE=\uce74\ud14c\uace0\ub9ac \ub370\uc774\ud130 \ud30c\uc77c \uc774\ub984
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I \ubc1c\uacac\ub41c \uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I %1\uc758 \uce74\ud14c\uace0\ub9ac \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uac70\ub098 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I \uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac %1\uc758 \ub370\uc774\ud130\uac00 \ub85c\ub4dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E \uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac %1\uc758 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \ub370\uc774\ud130 \ud30c\uc77c. \uce74\ud14c\uace0\ub9ac \ud0a4 '%2'\uc744(\ub97c) \ucc3e\uc558\uc73c\ub098 '%3'\uc744(\ub97c) \uc608\uc0c1\ud588\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E \ud589\uc5d0 \uc54c \uc218 \uc5c6\ub294 \ud615\uc2dd: \uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac %2\uc758 \ub370\uc774\ud130 \ud30c\uc77c \uc911 %1. \ud589\uc740 "%3"\uc785\ub2c8\ub2e4.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E \uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac %1\uc758 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \ub370\uc774\ud130 \ud30c\uc77c.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E \uce74\ud14c\uace0\ub9ac %1\uc758 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uc608\uc678 \ud14d\uc2a4\ud2b8: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=\uce74\ud14c\uace0\ub9ac \ube0c\ub77c\uc6b0\uc800
+ALT_CATEGORIES=\uce74\ud14c\uace0\ub9ac
+
+# Details
+ALT_REGISTRY_DETAILS=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc138\ubd80\uc0ac\ud56d
+ALT_BUSINESS_DETAILS=\ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d
+ALT_SERVICE_DETAILS=\uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d
+ALT_SERVICE_INTERFACE_DETAILS=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc138\ubd80\uc0ac\ud56d
+FORM_LABEL_DETAILS_EDITABLE=<strong>%1</strong>\uc758 \uc138\ubd80\uc0ac\ud56d\uc774 \uc544\ub798 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uc77c\ubd80 \ud56d\ubaa9\uc740 \ucd94\uac00, \uc81c\uac70 \ub610\ub294 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd\ud558\ub824\uba74 \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ud0c0 \uc870\uce58\ub294 \uc774 \ud398\uc774\uc9c0\uc758 \ub9e8 \uc544\ub798\uc5d0 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+
+# Get
+ALT_GET=\uac00\uc838\uc624\uae30
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=\uc774\ub984 \uac12
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=\uc124\uba85 \uac12
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=\uce74\ud14c\uace0\ub9ac \ud0a4 \uc774\ub984
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=\uce74\ud14c\uace0\ub9ac \ud0a4 \uac12
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=ID \ud0a4 \uc774\ub984
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=ID \ud0a4 \uac12
+FORM_CONTROL_TITLE_DISCOVERY_URL=\ubc1c\uacac URL
+
+# Find actions
+ALT_FIND=\ucc3e\uae30
+ALT_SUBQUERY=%1 \ubd80\uc18d \uc870\ud68c \ucc3e\uae30
+FORM_LABEL_QUERY_NAME=\uc774 \uc870\ud68c\uc758 \uc774\ub984
+DEFAULT_QUERY_NAME=\uc870\ud68c \uacb0\uacfc
+DEFAULT_SUBQUERY_NAME=%1 - %2 \ubd80\uc18d \uc870\ud68c
+FORM_LABEL_SEARCH_FOR=\uac80\uc0c9
+FORM_OPTION_BUSINESSES=\ube44\uc988\ub2c8\uc2a4
+FORM_OPTION_SERVICES=\uc11c\ube44\uc2a4
+FORM_OPTION_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+FORM_LABEL_SEARCH_TYPE=\uac80\uc0c9 \uc720\ud615
+FORM_RADIO_SIMPLE=\ub2e8\uc21c
+FORM_RADIO_ADVANCED=\uace0\uae09
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=\uac80\uc0c9\ud560 \ube44\uc988\ub2c8\uc2a4\uc758 \ubd80\ubd84 \ub610\ub294 \uc644\uc804\ud55c \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. '%' \uae30\ud638\uac00 \uc784\uc758 \ubb38\uc790\uc640 \uc77c\uce58\ud558\ub294 \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FIND_ADVANCED_DESC=\uc544\ub798 \ub098\uc5f4\ub41c \ud558\ub098 \uc774\uc0c1\uc758 \ub9e4\uac1c\ubcc0\uc218 \uac12\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. '%' \uae30\ud638\uac00 \uc774\ub984 \ud14c\uc774\ube14\uc758 \uc774\ub984 \ud544\ub4dc\uc5d0 \uc788\ub294 \uc784\uc758 \ubb38\uc790\uc640 \uc77c\uce58\ud558\ub294 \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=\uac80\uc0c9\ud560 \ube44\uc988\ub2c8\uc2a4\uc758 UUID\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_NAMES=\uc774\ub984
+FORM_LINK_ADD=\ucd94\uac00
+FORM_LINK_GET=\uac00\uc838\uc624\uae30
+FORM_LINK_FIND=\ucc3e\uae30
+FORM_LINK_REMOVE=\uc81c\uac70
+FORM_LABEL_OWNED=\uc18c\uc720
+FORM_LABEL_PUBLISH_URL=\uacf5\uac1c URL
+FORM_LABEL_USERID=\uc0ac\uc6a9\uc790 ID
+FORM_LABEL_PASSWORD=\uc554\ud638
+FORM_LABEL_LANGUAGE=\uc5b8\uc5b4
+FORM_LABEL_NAME=\uc774\ub984
+FORM_LABEL_DESCRIPTION=\uc124\uba85
+FORM_OPTION_LANGUAGE_EN=\uc601\uc5b4
+FORM_OPTION_LANGUAGE_AA=Afar
+FORM_OPTION_LANGUAGE_AB=Abkhazian
+FORM_OPTION_LANGUAGE_AF=\uacf5\uc6a9 \ub124\ub35c\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_AM=\uc544\ud568\ub77c\uc5b4
+FORM_OPTION_LANGUAGE_AR=\uc544\ub78d\uc5b4
+FORM_OPTION_LANGUAGE_AS=\uc544\uc0bc\uc5b4
+FORM_OPTION_LANGUAGE_AY=\uc544\uc774\ub9c8\ub77c\uc871\uc5b4
+FORM_OPTION_LANGUAGE_AZ=Azerbaijani
+FORM_OPTION_LANGUAGE_BA=Bashkir
+FORM_OPTION_LANGUAGE_BE=\ubca8\ub85c\ub8e8\uc2dc\uc5b4
+FORM_OPTION_LANGUAGE_BG=\ubd88\uac00\ub9ac\uc544\uc5b4
+FORM_OPTION_LANGUAGE_BH=Bihari
+FORM_OPTION_LANGUAGE_BI=Bislama
+FORM_OPTION_LANGUAGE_BN=\ubcb5\uace8\uc5b4; Bangla
+FORM_OPTION_LANGUAGE_BO=\ud2f0\ubca0\ud2b8\uc5b4
+FORM_OPTION_LANGUAGE_BR=\ube0c\ub974\ud0c0\ub274\uc5b4
+FORM_OPTION_LANGUAGE_CA=\uce74\ud0c8\ub85c\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_CO=\ucf54\ub974\uc2dc\uce74\uc5b4
+FORM_OPTION_LANGUAGE_CZ=\uccb4\ucf54\uc5b4
+FORM_OPTION_LANGUAGE_CY=Welsh
+FORM_OPTION_LANGUAGE_DA=\ub374\ub9c8\ud06c\uc5b4
+FORM_OPTION_LANGUAGE_DE=\ub3c5\uc77c\uc5b4
+FORM_OPTION_LANGUAGE_DZ=Bhutani
+FORM_OPTION_LANGUAGE_EL=\uadf8\ub9ac\uc2a4\uc5b4
+FORM_OPTION_LANGUAGE_EO=\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4
+FORM_OPTION_LANGUAGE_ES=\uc2a4\ud398\uc778\uc5b4
+FORM_OPTION_LANGUAGE_ET=\uc5d0\uc2a4\ud1a0\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_EU=\ubc14\uc2a4\ud06c\uc5b4
+FORM_OPTION_LANGUAGE_FA=\ud398\ub974\uc2dc\uc544\uc5b4
+FORM_OPTION_LANGUAGE_FI=\ud540\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_FJ=\ud53c\uc9c0
+FORM_OPTION_LANGUAGE_FO=\ud398\ub85c\uc2a4\uc5b4
+FORM_OPTION_LANGUAGE_FR=\ud504\ub791\uc2a4\uc5b4
+FORM_OPTION_LANGUAGE_FY=\ud504\ub9ac\uc2ac\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_GA=\uc544\uc77c\ub79c\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_GD=\uc2a4\ucf54\ud074\ub79c\ub4dc \uace0\uc9c0\uc758 \uac8c\uc77c\uc5b4
+FORM_OPTION_LANGUAGE_GL=\uac08\ub9ac\uc2dc\uc544\uc5b4
+FORM_OPTION_LANGUAGE_GN=\uacfc\ub77c\ub2c8\uc5b4
+FORM_OPTION_LANGUAGE_GU=Gujarati
+FORM_OPTION_LANGUAGE_HA=Hausa
+FORM_OPTION_LANGUAGE_HI=\ud78c\ub514\uc5b4
+FORM_OPTION_LANGUAGE_HR=\ud06c\ub85c\uc544\ud2f0\uc544\uc5b4
+FORM_OPTION_LANGUAGE_HU=\ud5dd\uac00\ub9ac\uc5b4
+FORM_OPTION_LANGUAGE_HY=\uc544\ub974\uba54\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_IA=\uad6d\uc81c\uc5b4
+FORM_OPTION_LANGUAGE_IE=Interlingue
+FORM_OPTION_LANGUAGE_IK=Inupiak
+FORM_OPTION_LANGUAGE_IN=\uc778\ub3c4\ub124\uc2dc\uc544\uc5b4
+FORM_OPTION_LANGUAGE_IS=\uc544\uc774\uc2ac\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_IT=\uc774\ud0c8\ub9ac\uc544\uc5b4
+FORM_OPTION_LANGUAGE_IW=\ud788\ube0c\ub9ac\uc5b4
+FORM_OPTION_LANGUAGE_JA=\uc77c\ubcf8\uc5b4
+FORM_OPTION_LANGUAGE_JI=\uc774\ub514\uc2dc\uc5b4
+FORM_OPTION_LANGUAGE_JW=\uc790\ubc14\uc5b4
+FORM_OPTION_LANGUAGE_KA=\uadf8\ub8e8\uc9c0\uc57c\uc5b4
+FORM_OPTION_LANGUAGE_KK=\uce74\uc790\ud750\uc5b4
+FORM_OPTION_LANGUAGE_KL=\uadf8\ub9b0\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_KM=\ud06c\uba54\ub974\uc5b4
+FORM_OPTION_LANGUAGE_KN=Kannada
+FORM_OPTION_LANGUAGE_KO=\ud55c\uad6d\uc5b4
+FORM_OPTION_LANGUAGE_KS=\uce74\uc288\ubbf8\ub974\uc5b4
+FORM_OPTION_LANGUAGE_KU=Kurdish
+FORM_OPTION_LANGUAGE_KY=\ud0a4\ub974\uae30\uc2a4\uc5b4
+FORM_OPTION_LANGUAGE_LA=\ub77c\ud2f4\uc5b4
+FORM_OPTION_LANGUAGE_LN=Lingala
+FORM_OPTION_LANGUAGE_LO=\ub77c\uc624\uc2a4\uc5b4
+FORM_OPTION_LANGUAGE_LT=\ub9ac\ud22c\uc544\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_LV=\ub77c\ud2b8\ube44\uc544\uc5b4, Lettish
+FORM_OPTION_LANGUAGE_MG=\ub9c8\ub2e4\uce74\uc2a4\uce74\ub974
+FORM_OPTION_LANGUAGE_MI=\ub9c8\uc624\ub9ac\uc5b4
+FORM_OPTION_LANGUAGE_MK=\ub9c8\ucf00\ub3c4\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_ML=Malayalam
+FORM_OPTION_LANGUAGE_MN=\ubabd\uace8\uc5b4
+FORM_OPTION_LANGUAGE_MO=Moldavian
+FORM_OPTION_LANGUAGE_MR=Marathi
+FORM_OPTION_LANGUAGE_MS=\ub9d0\ub808\uc774\uc2dc\uc544\uc5b4
+FORM_OPTION_LANGUAGE_MT=\ubab0\ud0c0\uc5b4
+FORM_OPTION_LANGUAGE_MY=\ubc84\ub9c8\uc5b4
+FORM_OPTION_LANGUAGE_NA=\ub098\uc6b0\ub8e8\uc5b4
+FORM_OPTION_LANGUAGE_NE=\ub124\ud314\uc5b4
+FORM_OPTION_LANGUAGE_NL=\ub124\ub35c\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_NO=\ub178\ub974\uc6e8\uc774\uc5b4
+FORM_OPTION_LANGUAGE_OC=Occitan
+FORM_OPTION_LANGUAGE_OM=(Afan) \uc624\ub85c\ubaa8\uc5b4
+FORM_OPTION_LANGUAGE_OR=Oriya
+FORM_OPTION_LANGUAGE_PA=\ud380\uc790\ube0c\uc5b4
+FORM_OPTION_LANGUAGE_PL=\ud3f4\ub780\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_PS=\ud30c\uc288\ud1a0\uc5b4, Pushto
+FORM_OPTION_LANGUAGE_PT=\ud3ec\ub974\ud22c\uac08\uc5b4
+FORM_OPTION_LANGUAGE_QU=\ucf00\ucd94\uc544\uc5b4
+FORM_OPTION_LANGUAGE_RM=\ub808\ud1a0\ub85c\ub9cc\uc5b4
+FORM_OPTION_LANGUAGE_RN=Kirundi
+FORM_OPTION_LANGUAGE_RO=\ub8e8\ub9c8\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_RU=\ub7ec\uc2dc\uc544\uc5b4
+FORM_OPTION_LANGUAGE_RW=Kinyarwanda
+FORM_OPTION_LANGUAGE_SA=\uc0b0\uc2a4\ud06c\ub9ac\ud2b8\uc5b4
+FORM_OPTION_LANGUAGE_SD=\uc2e0\ub4dc\uc5b4
+FORM_OPTION_LANGUAGE_SG=Sangro
+FORM_OPTION_LANGUAGE_SH=\uc138\ub974\ubcf4\ud06c\ub85c\uc544\ud2f0\uc544
+FORM_OPTION_LANGUAGE_SI=Singhalese
+FORM_OPTION_LANGUAGE_SK=\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4
+FORM_OPTION_LANGUAGE_SL=\uc2ac\ub85c\ubca0\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_SM=\uc0ac\ubaa8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_SN=Shona
+FORM_OPTION_LANGUAGE_SO=\uc18c\ub9d0\ub9ac\uc5b4
+FORM_OPTION_LANGUAGE_SQ=\uc54c\ubc14\ub2c8\uc544\uc5b4
+FORM_OPTION_LANGUAGE_SR=\uc138\ub974\ube44\uc544\uc5b4
+FORM_OPTION_LANGUAGE_SS=Siswati
+FORM_OPTION_LANGUAGE_ST=Sesotho
+FORM_OPTION_LANGUAGE_SU=Sundanese
+FORM_OPTION_LANGUAGE_SV=\uc2a4\uc6e8\ub374\uc5b4
+FORM_OPTION_LANGUAGE_SW=\uc2a4\uc640\ud790\ub9ac\uc5b4
+FORM_OPTION_LANGUAGE_TA=\ud0c0\ubc00\uc5b4
+FORM_OPTION_LANGUAGE_TE=Tegulu
+FORM_OPTION_LANGUAGE_TG=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4\uc5b4
+FORM_OPTION_LANGUAGE_TH=\ud0dc\uad6d\uc5b4
+FORM_OPTION_LANGUAGE_TI=\ud2f0\uadf8\ub9ac\ub0d0\uc5b4
+FORM_OPTION_LANGUAGE_TK=\ud22c\ub974\ud06c\uba58\uc5b4
+FORM_OPTION_LANGUAGE_TL=\ud0c0\uac08\ub85c\uadf8\uc5b4
+FORM_OPTION_LANGUAGE_TN=Setswana
+FORM_OPTION_LANGUAGE_TO=\ud1b5\uac00\uc5b4
+FORM_OPTION_LANGUAGE_TR=\ud130\ud0a4\uc5b4
+FORM_OPTION_LANGUAGE_TS=Tsonga
+FORM_OPTION_LANGUAGE_TT=\ud0c0\ud0c0\ub974\uc5b4
+FORM_OPTION_LANGUAGE_TW=Twi
+FORM_OPTION_LANGUAGE_UK=\uc6b0\ud06c\ub77c\uc774\ub098\uc5b4
+FORM_OPTION_LANGUAGE_UR=\uc6b0\ub974\ub450\uc5b4
+FORM_OPTION_LANGUAGE_UZ=\uc6b0\uc988\ubca0\ud06c\uc5b4
+FORM_OPTION_LANGUAGE_VI=\ubca0\ud2b8\ub0a8\uc5b4
+FORM_OPTION_LANGUAGE_VO=\ubcfc\ub77c\ud4cc\ud06c\uc5b4
+FORM_OPTION_LANGUAGE_WO=Wolof
+FORM_OPTION_LANGUAGE_XH=\ucf54\uc0ac\uc5b4
+FORM_OPTION_LANGUAGE_YO=\uc694\ub8e8\ubc14\uc5b4
+FORM_OPTION_LANGUAGE_ZH=\uc911\uad6d\uc5b4
+FORM_OPTION_LANGUAGE_ZU=\uc904\ub8e8\uc5b4
+FORM_LABEL_EXACT_NAME_MATCH=\uc815\ud655\ud558\uac8c \uc77c\uce58
+FORM_LABEL_CASE_SENSITIVE_MATCH=\ub300\uc18c\ubb38\uc790 \uad6c\ubd84
+FORM_LABEL_SOUNDEX=\uc0ac\uc6b4\ub4dc \uc720\uc0ac
+FORM_LABEL_IDENTIFIERS=ID
+FORM_LABEL_IDENTIFIER_TYPE=\uc720\ud615
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry
+
+FORM_LABEL_KEY_NAME=\ud0a4 \uc774\ub984
+FORM_LABEL_KEY_VALUE=\ud0a4 \uac12
+FORM_LABEL_CATEGORIES=\uce74\ud14c\uace0\ub9ac
+FORM_LABEL_CATEGORY_TYPE=\uc720\ud615
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW Community
+FORM_LABEL_BUSINESS_CATEGORIES=\ube44\uad50:
+FORM_OPTION_BUSINESSES_ONLY=\ube44\uc988\ub2c8\uc2a4\ub9cc
+FORM_OPTION_SERVICES_ONLY=\uc11c\ube44\uc2a4\ub9cc
+FORM_OPTION_BOTH=\ube44\uc988\ub2c8\uc2a4 \ubc0f \uc11c\ube44\uc2a4
+FORM_LABEL_DISCOVERYURLS=\ubc1c\uacac URL
+FORM_LABEL_DISCOVERYURL=\ubc1c\uacac URL
+FORM_LABEL_FINDQUALIFIERS=\uaddc\uc815\uc790 \ucc3e\uae30
+FORM_LABEL_COMBINE_KEYS=\uacb0\ud569 \ud0a4:
+FORM_OPTION_ANDALLKEYS=\ubc0f
+FORM_OPTION_ORALLKEYS=\ub610\ub294
+FORM_OPTION_ORLIKEKEYS=\ub610\ub294 Like
+FORM_LABEL_SORT_BY_NAME=\uc774\ub984\ubcc4 \uc815\ub82c:
+FORM_RADIO_SORT_ASC=\uc624\ub984\ucc28\uc21c
+FORM_RADIO_SORT_DESC=\ub0b4\ub9bc\ucc28\uc21c
+FORM_LABEL_SORT_BY_DATE=\ub0a0\uc9dc\ubcc4 \uc815\ub82c:
+FORM_LABEL_MAX_SEARCH_SET=\uac80\uc0c9 \uc138\ud2b8\uc758 \ucd5c\ub300 \ud06c\uae30:
+FORM_LABEL_MAX_RESULTS=\ucd5c\ub300 \uacb0\uacfc \uc218:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=\uac80\uc0c9\ud560 \uc11c\ube44\uc2a4\uc758 \ubd80\ubd84 \ub610\ub294 \uc644\uc804\ud55c \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. '%' \uae30\ud638\uac00 \uc784\uc758 \ubb38\uc790\uc640 \uc77c\uce58\ud558\ub294 \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=\uac80\uc0c9\ud560 \uc11c\ube44\uc2a4\uc758 UUID\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=\uac80\uc0c9\ud560 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\uc758 \ubd80\ubd84 \ub610\ub294 \uc644\uc804\ud55c \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. '%' \uae30\ud638\uac00 \uc784\uc758 \ubb38\uc790\uc640 \uc77c\uce58\ud558\ub294 \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=\uac80\uc0c9\ud560 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\uc758 UUID\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624.
+FORM_LABEL_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+FORM_LABEL_UUID_KEY=UUID \ud0a4:
+FORM_LABEL_USE_SERVICE=\uc0ac\uc6a9 \uc11c\ube44\uc2a4
+FORM_LABEL_SERVICE=\uc11c\ube44\uc2a4
+FORM_LABEL_BUSINESS=\ube44\uc988\ub2c8\uc2a4
+FORM_LABEL_PUBLISH_ASSERTIONS=\uacf5\uac1c\uc790 \uc120\uc5b8\ubb38
+FORM_LABEL_DIRECTION=\uc9c0\uc2dc\ubb38
+FORM_LABEL_FROM_KEY=From \ud0a4
+FORM_LABEL_TO_KEY=To \ud0a4
+FORM_LABEL_STATUS=\uc0c1\ud0dc
+FORM_LABEL_ASSERTION_TYPE=\uc120\uc5b8\ubb38 \uc720\ud615
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=\uc0c1\uc704-\ud558\uc704
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=\ud53c\uc5b4-\ud53c\uc5b4
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=\uc2dd\ubcc4
+FORM_LABEL_ASSERTION_DIRETION_DESC=\uc9c0\uc2dc\ubb38 <strong>From</strong>\uc740 \uc774 \ube44\uc988\ub2c8\uc2a4\uc5d0\uc11c \uc704\uc758 \ube44\uc988\ub2c8\uc2a4\ub85c \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38(Publisher Assertion)\uc744 \uc791\uc131\ud569\ub2c8\ub2e4. \uc9c0\uc2dc\ubb38 <strong>To</strong>\ub294 \uc704\uc758 \ube44\uc988\ub2c8\uc2a4\uc5d0\uc11c \uc774 \ube44\uc988\ub2c8\uc2a4\ub85c \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38\uc744 \uc791\uc131\ud569\ub2c8\ub2e4.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=\uc774\uac83
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E \uc870\ud68c\uc758 \uc62c\ubc14\ub978 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_NAMES=IWAB0141E \uc77c\ub828\uc758 \uc62c\ubc14\ub978 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E \uc62c\ubc14\ub978 \uacf5\uac1c URL\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_USERID=IWAB0143E \uc62c\ubc14\ub978 \uc0ac\uc6a9\uc790 ID\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E \ucd5c\ub300 \uac80\uc0c9 \uc138\ud2b8\uc758 \uc62c\ubc14\ub978 \ud06c\uae30\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E \ucd5c\ub300 \uacb0\uacfc \uc218\uc758 \uc62c\ubc14\ub978 \ud06c\uae30\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I \ucc3e\uc740 \ube44\uc988\ub2c8\uc2a4 \uc218: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E \ube44\uc988\ub2c8\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICES_FOUND=IWAB0149I \ucc3e\uc740 \uc11c\ube44\uc2a4 \uc218: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E \uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E \uc624\uc9c1 \ud558\ub098\uc758 \ud56d\ubaa9\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_QUESTION_ITEM_REPLACEMENT=\uc120\ud0dd\ud558\uba74 \ub300\uc0c1\uc5d0 \uc774\ubbf8 \uc788\ub294 \ud56d\ubaa9\uc744 \ubc14\uafc9\ub2c8\ub2e4. \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I \ucc3e\uc740 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc218: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud56d\ubaa9\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E \uc62c\ubc14\ub978 UUID \ud0a4\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E \ubd80\uc18d \uc870\ud68c\uc758 \uc870\ud68c \uc774\ub984\uc774 \ubc1c\uc2e0\uc6d0\uacfc \uac19\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E \uc9c0\uc815\ub41c \uc720\ud615\uc758 \ud56d\ubaa9\uc774 \uc544\uc9c1 \uacf5\uac1c\ub418\uac70\ub098 \ubc1c\uacac\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
+
+# Results
+ALT_QUERY_RESULTS=\uc870\ud68c \uacb0\uacfc
+FORM_LABEL_SUBQUERY=\ub2e4\ub978 \uc870\uc791\uc758 \uc785\ub825\uc73c\ub85c \uacb0\uacfc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc870\uc791\uc744 \ubcf4\ub824\uba74 \ub9e8 \uc704\uc5d0\uc11c <strong>\ub300\uc0c1</strong> \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624. <strong>\uc804\uc1a1</strong> \ub2e8\ucd94\ub97c \ud074\ub9ad\ud558\uc5ec \uc870\uc791\uc5d0\uc11c \uc120\ud0dd\ub41c \uacb0\uacfc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_QUERY=\uacb0\uacfc\ub97c \uc120\ud0dd\ud558\uc5ec \ub354 \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \ubcf4\uac70\ub098, \uacb0\uacfc \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 \uc870\uc791\uc744 \uc218\ud589\ud560 \ub2e8\ucd94\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+FORM_LINK_TARGET=\ub300\uc0c1
+FORM_BUTTON_TRANSFER=\uc804\uc1a1
+FORM_BUTTON_REFRESH=\uc0c8\ub85c \uace0\uce58\uae30
+FORM_BUTTON_ADD_TO_FAVORITES=\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+FORM_BUTTON_UNPUBLISH=\uacf5\uac1c \ucde8\uc18c
+FORM_BUTTON_CLEAR=\uc9c0\uc6b0\uae30
+
+# Publish actions
+ALT_PUBLISH=\uacf5\uac1c
+FORM_LABEL_PUBLISH=\uacf5\uac1c:
+FORM_OPTION_BUSINESS=\ube44\uc988\ub2c8\uc2a4
+FORM_OPTION_SERVICE=\uc11c\ube44\uc2a4
+FORM_OPTION_SERVICE_INTERFACE=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=\uacf5\uac1c\ub420 \ube44\uc988\ub2c8\uc2a4\uc758 \uc120\ud0dd\uc801 \uc124\uba85 \ubc0f \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=\uacf5\uac1c\ub420 \ube44\uc988\ub2c8\uc2a4\uc758 \uc774\ub984\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\ub3c4 \uc9c0\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=\ube44\uc988\ub2c8\uc2a4\ub97c \uac00\uc838\uc624\uac70\ub098 \ucc3e\uc740 \ud6c4 \uacf5\uac1c\ub420 \uc11c\ube44\uc2a4\uc758 WSDL URL, \uc774\ub984 \ubc0f \uc120\ud0dd\uc801 \uc124\uba85\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=\ube44\uc988\ub2c8\uc2a4\ub97c \uac00\uc838\uc624\uac70\ub098 \ucc3e\uc740 \ud6c4 \uacf5\uac1c\ub420 \uc11c\ube44\uc2a4\uc758 WSDL URL \ubc0f \uc774\ub984\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\ub3c4 \uc9c0\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=\uacf5\uac1c\ub420 \uc11c\ube44\uc2a4\uc758 WSDL URL, \uc774\ub984 \ubc0f \uc120\ud0dd\uc801 \uc124\uba85\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=\uacf5\uac1c\ub420 \uc11c\ube44\uc2a4\uc758 WSDL URL \ubc0f \uc774\ub984\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\ub3c4 \uc9c0\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=\uacf5\uac1c\ub420 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\uc758 WSDL URL, \uc774\ub984 \ubc0f \uc120\ud0dd\uc801 \uc124\uba85\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=\uacf5\uac1c\ub420 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\uc758 WSDL URL \ubc0f \uc774\ub984\uc744 \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624. \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\ub3c4 \uc9c0\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_PUBLISH_FORM=\uacf5\uac1c \ud615\uc2dd
+FORM_LABEL_DESCRIPTION=\uc124\uba85
+FORM_LABEL_DESCRIPTIONS=\uc124\uba85
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I %1 \ube44\uc988\ub2c8\uc2a4\uac00 \uacf5\uac1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I %1 \uc11c\ube44\uc2a4\uac00 \uacf5\uac1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 %1\uc774(\uac00) \uacf5\uac1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_INVALID_NAME=IWAB0161E \uc62c\ubc14\ub978 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E %2 \ud589\uc5d0\uc11c %1\uc758 \uacf5\ubc31\uc774 \uc544\ub2cc \uc5b8\uc5b4\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624. \uccab \ubc88\uc9f8 \ud589\ub9cc\uc774 \uacf5\ubc31 \uc5b8\uc5b4\ub97c \uac00\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E %2 \ud589\uc5d0\uc11c %1\uc758 \uc5b8\uc5b4\ub97c \ubcc0\uacbd\ud558\uc2ed\uc2dc\uc624. \ud604\uc7ac \uc5b8\uc5b4\ub97c \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E %2 \ud589\uc5d0\uc11c \uc62c\ubc14\ub978 %1\uc744(\ub97c) \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E \uc62c\ubc14\ub978 WSDL URL\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_NO_NAMES=IWAB0254E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E \uc62c\ubc14\ub978 \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E \uc62c\ubc14\ub978 \ube44\uc988\ub2c8\uc2a4\ub97c \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=\uacf5\uac1c \uc11c\ube44\uc2a4
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL \ube0c\ub77c\uc6b0\uc800 - %1
+FORM_LABEL_WSDL_SOURCE=WSDL \uc18c\uc2a4 \uc120\ud0dd:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=\uc6f9 \ud504\ub85c\uc81d\ud2b8
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\uc990\uaca8\ucc3e\uae30
+FORM_LABEL_WEB_PROJECT=\uc6f9 \ud504\ub85c\uc81d\ud2b8
+FORM_LABEL_WSDL_URL=WSDL URL
+ALT_WSDL_BROWSER=WSDL \ube0c\ub77c\uc6b0\uc800
+
+# Details
+FORM_LINK_EDIT=\ud3b8\uc9d1
+FORM_LINK_CANCEL=\ucde8\uc18c
+FORM_LABEL_BUSINESS_KEY=\ube44\uc988\ub2c8\uc2a4 \ud0a4
+FORM_LABEL_SERVICE_KEY=\uc11c\ube44\uc2a4 \ud0a4
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel \ud0a4
+FORM_LABEL_USER_DEFINED_CATEGORIES=\uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\ud14c\uace0\ub9ac
+FORM_LABEL_CHECKED=\ud655\uc778\ub428
+FORM_LABEL_FILE=\ud30c\uc77c
+MSG_QUESTION_PUBLISH_ITEM=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ud56d\ubaa9\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uacf5\uac1c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \uc11c\ube44\uc2a4 \ubc0f \ud574\ub2f9 \ube44\uc988\ub2c8\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uacf5\uac1c\ub97c \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I %1 \ube44\uc988\ub2c8\uc2a4\uac00 \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I %1 \uc11c\ube44\uc2a4\uac00 \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 %1\uc774(\uac00) \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I %1 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uac00 \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=\ube44\uc988\ub2c8\uc2a4 \uacf5\uac1c \ucde8\uc18c
+ALT_UNPUBLISH_SERVICE=\uc11c\ube44\uc2a4 \uacf5\uac1c \ucde8\uc18c
+ALT_UNPUBLISH_SERVICE_INTERFACE=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uacf5\uac1c \ucde8\uc18c
+FORM_LABEL_UNPUBLISH_DESC=\uc774 \uc624\ube0c\uc81d\ud2b8\ub97c \uacf5\uac1c \ucde8\uc18c\ud558\ub824\uba74 <strong>\uc774\ub3d9</strong>\uc744 \ub204\ub974\uc2ed\uc2dc\uc624. \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I %1 \ube44\uc988\ub2c8\uc2a4\uac00 \uacf5\uac1c \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I %1 \uc11c\ube44\uc2a4\uac00 \uacf5\uac1c \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 %1\uc774(\uac00) \uacf5\uac1c \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1\uc774(\uac00) WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1\uc744(\ub97c) WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1\uc774(\uac00) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1\uc744(\ub97c) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1\uc774(\uac00) \uc774\ubbf8 \uc990\uaca8\ucc3e\uae30\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_QUESTION_OVERWRITE_FAVORITES=\uc990\uaca8\ucc3e\uae30\uac00 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uacb9\uccd0\uc4f0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1\uc774(\uac00) \uc0c8\ub85c \uace0\uccd0\uc84c\uc2b5\ub2c8\ub2e4.
+MSG_QUESTION_REMOVE_NODE=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c %1\uc744(\ub97c) \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=\ucc38\uc870 \uc11c\ube44\uc2a4 \uad00\ub9ac
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=<strong>\uc11c\ube44\uc2a4 \ucd94\uac00</strong> \ub2e8\ucd94\ub97c \ud074\ub9ad\ud558\uc5ec \ucc38\uc870\ub41c \uc11c\ube44\uc2a4 \ubaa9\ub85d\uc5d0 \ubc1c\uacac\ub418\uac70\ub098 \uacf5\uac1c\ub41c \uc11c\ube44\uc2a4\ub97c \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. <strong>\ucc38\uc870 \uc81c\uac70</strong> \ub2e8\ucd94\ub97c \ud074\ub9ad\ud558\uc5ec \uc120\ud0dd\ub41c \ucc38\uc870\ub97c \uc81c\uac70\ud558\uc2ed\uc2dc\uc624. \ubcc0\uacbd\ud558\ub824\uba74 \uc778\uc99d\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+FORM_LABEL_REFERENCED_SERVICES=\ucc38\uc870 \uc11c\ube44\uc2a4
+FORM_BUTTON_ADD_SERVICES=\uc11c\ube44\uc2a4 \ucd94\uac00
+FORM_BUTTON_REMOVE_REFERENCES=\ucc38\uc870 \uc81c\uac70
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E \uacc4\uc18d\ud558\uae30 \uc804\uc5d0 \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ucc38\uc870 \uc11c\ube44\uc2a4\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_NO_SERVICES=IWAB0267E \uacc4\uc18d\ud558\uae30 \uc804\uc5d0 \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \uc11c\ube44\uc2a4\ub97c \uac00\uc838\uc624\uac70\ub098 \ucc3e\uc73c\uc2ed\uc2dc\uc624.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E %1 \uc11c\ube44\uc2a4\ub97c \ucc38\uc870\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E \uc11c\ube44\uc2a4 \ucc38\uc870 %1\uc744(\ub97c) \uc81c\uac70\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I %1 \uc11c\ube44\uc2a4\ub97c \ucc38\uc870\ud588\uc2b5\ub2c8\ub2e4.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I \uc11c\ube44\uc2a4 \ucc38\uc870 %1\uc744(\ub97c) \uc81c\uac70\ud588\uc2b5\ub2c8\ub2e4.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=\uacf5\uac1c\uc790 \uc120\uc5b8\ubb38 \uad00\ub9ac
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=<strong>\uc120\uc5b8\ubb38 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38 \ubaa9\ub85d\uc5d0 \ubc1c\uacac\ub418\uac70\ub098 \uacf5\uac1c\ub41c \ube44\uc988\ub2c8\uc2a4\ub97c \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. <strong>\uc120\uc5b8\ubb38 \uc81c\uac70</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc120\ud0dd\ub41c \uc120\uc5b8\ubb38\uc744 \uc81c\uac70\ud558\uc2ed\uc2dc\uc624. <strong>\uc120\uc5b8\ubb38 \uc644\ub8cc</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc120\ud0dd\ub41c \uc120\uc5b8\ubb38\uc744 \uc644\ub8cc\ud558\uc2ed\uc2dc\uc624. \uc120\uc5b8\ubb38 \ubaa9\ub85d\uc744 \uc0c8\ub85c \uace0\uce58\ub824\uba74 <strong>\uc120\uc5b8\ubb38 \uc0c8\ub85c \uace0\uce58\uae30</strong>\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=\ubd88\uc644\uc804\ud55c \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38\uc740 \ube44\uc988\ub2c8\uc2a4 \uc18c\uc720\uc790\ub9cc \ubcfc \uc218 \uc788\uc74c\uc744 \ucc38\uace0\ud558\uc2ed\uc2dc\uc624.
+FORM_LABEL_BUSINESSES=\ube44\uc988\ub2c8\uc2a4
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=\uc120\uc5b8\ubb38 \uc0c8\ub85c \uace0\uce58\uae30
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=\uc120\uc5b8\ubb38 \uc644\ub8cc
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=\uc120\uc5b8\ubb38 \ucd94\uac00
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=\uc120\uc5b8\ubb38 \uc81c\uac70
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38\uc744 \uc0c8\ub85c \uace0\ucce4\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ubd88\uc644\uc804\ud55c \uacf5\uac1c\uc790 \uc120\uc5b8\ubb38\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E \uc774 \uc870\uc791\uc740 \ub2e4\ub978 \uad00\uacc4\uc790\uac00 \uc18c\uc720\ud55c \ube44\uc988\ub2c8\uc2a4\uc5d0\uc11c \uc218\ud589\ub420 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# GetBusinesses
+ALT_GET_BUSINESS=\ube44\uc988\ub2c8\uc2a4 \uac00\uc838\uc624\uae30
+ALT_GET_BUSINESSES=\ube44\uc988\ub2c8\uc2a4 \uac00\uc838\uc624\uae30
+NODE_NAME_SERVICE_BUSINESS=\uc11c\ube44\uc2a4 %1\uc758 \ube44\uc988\ub2c8\uc2a4
+NODE_NAME_SI_BUSINESSES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 %1\uc758 \ube44\uc988\ub2c8\uc2a4
+MSG_QUESTION_REMOVE_SERVICE_NODE=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ub178\ub4dc\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uac00\uc838\uc624\uae30
+NODE_NAME_SERVICE_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 %1\uc758 \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \uc11c\ube44\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ub178\ub4dc\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# GetServices
+ALT_GET_SERVICES=\uc11c\ube44\uc2a4 \uac00\uc838\uc624\uae30
+NODE_NAME_SI_SERVICES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 %1\uc758 \uc11c\ube44\uc2a4
+NODE_NAME_BUSINESS_SERVICES=\ube44\uc988\ub2c8\uc2a4 %1\uc758 \uc11c\ube44\uc2a4
+MSG_QUESTION_REMOVE_SI_NODE=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ub178\ub4dc\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ube44\uc988\ub2c8\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ub178\ub4dc\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# Summaries
+ALT_SUMMARY_QUERIES=\uc870\ud68c\uc758 \uc694\uc57d
+ALT_SUMMARY_BUSINESSES=\ube44\uc988\ub2c8\uc2a4\uc758 \uc694\uc57d
+ALT_SUMMARY_SERVICES=\uc11c\ube44\uc2a4\uc758 \uc694\uc57d
+ALT_SUMMARY_SERVICE_INTERFACES=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc694\uc57d
+FORM_LABEL_QUERIES=\uc870\ud68c
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=\ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c %1\uc744(\ub97c) \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\ub124\ube44\uac8c\uc774\ud130 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_NAVIGATOR_CONTENT=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud150\uce20
+FRAME_TITLE_ACTIONS_CONTAINER=\uc870\uce58 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTAINER=\ud2b9\uc131 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_TOOLBAR=\ud2b9\uc131 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_PROPERTIES_CONTENT=\ud2b9\uc131 \ucee8\ud150\uce20
+FRAME_TITLE_STATUS_CONTAINER=\uc0c1\ud0dc \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_STATUS_TOOLBAR=\uc0c1\ud0dc \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_STATUS_CONTENT=\uc0c1\ud0dc \ucee8\ud150\uce20
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI \ud398\uc774\uc9c0 \ucee8\ud150\uce20
+FRAME_TITLE_CATEGORIES_WORKAREA=\uce74\ud14c\uace0\ub9ac \uc791\uc5c5 \uc601\uc5ed
+FRAME_TITLE_CATEGORIES_TOOLBAR=\uce74\ud14c\uace0\ub9ac \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_CATEGORIES_CONTENT=\uce74\ud14c\uace0\ub9ac \ucee8\ud150\uce20
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \ube0c\ub77c\uc6b0\uc800 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_WSDL_CONTENT=WSDL \ube0c\ub77c\uc6b0\uc800 \ucee8\ud150\uce20
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=\ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=\ube44\uc988\ub2c8\uc2a4 \uacf5\uac1c \uc11c\ube44\uc2a4 \uc591\uc2dd
+FORM_TITLE_GET_FORM=\ubc1c\uacac \ubc0f \uacf5\uac1c\ub41c \uc624\ube0c\uc81d\ud2b8 \uc591\uc2dd\uc5d0\uc11c \uc120\ud0dd
+FORM_TITLE_ITEMS_SUMMARY=\ud56d\ubaa9 \uc591\uc2dd\uc758 \uc694\uc57d
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=\uacf5\uac1c\uc790 \uc120\uc5b8\ubb38 \uc591\uc2dd \uad00\ub9ac
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=\ucc38\uc870 \uc11c\ube44\uc2a4 \uc591\uc2dd \uad00\ub9ac
+FORM_TITLE_OPEN_REGISTRY=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc591\uc2dd \uc5f4\uae30
+FORM_TITLE_REGISTRY_DETAILS=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_REGISTRY_PUBLISH=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \uacf5\uac1c \uc591\uc2dd
+FORM_TITLE_REGISTRY_FIND=\ub808\uc9c0\uc2a4\ud2b8\ub9ac \ucc3e\uae30 \uc591\uc2dd
+FORM_TITLE_RESULTS=\uacb0\uacfc \uc591\uc2dd
+FORM_TITLE_SERVICE_DETAILS=\uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=\uc11c\ube44\uc2a4 \uc778\ud130\ud398\uc774\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_UNPUBLISH=\uacf5\uac1c \ucde8\uc18c \uc591\uc2dd
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_pt_BR.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_pt_BR.properties
new file mode 100644
index 000000000..4e7794b49
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_pt_BR.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=Principal do UDDI
+NODE_NAME_QUERIES_FOLDER=Consultas Executadas
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Neg\u00f3cios Publicados
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=Servi\u00e7os Publicados
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Interfaces de Servi\u00e7os Publicados
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=Abrir Registro
+FORM_LABEL_OPEN_REGISTRY_DESC=Especifique o nome e o URL de consulta do registro a ser aberto. A sele\u00e7\u00e3o de um registro favorito preencher\u00e1 automaticamente as informa\u00e7\u00f5es requeridas. Pressione <strong>Ir</strong> para abrir o registro.
+FORM_LABEL_FAVORITE_REGISTRY=Registro Favorito
+FORM_LABEL_REGISTRY_NAME=Nome de Registro
+FORM_LABEL_INQUIRY_URL=URL de Consulta
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Verificar categorias definidas pelo usu\u00e1rio
+DEFAULT_REGISTRY_NAME=Registro de Teste do UDDI IBM
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Digite um nome de registro v\u00e1lido.
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Digite um URL de consulta v\u00e1lido.
+MSG_INFO_REGISTRY_OPENED=IWAB0139I O registro nomeado %1 localizado em %2 foi aberto com \u00eaxito.
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=O registro \u00e9 o WebSphere UDDI?
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere Private UDDI Registry
+FORM_LABEL_REGISTRY_HOST=Host
+FORM_LABEL_REGISTRY_PORT=Porta
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Clique aqui</a> para carregar os dados dessa categoria.
+FORM_CONTROL_TITLE_CATEGORY_FILE=Nome do arquivo de dados da categoria
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I Nenhuma categoria definida pelo usu\u00e1rio detectada.
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Os dados de categoria para %1 n\u00e3o est\u00e3o dispon\u00edveis ou s\u00e3o inv\u00e1lidos.
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Os dados para a categoria definida pelo usu\u00e1rio %1 foram carregados com \u00eaxito.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Arquivo de dados inv\u00e1lido para categoria definida pelo usu\u00e1rio %1. Uma chave de categoria '%2' foi localizada, mas esperava-se '%3'.
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Formato desconhecido em linha: %1 do arquivo de dados para a categoria definida pelo usu\u00e1rio %2. A linha \u00e9: "%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Arquivo de dados inv\u00e1lido para categoria definida pelo usu\u00e1rio %1.
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Ocorreu um erro ao salvar dados para a categoria %1. Texto de exce\u00e7\u00e3o: %2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=Navegador da Categoria
+ALT_CATEGORIES=Categorias
+
+# Details
+ALT_REGISTRY_DETAILS=Detalhes do Registro
+ALT_BUSINESS_DETAILS=Detalhes do Neg\u00f3cio
+ALT_SERVICE_DETAILS=Detalhes do Servi\u00e7o
+ALT_SERVICE_INTERFACE_DETAILS=Detalhes da Interface de Servi\u00e7o
+FORM_LABEL_DETAILS_EDITABLE=Os detalhes para <strong>%1</strong> s\u00e3o mostrados a seguir. Alguns itens podem ser inclu\u00eddos, removidos ou alterados. A autentica\u00e7\u00e3o pode ser necess\u00e1ria para altera\u00e7\u00f5es. Outras a\u00e7\u00f5es est\u00e3o listadas na parte inferior desta p\u00e1gina.
+
+# Get
+ALT_GET=Obter
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Valor do nome
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Valor da descri\u00e7\u00e3o
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Nome da chave de categoria
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Valor da chave de categoria
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Nome da chave do identificador
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Valor da chave do identificador
+FORM_CONTROL_TITLE_DISCOVERY_URL=URL do Discovery
+
+# Find actions
+ALT_FIND=Localizar
+ALT_SUBQUERY=Localizar Subconsulta %1
+FORM_LABEL_QUERY_NAME=Nome dessa consulta
+DEFAULT_QUERY_NAME=resultados da consulta
+DEFAULT_SUBQUERY_NAME=%1 - subconsulta %2
+FORM_LABEL_SEARCH_FOR=Pesquisar
+FORM_OPTION_BUSINESSES=Neg\u00f3cios
+FORM_OPTION_SERVICES=Servi\u00e7os
+FORM_OPTION_SERVICE_INTERFACES=Interfaces de Servi\u00e7o
+FORM_LABEL_SEARCH_TYPE=Tipo de pesquisa
+FORM_RADIO_SIMPLE=Simples
+FORM_RADIO_ADVANCED=Avan\u00e7ado
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Digite o nome parcial ou completo de um neg\u00f3cio para procura. O s\u00edmbolo '%' pode ser utilizado como caractere curinga que corresponda a qualquer caractere. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_FIND_ADVANCED_DESC=Digite valores para um ou mais dos par\u00e2metros listados a seguir. O s\u00edmbolo '%' pode ser utilizado como um caractere curinga que corresponda a qualquer caractere no campo Nome da tabela Nomes. Autentica\u00e7\u00e3o pode ser necess\u00e1ria. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=Digite o UUID do neg\u00f3cio a ser procurado. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_NAMES=Nomes
+FORM_LINK_ADD=Incluir
+FORM_LINK_GET=Obter
+FORM_LINK_FIND=Localizar
+FORM_LINK_REMOVE=Remover
+FORM_LABEL_OWNED=Possu\u00eddo
+FORM_LABEL_PUBLISH_URL=URL de Publica\u00e7\u00e3o
+FORM_LABEL_USERID=ID do Usu\u00e1rio
+FORM_LABEL_PASSWORD=Senha
+FORM_LABEL_LANGUAGE=Idioma
+FORM_LABEL_NAME= Nome
+FORM_LABEL_DESCRIPTION=Descri\u00e7\u00e3o
+FORM_OPTION_LANGUAGE_EN=ingl\u00eas
+FORM_OPTION_LANGUAGE_AA=afar
+FORM_OPTION_LANGUAGE_AB=abcaziano
+FORM_OPTION_LANGUAGE_AF=afric\u00e2ner
+FORM_OPTION_LANGUAGE_AM=am\u00e1rico
+FORM_OPTION_LANGUAGE_AR=\u00e1rabe
+FORM_OPTION_LANGUAGE_AS=assam\u00eas
+FORM_OPTION_LANGUAGE_AY=aimar\u00e1
+FORM_OPTION_LANGUAGE_AZ=azerbaijano
+FORM_OPTION_LANGUAGE_BA=bashkir
+FORM_OPTION_LANGUAGE_BE=bielo-russo
+FORM_OPTION_LANGUAGE_BG=b\u00falgaro
+FORM_OPTION_LANGUAGE_BH=biari
+FORM_OPTION_LANGUAGE_BI=bislama
+FORM_OPTION_LANGUAGE_BN=bengali; bangla
+FORM_OPTION_LANGUAGE_BO=tibetano
+FORM_OPTION_LANGUAGE_BR=bret\u00e3o
+FORM_OPTION_LANGUAGE_CA=catal\u00e3o
+FORM_OPTION_LANGUAGE_CO=c\u00f3rsego
+FORM_OPTION_LANGUAGE_CZ=tcheco
+FORM_OPTION_LANGUAGE_CY=gal\u00eas
+FORM_OPTION_LANGUAGE_DA=dinamarqu\u00eas
+FORM_OPTION_LANGUAGE_DE=alem\u00e3o
+FORM_OPTION_LANGUAGE_DZ=zonc\u00e1
+FORM_OPTION_LANGUAGE_EL=grego
+FORM_OPTION_LANGUAGE_EO=esperanto
+FORM_OPTION_LANGUAGE_ES=espanhol
+FORM_OPTION_LANGUAGE_ET=estoniano
+FORM_OPTION_LANGUAGE_EU=basco
+FORM_OPTION_LANGUAGE_FA=persa
+FORM_OPTION_LANGUAGE_FI=finland\u00eas
+FORM_OPTION_LANGUAGE_FJ=fijiano
+FORM_OPTION_LANGUAGE_FO=faro\u00eas
+FORM_OPTION_LANGUAGE_FR=franc\u00eas
+FORM_OPTION_LANGUAGE_FY=fris\u00e3o
+FORM_OPTION_LANGUAGE_GA=irland\u00eas
+FORM_OPTION_LANGUAGE_GD=ga\u00e9lico escoc\u00eas
+FORM_OPTION_LANGUAGE_GL=gal\u00edcio
+FORM_OPTION_LANGUAGE_GN=guarani
+FORM_OPTION_LANGUAGE_GU=gujarati
+FORM_OPTION_LANGUAGE_HA=haussaa
+FORM_OPTION_LANGUAGE_HI=hindi
+FORM_OPTION_LANGUAGE_HR=croata
+FORM_OPTION_LANGUAGE_HU=h\u00fangaro
+FORM_OPTION_LANGUAGE_HY=arm\u00eanio
+FORM_OPTION_LANGUAGE_IA=Interl\u00edngua
+FORM_OPTION_LANGUAGE_IE=Interl\u00edng\u00fce
+FORM_OPTION_LANGUAGE_IK=inupiak
+FORM_OPTION_LANGUAGE_IN=bahasa indon\u00e9sio
+FORM_OPTION_LANGUAGE_IS=island\u00eas
+FORM_OPTION_LANGUAGE_IT=italiano
+FORM_OPTION_LANGUAGE_IW=hebraico
+FORM_OPTION_LANGUAGE_JA=japon\u00eas
+FORM_OPTION_LANGUAGE_JI=i\u00eddiche
+FORM_OPTION_LANGUAGE_JW=javan\u00eas
+FORM_OPTION_LANGUAGE_KA=georgiano
+FORM_OPTION_LANGUAGE_KK=cazaque
+FORM_OPTION_LANGUAGE_KL=groenland\u00eas
+FORM_OPTION_LANGUAGE_KM=khmer
+FORM_OPTION_LANGUAGE_KN=kannada
+FORM_OPTION_LANGUAGE_KO=coreano
+FORM_OPTION_LANGUAGE_KS=cachemiri
+FORM_OPTION_LANGUAGE_KU=curdo
+FORM_OPTION_LANGUAGE_KY=quirguiz
+FORM_OPTION_LANGUAGE_LA=latim
+FORM_OPTION_LANGUAGE_LN=lingala
+FORM_OPTION_LANGUAGE_LO=lao
+FORM_OPTION_LANGUAGE_LT=lituano
+FORM_OPTION_LANGUAGE_LV=let\u00e3o
+FORM_OPTION_LANGUAGE_MG=malgaxe
+FORM_OPTION_LANGUAGE_MI=maori
+FORM_OPTION_LANGUAGE_MK=maced\u00f4nio
+FORM_OPTION_LANGUAGE_ML=malaiala
+FORM_OPTION_LANGUAGE_MN=mongol
+FORM_OPTION_LANGUAGE_MO=mold\u00e1vio
+FORM_OPTION_LANGUAGE_MR=marata
+FORM_OPTION_LANGUAGE_MS=malaio
+FORM_OPTION_LANGUAGE_MT=malt\u00eas
+FORM_OPTION_LANGUAGE_MY=birman\u00eas
+FORM_OPTION_LANGUAGE_NA=nauruano
+FORM_OPTION_LANGUAGE_NE=nepal\u00eas
+FORM_OPTION_LANGUAGE_NL=holand\u00eas
+FORM_OPTION_LANGUAGE_NO=noruegu\u00eas
+FORM_OPTION_LANGUAGE_OC=occit\u00e2nico
+FORM_OPTION_LANGUAGE_OM=(afan) oromo
+FORM_OPTION_LANGUAGE_OR=oriya
+FORM_OPTION_LANGUAGE_PA=punjabi
+FORM_OPTION_LANGUAGE_PL=polon\u00eas
+FORM_OPTION_LANGUAGE_PS=pashtu
+FORM_OPTION_LANGUAGE_PT=portugu\u00eas
+FORM_OPTION_LANGUAGE_QU=qu\u00edchua
+FORM_OPTION_LANGUAGE_RM=reto-romano
+FORM_OPTION_LANGUAGE_RN=kirundi
+FORM_OPTION_LANGUAGE_RO=romeno
+FORM_OPTION_LANGUAGE_RU=russo
+FORM_OPTION_LANGUAGE_RW=kinayarwanda
+FORM_OPTION_LANGUAGE_SA=s\u00e2nscrito
+FORM_OPTION_LANGUAGE_SD=sindi
+FORM_OPTION_LANGUAGE_SG=sang\u00f4
+FORM_OPTION_LANGUAGE_SH=s\u00e9rvio-croata
+FORM_OPTION_LANGUAGE_SI=cingal\u00eas
+FORM_OPTION_LANGUAGE_SK=eslovaco
+FORM_OPTION_LANGUAGE_SL=eslov\u00eanio
+FORM_OPTION_LANGUAGE_SM=samoano
+FORM_OPTION_LANGUAGE_SN=shona
+FORM_OPTION_LANGUAGE_SO=somali
+FORM_OPTION_LANGUAGE_SQ=alban\u00eas
+FORM_OPTION_LANGUAGE_SR=s\u00e9rvio
+FORM_OPTION_LANGUAGE_SS=siswati
+FORM_OPTION_LANGUAGE_ST=sesotho
+FORM_OPTION_LANGUAGE_SU=sundan\u00eas
+FORM_OPTION_LANGUAGE_SV=sueco
+FORM_OPTION_LANGUAGE_SW=sua\u00edli
+FORM_OPTION_LANGUAGE_TA=t\u00e2mil
+FORM_OPTION_LANGUAGE_TE=telugu
+FORM_OPTION_LANGUAGE_TG=tajik
+FORM_OPTION_LANGUAGE_TH=tai
+FORM_OPTION_LANGUAGE_TI=tigr\u00ednia
+FORM_OPTION_LANGUAGE_TK=turcomano
+FORM_OPTION_LANGUAGE_TL=tagalog
+FORM_OPTION_LANGUAGE_TN=setswana
+FORM_OPTION_LANGUAGE_TO=tongan\u00eas
+FORM_OPTION_LANGUAGE_TR=turco
+FORM_OPTION_LANGUAGE_TS=tsonga
+FORM_OPTION_LANGUAGE_TT=t\u00e1rtaro
+FORM_OPTION_LANGUAGE_TW=twi
+FORM_OPTION_LANGUAGE_UK=ucraniano
+FORM_OPTION_LANGUAGE_UR=urdu
+FORM_OPTION_LANGUAGE_UZ=uzbeque
+FORM_OPTION_LANGUAGE_VI=vietnamita
+FORM_OPTION_LANGUAGE_VO=volapuk
+FORM_OPTION_LANGUAGE_WO=wolof
+FORM_OPTION_LANGUAGE_XH=xhosa
+FORM_OPTION_LANGUAGE_YO=yorub\u00e1
+FORM_OPTION_LANGUAGE_ZH=chin\u00eas
+FORM_OPTION_LANGUAGE_ZU=zulu
+FORM_LABEL_EXACT_NAME_MATCH=Correspond\u00eancia exata
+FORM_LABEL_CASE_SENSITIVE_MATCH=Distin\u00e7\u00e3o entre mai\u00fasculas e min\u00fasculas
+FORM_LABEL_SOUNDEX=Soa como
+FORM_LABEL_IDENTIFIERS=Identificadores
+FORM_LABEL_IDENTIFIER_TYPE=Tipo
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Registro de Thomas
+
+FORM_LABEL_KEY_NAME=Nome principal
+FORM_LABEL_KEY_VALUE=Valor de chave
+FORM_LABEL_CATEGORIES=Categorias
+FORM_LABEL_CATEGORY_TYPE=Tipo
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=Comunidade dW
+FORM_LABEL_BUSINESS_CATEGORIES=Comparar com:
+FORM_OPTION_BUSINESSES_ONLY=Apenas neg\u00f3cios
+FORM_OPTION_SERVICES_ONLY=Apenas servi\u00e7os
+FORM_OPTION_BOTH=Neg\u00f3cios e Servi\u00e7os
+FORM_LABEL_DISCOVERYURLS=URLs do Discovery
+FORM_LABEL_DISCOVERYURL=URL do Discovery
+FORM_LABEL_FINDQUALIFIERS=Localizar Qualificadores
+FORM_LABEL_COMBINE_KEYS=Combinar chaves:
+FORM_OPTION_ANDALLKEYS=And
+FORM_OPTION_ORALLKEYS=Or
+FORM_OPTION_ORLIKEKEYS=Or Like
+FORM_LABEL_SORT_BY_NAME=Classificar por nome:
+FORM_RADIO_SORT_ASC=Crescente
+FORM_RADIO_SORT_DESC=Decrescente
+FORM_LABEL_SORT_BY_DATE=Classificar por data:
+FORM_LABEL_MAX_SEARCH_SET=Tamanho m\u00e1ximo do conjunto de procura:
+FORM_LABEL_MAX_RESULTS=N\u00famero m\u00e1ximo de resultados:
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Digite o nome parcial ou completo de um servi\u00e7o para procura. O s\u00edmbolo '%' pode ser utilizado como caractere curinga que corresponda a qualquer caractere. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_FIND_SERVICE_UUID_DESC=Digite o UUID do servi\u00e7o a ser procurado. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Digite o nome parcial ou completo de uma interface de servi\u00e7o para procura. O s\u00edmbolo '%' pode ser utilizado como caractere curinga que corresponda a qualquer caractere. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Digite o UUID da interface servi\u00e7o a ser procurado. Pressione <strong>Ir</strong> para realizar a pesquisa.
+FORM_LABEL_SERVICE_INTERFACES=Interfaces de Servi\u00e7o
+FORM_LABEL_UUID_KEY=Chave do UUID:
+FORM_LABEL_USE_SERVICE=Utilizar servi\u00e7o
+FORM_LABEL_SERVICE=Servi\u00e7o
+FORM_LABEL_BUSINESS=Neg\u00f3cio
+FORM_LABEL_PUBLISH_ASSERTIONS=Afirmativas do Publicador
+FORM_LABEL_DIRECTION=Dire\u00e7\u00e3o
+FORM_LABEL_FROM_KEY=Da Chave
+FORM_LABEL_TO_KEY=Para a Chave
+FORM_LABEL_STATUS=Status
+FORM_LABEL_ASSERTION_TYPE=Tipo de Afirmativa
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Pai-Filho
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Ponto-Ponto
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identidade
+FORM_LABEL_ASSERTION_DIRETION_DESC=A dire\u00e7\u00e3o <strong>De</strong> criar\u00e1 uma afirmativa do publicador a partir deste neg\u00f3cio para os neg\u00f3cios acima. A dire\u00e7\u00e3o <strong>Para</strong> criar\u00e1 uma afirmativa do publicador a partir dos neg\u00f3cios acima para este neg\u00f3cio.
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=Isto
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Digite um nome v\u00e1lido para a consulta.
+MSG_ERROR_INVALID_NAMES=IWAB0141E Digite uma s\u00e9rie de nomes v\u00e1lidos.
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Digite um URL de publica\u00e7\u00e3o v\u00e1lido.
+MSG_ERROR_INVALID_USERID=IWAB0143E Digite um ID do usu\u00e1rio v\u00e1lido.
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Digite um tamanho v\u00e1lido para o conjunto de procura m\u00e1ximo.
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Digite um tamanho v\u00e1lido para o n\u00famero m\u00e1ximo de resultados.
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I N\u00famero de neg\u00f3cios localizados: %1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E Nenhum neg\u00f3cio localizado.
+MSG_INFO_SERVICES_FOUND=IWAB0149I N\u00famero de servi\u00e7os localizados: %1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E Nenhum servi\u00e7o localizado.
+MSG_ERROR_SINGLE_ITEM=IWAB0151E Selecione apenas um item.
+MSG_QUESTION_ITEM_REPLACEMENT=A sele\u00e7\u00e3o substituir\u00e1 um item que j\u00e1 est\u00e1 no destino. Deseja continuar?
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I N\u00famero de interfaces de servi\u00e7o localizadas: %1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E Nenhuma interface de servi\u00e7o localizada.
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E Selecione pelo menos um item.
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Digite uma chave UUID v\u00e1lida.
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E O nome da consulta da subconsulta n\u00e3o pode ser igual ao do originador.
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Nenhum item do tipo especificado foi publicado ou descoberto.
+
+# Results
+ALT_QUERY_RESULTS=Resultados da Consulta
+FORM_LABEL_SUBQUERY=Os resultados poder\u00e3o ser utilizados como entradas de outra opera\u00e7\u00e3o. Clique no link <strong>destino</strong> na parte superior para ver a opera\u00e7\u00e3o. Os resultados selecionados podem ser utilizados na opera\u00e7\u00e3o, clicando no bot\u00e3o <strong>Transferir</strong>.
+FORM_LABEL_QUERY=Selecione um resultado para ver detalhes adicionais ou selecione um conjunto de resultados e clique em um bot\u00e3o para executar uma opera\u00e7\u00e3o.
+FORM_LINK_TARGET=destino
+FORM_BUTTON_TRANSFER=Transferir
+FORM_BUTTON_REFRESH=Atualizar
+FORM_BUTTON_ADD_TO_FAVORITES=Incluir em Favoritos
+FORM_BUTTON_UNPUBLISH=Cancelar Publica\u00e7\u00e3o
+FORM_BUTTON_CLEAR=Limpar
+
+# Publish actions
+ALT_PUBLISH=Publicar
+FORM_LABEL_PUBLISH=Publicar:
+FORM_OPTION_BUSINESS=Neg\u00f3cio
+FORM_OPTION_SERVICE=Servi\u00e7o
+FORM_OPTION_SERVICE_INTERFACE=Interface de Servi\u00e7o
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Digite um nome e uma descri\u00e7\u00e3o opcional para o neg\u00f3cio a ser publicado. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Forne\u00e7a um nome para o neg\u00f3cio a ser publicado. Outros par\u00e2metros tamb\u00e9m podem ser especificados. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Obtenha ou localize um neg\u00f3cio e, em seguida, forne\u00e7a o URL, o nome e a descri\u00e7\u00e3o opcional do WSDL para o servi\u00e7o a ser publicado. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Obtenha ou localize um neg\u00f3cio e, em seguida, forne\u00e7a o URL e um nome do do WSDL para o servi\u00e7o a ser publicado. Outros par\u00e2metros tamb\u00e9m podem ser especificados. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Forne\u00e7a o URL, o nome e uma descri\u00e7\u00e3o opcional do WSDL para o servi\u00e7o a ser publicado. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Forne\u00e7a o URL e um nome do WSDL para o servi\u00e7o a ser publicado. Outros par\u00e2metros tamb\u00e9m podem ser especificados. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Digite um URL, nome e descri\u00e7\u00e3o opcional do WSDL para a interface de servi\u00e7o a ser publicada. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Forne\u00e7a o URL e o nome do WSDL para a interface de servi\u00e7o a ser publicada. Outros par\u00e2metros tamb\u00e9m podem ser especificados. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+FORM_LABEL_PUBLISH_FORM=Formato da publica\u00e7\u00e3o
+FORM_LABEL_DESCRIPTION=Descri\u00e7\u00e3o
+FORM_LABEL_DESCRIPTIONS=Descri\u00e7\u00f5es
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I O neg\u00f3cio %1 foi publicado com \u00eaxito.
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I O servi\u00e7o %1 foi publicado com \u00eaxito.
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I A interface de servi\u00e7o %1 foi publicada com \u00eaxito.
+MSG_ERROR_INVALID_NAME=IWAB0161E Digite um nome v\u00e1lido.
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E Selecione um idioma que n\u00e3o esteja em branco %1 na linha %2. Apenas a primeira linha pode ter um idioma em branco.
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Altere o idioma para %1 na linha %2. O atual j\u00e1 est\u00e1 em uso.
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Digite um %1 v\u00e1lido na linha %2
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Digite um URL do WSDL v\u00e1lido.
+MSG_ERROR_NO_NAMES=IWAB0254E Inclua pelo menos um nome.
+MSG_ERROR_INVALID_SERVICE=IWAB0255E Forne\u00e7a um servi\u00e7o v\u00e1lido.
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E Forne\u00e7a um neg\u00f3cio v\u00e1lido.
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=Servi\u00e7o de Publica\u00e7\u00e3o
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=Navegador do WSDL - %1
+FORM_LABEL_WSDL_SOURCE=Selecionar uma origem do WSDL:
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Projetos da Web
+FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoritos
+FORM_LABEL_WEB_PROJECT=Projeto da Web
+FORM_LABEL_WSDL_URL=URL do WSDL
+ALT_WSDL_BROWSER=Navegador do WSDL
+
+# Details
+FORM_LINK_EDIT=Editar
+FORM_LINK_CANCEL=Cancelar
+FORM_LABEL_BUSINESS_KEY=Chave de Neg\u00f3cios
+FORM_LABEL_SERVICE_KEY=Chave de Servi\u00e7o
+FORM_LABEL_SERVICE_INTERFACE_KEY=Chave TModel
+FORM_LABEL_USER_DEFINED_CATEGORIES=Categorias Definidas pelo Usu\u00e1rio
+FORM_LABEL_CHECKED=Verificado
+FORM_LABEL_FILE=Arquivo
+MSG_QUESTION_PUBLISH_ITEM=O item n\u00e3o p\u00f4de ser localizado no registro.Deseja public\u00e1-lo?
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=O servi\u00e7o e seu neg\u00f3cio n\u00e3o puderam ser localizados no registro. Continuar a publica\u00e7\u00e3o?
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I O neg\u00f3cio %1 foi atualizado com \u00eaxito.
+MSG_INFO_SERVICE_UPDATED=IWAB0258I O servi\u00e7o %1 foi atualizado com \u00eaxito.
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I A Interface de Servi\u00e7o %1 foi atualizada com \u00eaxito.
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I O registro %1 foi atualizado com \u00eaxito.
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=Cancelar Publica\u00e7\u00e3o do Neg\u00f3cio
+ALT_UNPUBLISH_SERVICE=Cancelar Publica\u00e7\u00e3o do Servi\u00e7o
+ALT_UNPUBLISH_SERVICE_INTERFACE=Cancelar Publica\u00e7\u00e3o da Interface de Servi\u00e7o
+FORM_LABEL_UNPUBLISH_DESC=Pressione <strong>Ir</strong> para cancelar a publica\u00e7\u00e3o desse projeto. Autentica\u00e7\u00e3o pode ser necess\u00e1ria.
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I O cancelamento da publica\u00e7\u00e3o do neg\u00f3cio %1 ocorreu com \u00eaxito.
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I O cancelamento da publica\u00e7\u00e3o do servi\u00e7o %1 ocorreu com \u00eaxito.
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I O cancelamento da publica\u00e7\u00e3o da interface de servi\u00e7o %1 ocorreu com \u00eaxito.
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=Incluir na P\u00e1gina do WSDL
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 foi inclu\u00eddo com \u00eaxito na p\u00e1gina do WSDL.
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 n\u00e3o p\u00f4de ser inclu\u00eddo na p\u00e1gina do WSDL.
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=Incluir em Favoritos
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 foi inclu\u00eddo com \u00eaxito em favoritos.
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 n\u00e3o p\u00f4de ser inclu\u00eddo em favoritos.
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 j\u00e1 existe em favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=Esse favorito j\u00e1 existe. Deseja substituir?
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I %1 atualizado.
+MSG_QUESTION_REMOVE_NODE=%1 n\u00e3o p\u00f4de ser localizado no registro. Deseja limp\u00e1-lo?
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=Gerenciar Servi\u00e7os Referidos
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=Inclua servi\u00e7os descobertos ou publicados na lista de servi\u00e7os referidos, clicando no bot\u00e3o <strong>Incluir Servi\u00e7os</strong>. Remova as refer\u00eancias selecionadas, clicando no bot\u00e3o <strong>Remover Refer\u00eancias</strong>. A autentica\u00e7\u00e3o pode ser necess\u00e1ria para altera\u00e7\u00f5es.
+FORM_LABEL_REFERENCED_SERVICES=Servi\u00e7os Referidos
+FORM_BUTTON_ADD_SERVICES=Incluir Servi\u00e7os
+FORM_BUTTON_REMOVE_REFERENCES=Remover Refer\u00eancias
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Selecione pelo menos um servi\u00e7o referido antes de continuar.
+MSG_ERROR_NO_SERVICES=IWAB0267E Obtenha ou localize pelo menos um servi\u00e7o antes de continuar.
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E O servi\u00e7o %1 n\u00e3o p\u00f4de ser referido.
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E A refer\u00eancia de servi\u00e7o %1 n\u00e3o p\u00f4de ser removida.
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I O servi\u00e7o %1 foi referido com \u00eaxito.
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I a refer\u00eancia de servi\u00e7o %1 foi removida com \u00eaxito.
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=Gerenciar Afirmativas do Publicador
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=Incluir neg\u00f3cios descobertos ou publicados na lista de afirmativas do publicador, clicando em <strong>Incluir Afirmativas</strong>. Remova as afirmativas selecionadas, clicando no bot\u00e3o <strong>Remover Afirmativas</strong>. Complete as afirmativas selecionadas, clicando em <strong>Completar Afirmativas</strong>. Clique em <strong>Atualizar Afirmativas</strong> para atualizar a lista de afirmativas.
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Observe que afirmativas incompletas do servidor est\u00e3o vis\u00edveis apenas para o propriet\u00e1rio do neg\u00f3cio.
+FORM_LABEL_BUSINESSES=Neg\u00f3cios
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Atualizar Afirmativas
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Completar Afirmativas
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=Incluir Afirmativas
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Remover Afirmativas
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I As Afirmativas do Publicador foram atualizadas.
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E Selecione pelo menos uma afirmativa do publicador incompleta.
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Esta opera\u00e7\u00e3o n\u00e3o pode ser executada em um neg\u00f3cio pertencente a outra pessoa.
+
+# GetBusinesses
+ALT_GET_BUSINESS=Obter Neg\u00f3cio
+ALT_GET_BUSINESSES=Obter Neg\u00f3cios
+NODE_NAME_SERVICE_BUSINESS=Neg\u00f3cio para o servi\u00e7o %1
+NODE_NAME_SI_BUSINESSES=Neg\u00f3cios para a interface de servi\u00e7o %1
+MSG_QUESTION_REMOVE_SERVICE_NODE=O servi\u00e7o n\u00e3o p\u00f4de ser localizado no registro. Deseja remover este n\u00f3?
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=Obter Interfaces de Servi\u00e7o
+NODE_NAME_SERVICE_SERVICE_INTERFACES=Interfaces de servi\u00e7o para o servi\u00e7o %1
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=O servi\u00e7o n\u00e3o p\u00f4de ser localizado no registro. Deseja remover este n\u00f3?
+
+# GetServices
+ALT_GET_SERVICES=Obter Servi\u00e7os
+NODE_NAME_SI_SERVICES=Servi\u00e7os para a interface de servi\u00e7o %1
+NODE_NAME_BUSINESS_SERVICES=Servi\u00e7os para o neg\u00f3cio %1
+MSG_QUESTION_REMOVE_SI_NODE=A interface de servi\u00e7o n\u00e3o p\u00f4de ser localizada no registro. Deseja remover este n\u00f3?
+MSG_QUESTION_REMOVE_BUSINESS_NODE=O neg\u00f3cio n\u00e3o p\u00f4de ser localizado no registro. Deseja remover este n\u00f3?
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 n\u00e3o p\u00f4de ser localizado no registro.
+
+# Summaries
+ALT_SUMMARY_QUERIES=Resumo de Consultas
+ALT_SUMMARY_BUSINESSES=Resumo de Neg\u00f3cios
+ALT_SUMMARY_SERVICES=Resumo de Servi\u00e7os
+ALT_SUMMARY_SERVICE_INTERFACES=Resumo de Interfaces de Servi\u00e7o
+FORM_LABEL_QUERIES=Consultas
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 n\u00e3o p\u00f4de ser localizado no registro. Deseja remov\u00ea-lo?
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Cont\u00eainer do Navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de Ferramentas do Navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Conte\u00fado do Navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Cont\u00eainer de A\u00e7\u00f5es
+FRAME_TITLE_PROPERTIES_CONTAINER=Cont\u00eainer de Propriedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de Ferramentas de Propriedades
+FRAME_TITLE_PROPERTIES_CONTENT=Conte\u00fado das Propriedades
+FRAME_TITLE_STATUS_CONTAINER=Cont\u00eainer de Status
+FRAME_TITLE_STATUS_TOOLBAR=Barra de Ferramentas de Status
+FRAME_TITLE_STATUS_CONTENT=Conte\u00fado do Status
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=Conte\u00fado da P\u00e1gina do UDDI
+FRAME_TITLE_CATEGORIES_WORKAREA=\u00c1rea de Trabalho da Categoria
+FRAME_TITLE_CATEGORIES_TOOLBAR=Barra de Ferramentas das Categorias
+FRAME_TITLE_CATEGORIES_CONTENT=Conte\u00fado das Categorias
+FRAME_TITLE_WSDL_TOOLBAR=Barras de Ferramentas do Navegador do WSDL
+FRAME_TITLE_WSDL_CONTENT=Conte\u00fado do Navegador do WSDL
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=Formul\u00e1rio de Detalhes do Neg\u00f3cio
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Formul\u00e1rio do Servi\u00e7o de Publica\u00e7\u00e3o do Neg\u00f3cio
+FORM_TITLE_GET_FORM=Selecionar no Formul\u00e1rio de Objetos Descobertos e Publicados
+FORM_TITLE_ITEMS_SUMMARY=Resumo do Formul\u00e1rio de Itens
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Gerenciar Formul\u00e1rio de Afirmativas do Publicador
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=Gerenciar Formul\u00e1rio de Servi\u00e7os Referidos
+FORM_TITLE_OPEN_REGISTRY=Abrir Formul\u00e1rio de Registro
+FORM_TITLE_REGISTRY_DETAILS=Formul\u00e1rio de Detalhes do Registro
+FORM_TITLE_REGISTRY_PUBLISH=Formul\u00e1rio de Publica\u00e7\u00e3o do Registro
+FORM_TITLE_REGISTRY_FIND=Formul\u00e1rio de Localiza\u00e7\u00e3o do Registro
+FORM_TITLE_RESULTS=Formul\u00e1rio de Resultados
+FORM_TITLE_SERVICE_DETAILS=Formul\u00e1rio de Detalhes do Servi\u00e7o
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=Formul\u00e1rio de Detalhes da Interface de Servi\u00e7o
+FORM_TITLE_UNPUBLISH=Cancelar Publica\u00e7\u00e3o do Formul\u00e1rio
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_CN.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_CN.properties
new file mode 100644
index 000000000..cfa0d5e7d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_CN.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI \u4e3b\u8981
+NODE_NAME_QUERIES_FOLDER=\u6267\u884c\u7684\u67e5\u8be2
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=\u53d1\u5e03\u7684\u4e1a\u52a1
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=\u53d1\u5e03\u7684\u670d\u52a1
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=\u53d1\u5e03\u7684\u670d\u52a1\u63a5\u53e3
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=\u6253\u5f00\u6ce8\u518c\u4e2d\u5fc3
+FORM_LABEL_OPEN_REGISTRY_DESC=\u6307\u5b9a\u8981\u6253\u5f00\u7684\u6ce8\u518c\u4e2d\u5fc3\u7684\u540d\u79f0\u548c\u67e5\u8be2 URL\u3002\u9009\u62e9\u6536\u85cf\u5939\u6ce8\u518c\u4e2d\u5fc3\u5c06\u81ea\u52a8\u586b\u5145\u5fc5\u9700\u7684\u4fe1\u606f\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6253\u5f00\u6ce8\u518c\u4e2d\u5fc3\u3002
+FORM_LABEL_FAVORITE_REGISTRY=\u6536\u85cf\u5939\u6ce8\u518c\u4e2d\u5fc3
+FORM_LABEL_REGISTRY_NAME=\u6ce8\u518c\u4e2d\u5fc3\u540d\u79f0
+FORM_LABEL_INQUIRY_URL=\u67e5\u8be2 URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=\u68c0\u67e5\u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b
+DEFAULT_REGISTRY_NAME=IBM UDDI \u6d4b\u8bd5\u6ce8\u518c\u4e2d\u5fc3
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E \u8f93\u5165\u6709\u6548\u7684\u6ce8\u518c\u4e2d\u5fc3\u540d\u79f0\u3002
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E \u8f93\u5165\u6709\u6548\u7684\u67e5\u8be2 URL\u3002
+MSG_INFO_REGISTRY_OPENED=IWAB0139I \u5df2\u6210\u529f\u6253\u5f00\u4f4d\u4e8e %2 \u7684\u540d\u4e3a %1 \u7684\u6ce8\u518c\u4e2d\u5fc3\u3002
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=\u662f WebSphere UDDI \u6ce8\u518c\u4e2d\u5fc3\u5417\uff1f
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere \u4e13\u7528 UDDI \u6ce8\u518c\u4e2d\u5fc3
+FORM_LABEL_REGISTRY_HOST=\u4e3b\u673a
+FORM_LABEL_REGISTRY_PORT=\u7aef\u53e3
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">\u5355\u51fb\u6b64\u5904</a>\u4ee5\u88c5\u5165\u6b64\u7c7b\u522b\u7684\u6570\u636e\u3002
+FORM_CONTROL_TITLE_CATEGORY_FILE=\u7c7b\u522b\u6570\u636e\u6587\u4ef6\u540d
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I \u672a\u68c0\u6d4b\u5230\u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b\u3002
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I %1 \u7684\u7c7b\u522b\u6570\u636e\u4e0d\u53ef\u7528\u6216\u65e0\u6548\u3002
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I \u5df2\u6210\u529f\u88c5\u5165\u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b %1 \u7684\u6570\u636e\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E \u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b %1 \u7684\u6570\u636e\u6587\u4ef6\u65e0\u6548\u3002\u53d1\u73b0\u7c7b\u522b\u952e\u201c%2\u201d\uff0c\u4f46\u7c7b\u522b\u952e\u5e94\u8be5\u4e3a\u201c%3\u201d\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E \u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b %2 \u7684\u6570\u636e\u6587\u4ef6\u7684\u7b2c %1 \u884c\u683c\u5f0f\u672a\u77e5\u3002\u8be5\u884c\u662f\uff1a\u201c%3\u201d
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E \u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b %1 \u7684\u6570\u636e\u6587\u4ef6\u65e0\u6548\u3002
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E \u4fdd\u5b58\u7c7b\u522b %1 \u7684\u6570\u636e\u65f6\u53d1\u751f\u9519\u8bef\u3002\u5f02\u5e38\u6587\u672c\uff1a%2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=\u7c7b\u522b\u6d4f\u89c8\u5668
+ALT_CATEGORIES=\u7c7b\u522b
+
+# Details
+ALT_REGISTRY_DETAILS=\u6ce8\u518c\u4e2d\u5fc3\u8be6\u7ec6\u4fe1\u606f
+ALT_BUSINESS_DETAILS=\u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f
+ALT_SERVICE_DETAILS=\u670d\u52a1\u8be6\u7ec6\u4fe1\u606f
+ALT_SERVICE_INTERFACE_DETAILS=\u670d\u52a1\u63a5\u53e3\u8be6\u7ec6\u4fe1\u606f
+FORM_LABEL_DETAILS_EDITABLE=<strong>%1</strong> \u7684\u8be6\u7ec6\u4fe1\u606f\u663e\u793a\u5982\u4e0b\u3002\u53ef\u6dfb\u52a0\u3001\u9664\u53bb\u6216\u66f4\u6539\u67d0\u4e9b\u9879\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u624d\u80fd\u8fdb\u884c\u66f4\u6539\u3002\u5176\u5b83\u64cd\u4f5c\u5217\u793a\u5728\u6b64\u9875\u9762\u7684\u5e95\u90e8\u3002
+
+# Get
+ALT_GET=\u83b7\u53d6
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=\u540d\u79f0\u503c
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=\u63cf\u8ff0\u503c
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=\u7c7b\u522b\u952e\u540d\u79f0
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=\u7c7b\u522b\u952e\u503c
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=\u6807\u8bc6\u952e\u540d\u79f0
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=\u6807\u8bc6\u952e\u503c
+FORM_CONTROL_TITLE_DISCOVERY_URL=\u53d1\u73b0 URL
+
+# Find actions
+ALT_FIND=\u67e5\u627e
+ALT_SUBQUERY=\u67e5\u627e %1 \u5b50\u67e5\u8be2
+FORM_LABEL_QUERY_NAME=\u6b64\u67e5\u8be2\u7684\u540d\u79f0
+DEFAULT_QUERY_NAME=\u67e5\u8be2\u7ed3\u679c
+DEFAULT_SUBQUERY_NAME=%1 - %2 \u5b50\u67e5\u8be2
+FORM_LABEL_SEARCH_FOR=\u641c\u7d22
+FORM_OPTION_BUSINESSES=\u4e1a\u52a1
+FORM_OPTION_SERVICES=\u670d\u52a1
+FORM_OPTION_SERVICE_INTERFACES=\u670d\u52a1\u63a5\u53e3
+FORM_LABEL_SEARCH_TYPE=\u641c\u7d22\u7c7b\u578b
+FORM_RADIO_SIMPLE=\u7b80\u5355
+FORM_RADIO_ADVANCED=\u9ad8\u7ea7
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u4e1a\u52a1\u7684\u90e8\u5206\u6216\u5b8c\u6574\u540d\u79f0\u3002\u53ef\u4f7f\u7528\u201c%\u201d\u7b26\u53f7\u4f5c\u4e3a\u5339\u914d\u4efb\u4f55\u5b57\u7b26\u7684\u901a\u914d\u7b26\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_FIND_ADVANCED_DESC=\u8f93\u5165\u4ee5\u4e0b\u5217\u793a\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u53c2\u6570\u7684\u503c\u3002\u5728\u201c\u540d\u79f0\u201d\u8868\u7684\u201c\u540d\u79f0\u201d\u5b57\u6bb5\u4e2d\u53ef\u4f7f\u7528\u201c%\u201d\u7b26\u53f7\u4f5c\u4e3a\u5339\u914d\u4efb\u4f55\u5b57\u7b26\u7684\u901a\u914d\u7b26\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u4e1a\u52a1\u7684 UUID\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_NAMES=\u540d\u79f0
+FORM_LINK_ADD=\u6dfb\u52a0
+FORM_LINK_GET=\u83b7\u53d6
+FORM_LINK_FIND=\u67e5\u627e
+FORM_LINK_REMOVE=\u9664\u53bb
+FORM_LABEL_OWNED=\u62e5\u6709\u7684
+FORM_LABEL_PUBLISH_URL=\u53d1\u5e03 URL
+FORM_LABEL_USERID=\u7528\u6237\u6807\u8bc6
+FORM_LABEL_PASSWORD=\u5bc6\u7801
+FORM_LABEL_LANGUAGE=\u8bed\u8a00
+FORM_LABEL_NAME=\u540d\u79f0
+FORM_LABEL_DESCRIPTION=\u63cf\u8ff0
+FORM_OPTION_LANGUAGE_EN=\u82f1\u8bed
+FORM_OPTION_LANGUAGE_AA=\u963f\u6cd5\u5c14\u8bed
+FORM_OPTION_LANGUAGE_AB=\u963f\u5e03\u54c8\u5179\u8bed
+FORM_OPTION_LANGUAGE_AF=\u963f\u975e\u5229\u582a\u65af\u8bed
+FORM_OPTION_LANGUAGE_AM=\u963f\u59c6\u54c8\u62c9\u8bed
+FORM_OPTION_LANGUAGE_AR=\u963f\u62c9\u4f2f\u8bed
+FORM_OPTION_LANGUAGE_AS=\u963f\u8428\u59c6\u8bed
+FORM_OPTION_LANGUAGE_AY=\u827e\u9a6c\u62c9\u8bed
+FORM_OPTION_LANGUAGE_AZ=\u963f\u585e\u62dc\u7586\u8bed
+FORM_OPTION_LANGUAGE_BA=\u5df4\u4ec0\u57fa\u5c14\u8bed
+FORM_OPTION_LANGUAGE_BE=\u767d\u4fc4\u7f57\u65af\u8bed
+FORM_OPTION_LANGUAGE_BG=\u4fdd\u52a0\u5229\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_BH=\u6bd4\u54c8\u5c14\u8bed
+FORM_OPTION_LANGUAGE_BI=\u6bd4\u65af\u62c9\u739b\u8bed
+FORM_OPTION_LANGUAGE_BN=\u5b5f\u52a0\u62c9\u8bed
+FORM_OPTION_LANGUAGE_BO=\u85cf\u8bed
+FORM_OPTION_LANGUAGE_BR=\u5e03\u5217\u5854\u5c3c\u8bed
+FORM_OPTION_LANGUAGE_CA=\u52a0\u6cf0\u9686\u8bed
+FORM_OPTION_LANGUAGE_CO=\u79d1\u897f\u5609\u8bed
+FORM_OPTION_LANGUAGE_CZ=\u6377\u514b\u8bed
+FORM_OPTION_LANGUAGE_CY=\u5a01\u5c14\u58eb\u8bed
+FORM_OPTION_LANGUAGE_DA=\u4e39\u9ea6\u8bed
+FORM_OPTION_LANGUAGE_DE=\u5fb7\u8bed
+FORM_OPTION_LANGUAGE_DZ=\u4e0d\u4e39\u8bed
+FORM_OPTION_LANGUAGE_EL=\u5e0c\u814a\u8bed
+FORM_OPTION_LANGUAGE_EO=\u4e16\u754c\u8bed
+FORM_OPTION_LANGUAGE_ES=\u897f\u73ed\u7259\u8bed
+FORM_OPTION_LANGUAGE_ET=\u7231\u6c99\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_EU=\u5df4\u65af\u514b\u8bed
+FORM_OPTION_LANGUAGE_FA=\u6ce2\u65af\u8bed
+FORM_OPTION_LANGUAGE_FI=\u82ac\u5170\u8bed
+FORM_OPTION_LANGUAGE_FJ=\u6590\u6d4e\u8bed
+FORM_OPTION_LANGUAGE_FO=\u6cd5\u7f57\u8bed
+FORM_OPTION_LANGUAGE_FR=\u6cd5\u8bed
+FORM_OPTION_LANGUAGE_FY=\u5f17\u91cc\u897f\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_GA=\u7231\u5c14\u5170\u8bed
+FORM_OPTION_LANGUAGE_GD=\u82cf\u683c\u5170\u76d6\u5c14\u8bed
+FORM_OPTION_LANGUAGE_GL=\u52a0\u5229\u897f\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_GN=\u74dc\u62c9\u5c3c\u8bed
+FORM_OPTION_LANGUAGE_GU=\u53e4\u5409\u62c9\u7279\u8bed
+FORM_OPTION_LANGUAGE_HA=\u8c6a\u8428\u8bed
+FORM_OPTION_LANGUAGE_HI=\u5370\u5730\u8bed
+FORM_OPTION_LANGUAGE_HR=\u514b\u7f57\u5730\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_HU=\u5308\u7259\u5229\u8bed
+FORM_OPTION_LANGUAGE_HY=\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_IA=\u56fd\u9645\u8bedA
+FORM_OPTION_LANGUAGE_IE=\u56fd\u9645\u8bedE
+FORM_OPTION_LANGUAGE_IK=\u4f0a\u52aa\u76ae\u514b\u8bed
+FORM_OPTION_LANGUAGE_IN=\u5370\u5c3c\u8bed
+FORM_OPTION_LANGUAGE_IS=\u51b0\u5c9b\u8bed
+FORM_OPTION_LANGUAGE_IT=\u610f\u5927\u5229\u8bed
+FORM_OPTION_LANGUAGE_IW=\u5e0c\u4f2f\u83b1\u8bed
+FORM_OPTION_LANGUAGE_JA=\u65e5\u8bed
+FORM_OPTION_LANGUAGE_JI=\u4f9d\u5730\u8bed
+FORM_OPTION_LANGUAGE_JW=\u722a\u54c7\u8bed
+FORM_OPTION_LANGUAGE_KA=\u683c\u9c81\u5409\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_KK=\u54c8\u8428\u514b\u8bed
+FORM_OPTION_LANGUAGE_KL=\u683c\u9675\u5170\u8bed
+FORM_OPTION_LANGUAGE_KM=\u67ec\u57d4\u5be8\u8bed
+FORM_OPTION_LANGUAGE_KN=\u574e\u7eb3\u8fbe\u8bed
+FORM_OPTION_LANGUAGE_KO=\u97e9\u56fd\u8bed
+FORM_OPTION_LANGUAGE_KS=\u514b\u4ec0\u7c73\u5c14\u8bed
+FORM_OPTION_LANGUAGE_KU=\u5e93\u5c14\u5fb7\u8bed
+FORM_OPTION_LANGUAGE_KY=\u5409\u5c14\u5409\u65af\u8bed
+FORM_OPTION_LANGUAGE_LA=\u62c9\u4e01\u8bed
+FORM_OPTION_LANGUAGE_LN=\u6797\u52a0\u62c9\u8bed
+FORM_OPTION_LANGUAGE_LO=\u8001\u631d\u8bed
+FORM_OPTION_LANGUAGE_LT=\u7acb\u9676\u5b9b\u8bed
+FORM_OPTION_LANGUAGE_LV=\u62c9\u8131\u7ef4\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_MG=\u9a6c\u8fbe\u52a0\u65af\u52a0\u8bed
+FORM_OPTION_LANGUAGE_MI=\u6bdb\u5229\u8bed
+FORM_OPTION_LANGUAGE_MK=\u9a6c\u5176\u987f\u8bed
+FORM_OPTION_LANGUAGE_ML=\u9a6c\u62c9\u4e9a\u62c9\u59c6\u8bed
+FORM_OPTION_LANGUAGE_MN=\u8499\u53e4\u8bed
+FORM_OPTION_LANGUAGE_MO=\u6469\u5c14\u8fbe\u7ef4\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_MR=\u9a6c\u62c9\u63d0\u8bed
+FORM_OPTION_LANGUAGE_MS=\u9a6c\u6765\u8bed
+FORM_OPTION_LANGUAGE_MT=\u9a6c\u8033\u4ed6\u8bed
+FORM_OPTION_LANGUAGE_MY=\u7f05\u7538\u8bed
+FORM_OPTION_LANGUAGE_NA=\u7459\u9c81\u8bed
+FORM_OPTION_LANGUAGE_NE=\u5c3c\u6cca\u5c14\u8bed
+FORM_OPTION_LANGUAGE_NL=\u8377\u5170\u8bed
+FORM_OPTION_LANGUAGE_NO=\u632a\u5a01\u8bed
+FORM_OPTION_LANGUAGE_OC=\u5965\u514b\u897f\u5510\u8bed
+FORM_OPTION_LANGUAGE_OM=\u5965\u6d1b\u83ab\u8bed
+FORM_OPTION_LANGUAGE_OR=\u5965\u5229\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_PA=\u65c1\u906e\u666e\u8bed
+FORM_OPTION_LANGUAGE_PL=\u6ce2\u5170\u8bed
+FORM_OPTION_LANGUAGE_PS=\u5e15\u65bd\u56fe\u8bed
+FORM_OPTION_LANGUAGE_PT=\u8461\u8404\u7259\u8bed
+FORM_OPTION_LANGUAGE_QU=\u5947\u695a\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_RM=\u5229\u6258-\u7f57\u66fc\u8bf8\u8bed
+FORM_OPTION_LANGUAGE_RN=\u57fa\u9686\u8fea\u8bed
+FORM_OPTION_LANGUAGE_RO=\u7f57\u9a6c\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_RU=\u4fc4\u8bed
+FORM_OPTION_LANGUAGE_RW=\u57fa\u5c3c\u4e9a\u5362\u65fa\u8fbe\u8bed
+FORM_OPTION_LANGUAGE_SA=\u68b5\u8bed
+FORM_OPTION_LANGUAGE_SD=\u4fe1\u5fb7\u8bed
+FORM_OPTION_LANGUAGE_SG=\u6851\u6208\u8bed
+FORM_OPTION_LANGUAGE_SH=\u585e\u5c14\u7ef4\u4e9a-\u514b\u7f57\u5730\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_SI=\u50e7\u4f3d\u7f57\u8bed
+FORM_OPTION_LANGUAGE_SK=\u65af\u6d1b\u4f10\u514b\u8bed
+FORM_OPTION_LANGUAGE_SL=\u65af\u6d1b\u6587\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_SM=\u8428\u6469\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_SN=\u4fee\u7eb3\u8bed
+FORM_OPTION_LANGUAGE_SO=\u7d22\u9a6c\u91cc\u8bed
+FORM_OPTION_LANGUAGE_SQ=\u963f\u5c14\u5df4\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_SR=\u585e\u5c14\u7ef4\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_SS=\u897f\u65af\u74e6\u63d0\u8bed
+FORM_OPTION_LANGUAGE_ST=\u585e\u7d22\u6258\u8bed
+FORM_OPTION_LANGUAGE_SU=\u82cf\u4e39\u8bed
+FORM_OPTION_LANGUAGE_SV=\u745e\u5178\u8bed
+FORM_OPTION_LANGUAGE_SW=\u65af\u74e6\u5e0c\u91cc\u8bed
+FORM_OPTION_LANGUAGE_TA=\u6cf0\u7c73\u5c14\u8bed
+FORM_OPTION_LANGUAGE_TE=\u6cf0\u5362\u56fa\u8bed
+FORM_OPTION_LANGUAGE_TG=\u5854\u5409\u514b\u8bed
+FORM_OPTION_LANGUAGE_TH=\u6cf0\u56fd\u8bed
+FORM_OPTION_LANGUAGE_TI=\u63d0\u683c\u91cc\u5c3c\u4e9a\u8bed
+FORM_OPTION_LANGUAGE_TK=\u571f\u5e93\u66fc\u8bed
+FORM_OPTION_LANGUAGE_TL=\u4ed6\u52a0\u7984\u8bed
+FORM_OPTION_LANGUAGE_TN=\u585e\u8328\u74e6\u7eb3\u8bed
+FORM_OPTION_LANGUAGE_TO=\u6c64\u52a0\u8bed
+FORM_OPTION_LANGUAGE_TR=\u571f\u8033\u5176\u8bed
+FORM_OPTION_LANGUAGE_TS=\u5b97\u52a0\u8bed
+FORM_OPTION_LANGUAGE_TT=\u5854\u5854\u5c14\u8bed
+FORM_OPTION_LANGUAGE_TW=\u7279\u5a01\u8bed
+FORM_OPTION_LANGUAGE_UK=\u4e4c\u514b\u5170\u8bed
+FORM_OPTION_LANGUAGE_UR=\u4e4c\u5c14\u90fd\u8bed
+FORM_OPTION_LANGUAGE_UZ=\u4e4c\u5179\u522b\u514b\u8bed
+FORM_OPTION_LANGUAGE_VI=\u8d8a\u5357\u8bed
+FORM_OPTION_LANGUAGE_VO=\u6c83\u62c9\u666e\u514b\u8bed
+FORM_OPTION_LANGUAGE_WO=\u6c83\u6d1b\u592b\u8bed
+FORM_OPTION_LANGUAGE_XH=\u79d1\u8428\u8bed
+FORM_OPTION_LANGUAGE_YO=\u7ea6\u9c81\u5df4\u8bed
+FORM_OPTION_LANGUAGE_ZH=\u4e2d\u6587
+FORM_OPTION_LANGUAGE_ZU=\u7956\u9c81\u8bed
+FORM_LABEL_EXACT_NAME_MATCH=\u5b8c\u5168\u5339\u914d
+FORM_LABEL_CASE_SENSITIVE_MATCH=\u533a\u5206\u5927\u5c0f\u5199
+FORM_LABEL_SOUNDEX=\u53d1\u97f3\u76f8\u4f3c
+FORM_LABEL_IDENTIFIERS=\u6807\u8bc6
+FORM_LABEL_IDENTIFIER_TYPE=\u7c7b\u578b
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas \u6ce8\u518c\u4e2d\u5fc3
+
+FORM_LABEL_KEY_NAME=\u952e\u540d\u79f0
+FORM_LABEL_KEY_VALUE=\u952e\u503c
+FORM_LABEL_CATEGORIES=\u7c7b\u522b
+FORM_LABEL_CATEGORY_TYPE=\u7c7b\u578b
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW \u56e2\u4f53
+FORM_LABEL_BUSINESS_CATEGORIES=\u6bd4\u8f83\uff1a
+FORM_OPTION_BUSINESSES_ONLY=\u4ec5\u9002\u7528\u4e8e\u4e1a\u52a1
+FORM_OPTION_SERVICES_ONLY=\u4ec5\u9002\u7528\u4e8e\u670d\u52a1
+FORM_OPTION_BOTH=\u4e1a\u52a1\u548c\u670d\u52a1
+FORM_LABEL_DISCOVERYURLS=\u53d1\u73b0 URL
+FORM_LABEL_DISCOVERYURL=\u53d1\u73b0 URL
+FORM_LABEL_FINDQUALIFIERS=\u67e5\u627e\u9650\u5b9a\u7b26
+FORM_LABEL_COMBINE_KEYS=\u7ec4\u5408\u5173\u952e\u5b57\uff1a
+FORM_OPTION_ANDALLKEYS=\u548c
+FORM_OPTION_ORALLKEYS=\u6216
+FORM_OPTION_ORLIKEKEYS=\u6216\u7c7b\u4f3c\u4e8e
+FORM_LABEL_SORT_BY_NAME=\u6309\u540d\u79f0\u6392\u5e8f\uff1a
+FORM_RADIO_SORT_ASC=\u5347\u5e8f
+FORM_RADIO_SORT_DESC=\u964d\u5e8f
+FORM_LABEL_SORT_BY_DATE=\u6309\u65e5\u671f\u6392\u5e8f\uff1a
+FORM_LABEL_MAX_SEARCH_SET=\u641c\u7d22\u96c6\u5408\u7684\u6700\u5927\u5927\u5c0f\uff1a
+FORM_LABEL_MAX_RESULTS=\u6700\u5927\u7ed3\u679c\u6570\uff1a
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u670d\u52a1\u7684\u90e8\u5206\u6216\u5b8c\u6574\u540d\u79f0\u3002\u53ef\u4f7f\u7528\u201c%\u201d\u7b26\u53f7\u4f5c\u4e3a\u5339\u914d\u4efb\u4f55\u5b57\u7b26\u7684\u901a\u914d\u7b26\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_FIND_SERVICE_UUID_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u670d\u52a1\u7684 UUID\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u670d\u52a1\u63a5\u53e3\u7684\u90e8\u5206\u6216\u5b8c\u6574\u540d\u79f0\u3002\u53ef\u4f7f\u7528\u201c%\u201d\u7b26\u53f7\u4f5c\u4e3a\u5339\u914d\u4efb\u4f55\u5b57\u7b26\u7684\u901a\u914d\u7b26\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=\u8f93\u5165\u8981\u641c\u7d22\u7684\u670d\u52a1\u63a5\u53e3\u7684 UUID\u3002\u6309<strong>\u6267\u884c</strong>\u4ee5\u6267\u884c\u641c\u7d22\u3002
+FORM_LABEL_SERVICE_INTERFACES=\u670d\u52a1\u63a5\u53e3
+FORM_LABEL_UUID_KEY=UUID \u5bc6\u94a5\uff1a
+FORM_LABEL_USE_SERVICE=\u4f7f\u7528\u670d\u52a1
+FORM_LABEL_SERVICE=\u670d\u52a1
+FORM_LABEL_BUSINESS=\u4e1a\u52a1
+FORM_LABEL_PUBLISH_ASSERTIONS=\u53d1\u5e03\u5668\u65ad\u8a00
+FORM_LABEL_DIRECTION=\u65b9\u5411
+FORM_LABEL_FROM_KEY=\u6e90\u952e
+FORM_LABEL_TO_KEY=\u76ee\u6807\u952e
+FORM_LABEL_STATUS=\u72b6\u6001
+FORM_LABEL_ASSERTION_TYPE=\u65ad\u8a00\u7c7b\u578b
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=\u7236\u5b50
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=\u540c\u7b49
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=\u6807\u8bc6
+FORM_LABEL_ASSERTION_DIRETION_DESC=\u65b9\u5411<strong>\u6e90</strong>\u5c06\u521b\u5efa\u7531\u6b64\u4e1a\u52a1\u81f3\u5176\u4e0a\u4e1a\u52a1\u7684\u53d1\u5e03\u5668\u65ad\u8a00\u3002\u65b9\u5411<strong>\u76ee\u6807</strong>\u5c06\u521b\u5efa\u7531\u5176\u4e0a\u4e1a\u52a1\u81f3\u6b64\u4e1a\u52a1\u7684\u53d1\u5e03\u5668\u65ad\u8a00\u3002
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=\u6b64
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E \u8f93\u5165\u67e5\u8be2\u7684\u6709\u6548\u540d\u79f0\u3002
+MSG_ERROR_INVALID_NAMES=IWAB0141E \u8f93\u5165\u4e00\u7cfb\u5217\u6709\u6548\u540d\u79f0\u3002
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E \u8f93\u5165\u6709\u6548\u7684\u53d1\u5e03 URL\u3002
+MSG_ERROR_INVALID_USERID=IWAB0143E \u8f93\u5165\u6709\u6548\u7684\u7528\u6237\u6807\u8bc6\u3002
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E \u8f93\u5165\u6700\u5927\u641c\u7d22\u96c6\u5408\u7684\u6709\u6548\u5927\u5c0f\u3002
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E \u8f93\u5165\u6700\u5927\u7ed3\u679c\u6570\u7684\u6709\u6548\u5927\u5c0f\u3002
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I \u627e\u5230\u7684\u4e1a\u52a1\u6570\uff1a%1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E \u672a\u627e\u5230\u4efb\u4f55\u4e1a\u52a1\u3002
+MSG_INFO_SERVICES_FOUND=IWAB0149I \u627e\u5230\u7684\u670d\u52a1\u6570\uff1a%1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E \u672a\u627e\u5230\u4efb\u4f55\u670d\u52a1\u3002
+MSG_ERROR_SINGLE_ITEM=IWAB0151E \u4ec5\u9009\u62e9\u4e00\u9879\u3002
+MSG_QUESTION_ITEM_REPLACEMENT=\u9009\u62e9\u7684\u9879\u5c06\u66ff\u6362\u5df2\u5728\u76ee\u6807\u4e2d\u7684\u9879\u3002\u60f3\u8981\u7ee7\u7eed\u5417\uff1f
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I \u627e\u5230\u7684\u670d\u52a1\u63a5\u53e3\u6570\uff1a%1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E \u672a\u627e\u5230\u4efb\u4f55\u670d\u52a1\u63a5\u53e3\u3002
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E \u81f3\u5c11\u9009\u62e9\u4e00\u9879\u3002
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E \u8f93\u5165\u6709\u6548\u7684 UUID \u5bc6\u94a5\u3002
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E \u5b50\u67e5\u8be2\u7684\u67e5\u8be2\u540d\u79f0\u4e0d\u80fd\u4e0e\u53d1\u8d77\u65b9\u76f8\u540c\u3002
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E \u5c1a\u672a\u53d1\u5e03\u6216\u53d1\u73b0\u6307\u5b9a\u7c7b\u578b\u7684\u9879\u3002
+
+# Results
+ALT_QUERY_RESULTS=\u67e5\u8be2\u7ed3\u679c
+FORM_LABEL_SUBQUERY=\u7ed3\u679c\u53ef\u7528\u4f5c\u53e6\u4e00\u64cd\u4f5c\u7684\u8f93\u5165\u3002\u5355\u51fb\u9876\u90e8\u7684<strong>\u76ee\u6807</strong>\u94fe\u63a5\u4ee5\u67e5\u770b\u8be5\u64cd\u4f5c\u3002\u53ef\u901a\u8fc7\u5355\u51fb<strong>\u4f20\u9001</strong>\u6309\u94ae\u5728\u8be5\u64cd\u4f5c\u4e2d\u4f7f\u7528\u9009\u62e9\u7684\u7ed3\u679c\u3002
+FORM_LABEL_QUERY=\u9009\u62e9\u7ed3\u679c\u4ee5\u67e5\u770b\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u6216\u9009\u62e9\u4e00\u7ec4\u7ed3\u679c\u5e76\u5355\u51fb\u6309\u94ae\u4ee5\u6267\u884c\u64cd\u4f5c\u3002
+FORM_LINK_TARGET=\u76ee\u6807
+FORM_BUTTON_TRANSFER=\u4f20\u9001
+FORM_BUTTON_REFRESH=\u5237\u65b0
+FORM_BUTTON_ADD_TO_FAVORITES=\u6dfb\u52a0\u5230\u6536\u85cf\u5939
+FORM_BUTTON_UNPUBLISH=\u53d6\u6d88\u53d1\u5e03
+FORM_BUTTON_CLEAR=\u6e05\u9664
+
+# Publish actions
+ALT_PUBLISH=\u53d1\u5e03
+FORM_LABEL_PUBLISH=\u53d1\u5e03\uff1a
+FORM_OPTION_BUSINESS=\u4e1a\u52a1
+FORM_OPTION_SERVICE=\u670d\u52a1
+FORM_OPTION_SERVICE_INTERFACE=\u670d\u52a1\u63a5\u53e3
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=\u8f93\u5165\u8981\u53d1\u5e03\u7684\u4e1a\u52a1\u7684\u540d\u79f0\u548c\u63cf\u8ff0\uff08\u53ef\u9009\uff09\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u4e1a\u52a1\u7684\u540d\u79f0\u3002\u8fd8\u53ef\u6307\u5b9a\u5176\u5b83\u53c2\u6570\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=\u83b7\u53d6\u6216\u67e5\u627e\u67d0\u4e2a\u4e1a\u52a1\u7136\u540e\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u670d\u52a1\u7684 WSDL URL\u3001\u540d\u79f0\u548c\u63cf\u8ff0\uff08\u53ef\u9009\uff09\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=\u83b7\u53d6\u6216\u67e5\u627e\u67d0\u4e2a\u4e1a\u52a1\u7136\u540e\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u670d\u52a1\u7684 WSDL URL \u548c\u540d\u79f0\u3002\u8fd8\u53ef\u6307\u5b9a\u5176\u5b83\u53c2\u6570\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u670d\u52a1\u7684 WSDL URL\u3001\u540d\u79f0\u548c\u63cf\u8ff0\uff08\u53ef\u9009\uff09\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u670d\u52a1\u7684 WSDL URL \u548c\u540d\u79f0\u3002\u8fd8\u53ef\u6307\u5b9a\u5176\u5b83\u53c2\u6570\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=\u8f93\u5165\u8981\u53d1\u5e03\u7684\u670d\u52a1\u63a5\u53e3\u7684 WSDL URL\u3001\u540d\u79f0\u548c\u63cf\u8ff0\uff08\u53ef\u9009\uff09\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=\u63d0\u4f9b\u8981\u53d1\u5e03\u7684\u670d\u52a1\u63a5\u53e3\u7684 WSDL URL \u548c\u540d\u79f0\u3002\u8fd8\u53ef\u6307\u5b9a\u5176\u5b83\u53c2\u6570\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+FORM_LABEL_PUBLISH_FORM=\u53d1\u5e03\u683c\u5f0f
+FORM_LABEL_DESCRIPTION=\u63cf\u8ff0
+FORM_LABEL_DESCRIPTIONS=\u63cf\u8ff0
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I \u5df2\u6210\u529f\u53d1\u5e03\u4e1a\u52a1 %1\u3002
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I \u5df2\u6210\u529f\u53d1\u5e03\u670d\u52a1 %1\u3002
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I \u5df2\u6210\u529f\u53d1\u5e03\u670d\u52a1\u63a5\u53e3 %1\u3002
+MSG_ERROR_INVALID_NAME=IWAB0161E \u8f93\u5165\u6709\u6548\u7684\u540d\u79f0\u3002
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E \u4e3a\u7b2c %2 \u884c\u4e2d\u7684 %1 \u9009\u62e9\u975e\u7a7a\u767d\u8bed\u8a00\u3002\u53ea\u6709\u7b2c\u4e00\u884c\u53ef\u4ee5\u5177\u6709\u7a7a\u767d\u8bed\u8a00\u3002
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E \u66f4\u6539\u7b2c %2 \u884c\u4e2d\u7684 %1 \u7684\u8bed\u8a00\u3002\u5f53\u524d\u8bed\u8a00\u5df2\u5728\u4f7f\u7528\u4e2d\u3002
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E \u5728\u7b2c %2 \u884c\u8f93\u5165\u6709\u6548\u7684 %1
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E \u8f93\u5165\u6709\u6548\u7684 WSDL URL\u3002
+MSG_ERROR_NO_NAMES=IWAB0254E \u6dfb\u52a0\u81f3\u5c11\u4e00\u4e2a\u540d\u79f0\u3002
+MSG_ERROR_INVALID_SERVICE=IWAB0255E \u63d0\u4f9b\u6709\u6548\u7684\u670d\u52a1\u3002
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E \u63d0\u4f9b\u6709\u6548\u7684\u4e1a\u52a1\u3002
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=\u53d1\u5e03\u670d\u52a1
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL \u6d4f\u89c8\u5668 \uff0d %1
+FORM_LABEL_WSDL_SOURCE=\u9009\u62e9 WSDL \u6e90\uff1a
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u9879\u76ee
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u6536\u85cf\u5939
+FORM_LABEL_WEB_PROJECT=Web \u9879\u76ee
+FORM_LABEL_WSDL_URL=WSDL URL
+ALT_WSDL_BROWSER=WSDL \u6d4f\u89c8\u5668
+
+# Details
+FORM_LINK_EDIT=\u7f16\u8f91
+FORM_LINK_CANCEL=\u53d6\u6d88
+FORM_LABEL_BUSINESS_KEY=\u4e1a\u52a1\u5bc6\u94a5
+FORM_LABEL_SERVICE_KEY=\u670d\u52a1\u5bc6\u94a5
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel \u5bc6\u94a5
+FORM_LABEL_USER_DEFINED_CATEGORIES=\u7528\u6237\u5b9a\u4e49\u7684\u7c7b\u522b
+FORM_LABEL_CHECKED=\u5df2\u9009\u62e9
+FORM_LABEL_FILE=\u6587\u4ef6
+MSG_QUESTION_PUBLISH_ITEM=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u9879\u3002\u60f3\u8981\u53d1\u5e03\u5b83\u5417\uff1f
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u670d\u52a1\u53ca\u5176\u4e1a\u52a1\u3002\u8981\u7ee7\u7eed\u53d1\u5e03\u5417\uff1f
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I \u5df2\u6210\u529f\u66f4\u65b0\u4e1a\u52a1 %1\u3002
+MSG_INFO_SERVICE_UPDATED=IWAB0258I \u5df2\u6210\u529f\u66f4\u65b0\u670d\u52a1 %1\u3002
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I \u5df2\u6210\u529f\u66f4\u65b0\u670d\u52a1\u63a5\u53e3 %1\u3002
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I \u5df2\u6210\u529f\u66f4\u65b0\u6ce8\u518c\u4e2d\u5fc3 %1\u3002
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=\u53d6\u6d88\u53d1\u5e03\u4e1a\u52a1
+ALT_UNPUBLISH_SERVICE=\u53d6\u6d88\u53d1\u5e03\u670d\u52a1
+ALT_UNPUBLISH_SERVICE_INTERFACE=\u53d6\u6d88\u53d1\u5e03\u670d\u52a1\u63a5\u53e3
+FORM_LABEL_UNPUBLISH_DESC=\u6309<strong>\u6267\u884c</strong>\u4ee5\u53d6\u6d88\u53d1\u5e03\u6b64\u5bf9\u8c61\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u3002
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I \u5df2\u6210\u529f\u53d6\u6d88\u53d1\u5e03\u4e1a\u52a1 %1\u3002
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I \u5df2\u6210\u529f\u53d6\u6d88\u53d1\u5e03\u670d\u52a1 %1\u3002
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I \u5df2\u6210\u529f\u53d6\u6d88\u53d1\u5e03\u670d\u52a1\u63a5\u53e3 %1\u3002
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=\u6dfb\u52a0\u5230 WSDL \u9875\u9762
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I \u5df2\u5c06 %1 \u6210\u529f\u6dfb\u52a0\u5230 WSDL \u9875\u9762\u3002
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E \u672a\u80fd\u5c06 %1 \u6dfb\u52a0\u5230 WSDL \u9875\u9762\u3002
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=\u6dfb\u52a0\u5230\u6536\u85cf\u5939
+MSG_INFO_FAVORITE_ADDED=IWAB0263I \u5df2\u5c06 %1 \u6210\u529f\u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E \u672a\u80fd\u5c06 %1 \u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E \u6536\u85cf\u5939\u4e2d\u5df2\u5b58\u5728 %1\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6536\u85cf\u9879\u5df2\u5b58\u5728\u3002\u60f3\u8981\u8986\u76d6\u5417\uff1f
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I \u5df2\u5237\u65b0 %1\u3002
+MSG_QUESTION_REMOVE_NODE=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230 %1\u3002\u60f3\u8981\u6e05\u9664\u5b83\u5417\uff1f
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=\u7ba1\u7406\u5f15\u7528\u7684\u670d\u52a1
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=\u901a\u8fc7\u5355\u51fb<strong>\u6dfb\u52a0\u670d\u52a1</strong>\u6309\u94ae\u5c06\u53d1\u73b0\u6216\u53d1\u5e03\u7684\u670d\u52a1\u6dfb\u52a0\u5230\u5f15\u7528\u7684\u670d\u52a1\u7684\u5217\u8868\u3002\u901a\u8fc7\u5355\u51fb<strong>\u9664\u53bb\u5f15\u7528</strong>\u6309\u94ae\u9664\u53bb\u9009\u62e9\u7684\u5f15\u7528\u3002\u53ef\u80fd\u9700\u8981\u8ba4\u8bc1\u624d\u80fd\u8fdb\u884c\u66f4\u6539\u3002
+FORM_LABEL_REFERENCED_SERVICES=\u5f15\u7528\u7684\u670d\u52a1
+FORM_BUTTON_ADD_SERVICES=\u6dfb\u52a0\u670d\u52a1
+FORM_BUTTON_REMOVE_REFERENCES=\u9664\u53bb\u5f15\u7528
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E \u7ee7\u7eed\u4e4b\u524d\u81f3\u5c11\u9009\u62e9\u4e00\u4e2a\u5f15\u7528\u670d\u52a1\u3002
+MSG_ERROR_NO_SERVICES=IWAB0267E \u7ee7\u7eed\u4e4b\u524d\u83b7\u53d6\u6216\u67e5\u627e\u81f3\u5c11\u4e00\u4e2a\u670d\u52a1\u3002
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E \u672a\u80fd\u5f15\u7528\u670d\u52a1 %1\u3002
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E \u672a\u80fd\u9664\u53bb\u670d\u52a1\u5f15\u7528 %1\u3002
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I \u5df2\u6210\u529f\u5f15\u7528\u670d\u52a1 %1\u3002
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I \u5df2\u6210\u529f\u9664\u53bb\u670d\u52a1\u5f15\u7528 %1\u3002
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=\u7ba1\u7406\u53d1\u5e03\u5668\u65ad\u8a00
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=\u901a\u8fc7\u5355\u51fb<strong>\u6dfb\u52a0\u65ad\u8a00</strong>\u5c06\u53d1\u73b0\u6216\u53d1\u5e03\u7684\u4e1a\u52a1\u6dfb\u52a0\u5230\u53d1\u5e03\u5668\u65ad\u8a00\u5217\u8868\u4e2d\u3002\u901a\u8fc7\u5355\u51fb<strong>\u9664\u53bb\u65ad\u8a00</strong>\u9664\u53bb\u9009\u62e9\u7684\u65ad\u8a00\u3002\u901a\u8fc7\u5355\u51fb<strong>\u5b8c\u6210\u65ad\u8a00</strong>\u5b8c\u6210\u9009\u62e9\u7684\u65ad\u8a00\u3002\u5355\u51fb<strong>\u5237\u65b0\u65ad\u8a00</strong>\u4ee5\u5237\u65b0\u65ad\u8a00\u5217\u8868\u3002
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=\u8bf7\u6ce8\u610f\uff0c\u53ea\u6709\u4e1a\u52a1\u7684\u6240\u6709\u8005\u624d\u80fd\u770b\u5230\u4e0d\u5b8c\u6574\u7684\u53d1\u5e03\u5668\u65ad\u8a00\u3002
+FORM_LABEL_BUSINESSES=\u4e1a\u52a1
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=\u5237\u65b0\u65ad\u8a00
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=\u5b8c\u6210\u65ad\u8a00
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=\u6dfb\u52a0\u65ad\u8a00
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=\u9664\u53bb\u65ad\u8a00
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I \u5df2\u5237\u65b0\u53d1\u5e03\u5668\u65ad\u8a00\u3002
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E \u81f3\u5c11\u9009\u62e9\u4e00\u4e2a\u4e0d\u5b8c\u6574\u7684\u53d1\u5e03\u5668\u65ad\u8a00\u3002
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E \u4e0d\u80fd\u5bf9\u53e6\u4e00\u65b9\u6240\u62e5\u6709\u7684\u4e1a\u52a1\u6267\u884c\u6b64\u64cd\u4f5c\u3002
+
+# GetBusinesses
+ALT_GET_BUSINESS=\u83b7\u53d6\u4e1a\u52a1
+ALT_GET_BUSINESSES=\u83b7\u53d6\u591a\u4e2a\u4e1a\u52a1
+NODE_NAME_SERVICE_BUSINESS=\u670d\u52a1 %1 \u7684\u4e1a\u52a1
+NODE_NAME_SI_BUSINESSES=\u670d\u52a1\u63a5\u53e3 %1 \u7684\u4e1a\u52a1
+MSG_QUESTION_REMOVE_SERVICE_NODE=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u670d\u52a1\u3002\u60f3\u8981\u9664\u53bb\u6b64\u8282\u70b9\u5417\uff1f
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=\u83b7\u53d6\u670d\u52a1\u63a5\u53e3
+NODE_NAME_SERVICE_SERVICE_INTERFACES=\u670d\u52a1 %1 \u7684\u670d\u52a1\u63a5\u53e3
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u670d\u52a1\u3002\u60f3\u8981\u9664\u53bb\u6b64\u8282\u70b9\u5417\uff1f
+
+# GetServices
+ALT_GET_SERVICES=\u83b7\u53d6\u670d\u52a1
+NODE_NAME_SI_SERVICES=\u670d\u52a1\u63a5\u53e3 %1 \u7684\u670d\u52a1
+NODE_NAME_BUSINESS_SERVICES=\u4e1a\u52a1 %1 \u7684\u670d\u52a1
+MSG_QUESTION_REMOVE_SI_NODE=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u670d\u52a1\u63a5\u53e3\u3002\u60f3\u8981\u9664\u53bb\u6b64\u8282\u70b9\u5417\uff1f
+MSG_QUESTION_REMOVE_BUSINESS_NODE=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u8be5\u4e1a\u52a1\u3002\u60f3\u8981\u9664\u53bb\u6b64\u8282\u70b9\u5417\uff1f
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230 %1\u3002
+
+# Summaries
+ALT_SUMMARY_QUERIES=\u67e5\u8be2\u6458\u8981
+ALT_SUMMARY_BUSINESSES=\u4e1a\u52a1\u6458\u8981
+ALT_SUMMARY_SERVICES=\u670d\u52a1\u6458\u8981
+ALT_SUMMARY_SERVICE_INTERFACES=\u670d\u52a1\u63a5\u53e3\u6458\u8981
+FORM_LABEL_QUERIES=\u67e5\u8be2
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=\u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230 %1\u3002\u60f3\u8981\u9664\u53bb\u5b83\u5417\uff1f
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5bfc\u822a\u5668\u5bb9\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5bfc\u822a\u5668\u5de5\u5177\u680f
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5bfc\u822a\u5668\u5185\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u64cd\u4f5c\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5c5e\u6027\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5c5e\u6027\u5de5\u5177\u680f
+FRAME_TITLE_PROPERTIES_CONTENT=\u5c5e\u6027\u5185\u5bb9
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6001\u5bb9\u5668
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6001\u5de5\u5177\u680f
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6001\u5185\u5bb9
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI \u9875\u9762\u5185\u5bb9
+FRAME_TITLE_CATEGORIES_WORKAREA=\u7c7b\u522b\u5de5\u4f5c\u533a
+FRAME_TITLE_CATEGORIES_TOOLBAR=\u7c7b\u522b\u5de5\u5177\u680f
+FRAME_TITLE_CATEGORIES_CONTENT=\u7c7b\u522b\u5185\u5bb9
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u6d4f\u89c8\u5668\u5de5\u5177\u680f
+FRAME_TITLE_WSDL_CONTENT=WSDL \u6d4f\u89c8\u5668\u5185\u5bb9
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=\u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=\u4e1a\u52a1\u53d1\u5e03\u670d\u52a1\u8868\u5355
+FORM_TITLE_GET_FORM=\u4ece\u53d1\u73b0\u6216\u53d1\u5e03\u7684\u5bf9\u8c61\u4e2d\u8fdb\u884c\u9009\u62e9\u8868\u5355
+FORM_TITLE_ITEMS_SUMMARY=\u9879\u6458\u8981\u8868\u5355
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=\u7ba1\u7406\u53d1\u5e03\u5668\u65ad\u8a00\u8868\u5355
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=\u7ba1\u7406\u5f15\u7528\u7684\u670d\u52a1\u8868\u5355
+FORM_TITLE_OPEN_REGISTRY=\u6253\u5f00\u6ce8\u518c\u4e2d\u5fc3\u8868\u5355
+FORM_TITLE_REGISTRY_DETAILS=\u6ce8\u518c\u4e2d\u5fc3\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_REGISTRY_PUBLISH=\u6ce8\u518c\u4e2d\u5fc3\u53d1\u5e03\u8868\u5355
+FORM_TITLE_REGISTRY_FIND=\u6ce8\u518c\u4e2d\u5fc3\u67e5\u627e\u8868\u5355
+FORM_TITLE_RESULTS=\u7ed3\u679c\u8868\u5355
+FORM_TITLE_SERVICE_DETAILS=\u670d\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=\u670d\u52a1\u63a5\u53e3\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_UNPUBLISH=\u53d6\u6d88\u53d1\u5e03\u8868\u5355
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_TW.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_TW.properties
new file mode 100644
index 000000000..89f1bcb8e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/uddi_zh_TW.properties
@@ -0,0 +1,495 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=UDDI
+
+# Nodes
+NODE_NAME_UDDI_MAIN=UDDI \u4e3b\u8981
+NODE_NAME_QUERIES_FOLDER=\u5df2\u57f7\u884c\u7684\u67e5\u8a62
+NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=\u5df2\u767c\u4f48\u7684\u5546\u696d
+NODE_NAME_PUBLISHED_SERVICES_FOLDER=\u5df2\u767c\u4f48\u7684\u670d\u52d9
+NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=\u5df2\u767c\u4f48\u7684\u670d\u52d9\u4ecb\u9762
+
+# OpenRegistryAction
+ALT_OPEN_REGISTRY=\u958b\u555f\u767b\u9304
+FORM_LABEL_OPEN_REGISTRY_DESC=\u8acb\u6307\u5b9a\u8981\u958b\u555f\u7684\u767b\u9304\u7684\u540d\u7a31\u548c\u67e5\u8a62 URL\u3002\u9078\u53d6\u6211\u7684\u6700\u611b\u767b\u9304\u5c07\u6703\u81ea\u52d5\u586b\u5165\u5fc5\u8981\u7684\u8cc7\u8a0a\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u958b\u555f\u767b\u9304\u3002
+FORM_LABEL_FAVORITE_REGISTRY=\u6211\u7684\u6700\u611b\u767b\u9304
+FORM_LABEL_REGISTRY_NAME=\u767b\u9304\u540d\u7a31
+FORM_LABEL_INQUIRY_URL=\u67e5\u8a62 URL
+FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=\u8acb\u6aa2\u67e5\u4f7f\u7528\u8005\u5b9a\u7fa9\u7684\u7a2e\u985e
+DEFAULT_REGISTRY_NAME=IBM UDDI \u6e2c\u8a66\u767b\u9304
+MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E \u8acb\u8f38\u5165\u6709\u6548\u7684\u767b\u9304\u540d\u7a31\u3002
+MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E \u8acb\u8f38\u5165\u6709\u6548\u7684\u67e5\u8a62 URL\u3002
+MSG_INFO_REGISTRY_OPENED=IWAB0139I \u5df2\u9806\u5229\u958b\u555f\u5728 %2 \u4e14\u540d\u7a31\u662f %1 \u7684\u767b\u9304\u3002
+FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=\u662f WebSphere UDDI \u767b\u9304\u55ce\uff1f
+DEFAULT_REGISTRY_NAME_WEBSPHERE=IBM WebSphere \u79c1\u5bc6 UDDI \u767b\u9304
+FORM_LABEL_REGISTRY_HOST=\u4e3b\u6a5f
+FORM_LABEL_REGISTRY_PORT=\u57e0
+
+# User-defined Categories
+FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">\u8acb\u6309\u4e00\u4e0b\u9019\u88e1</a>\uff0c\u4ee5\u8f09\u5165\u9019\u500b\u7a2e\u985e\u7684\u8cc7\u6599\u3002
+FORM_CONTROL_TITLE_CATEGORY_FILE=\u7a2e\u985e\u8cc7\u6599\u6a94\u540d\u7a31
+MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I \u672a\u5075\u6e2c\u5230\u4efb\u4f55\u4f7f\u7528\u8005\u5b9a\u7fa9\u7684\u7a2e\u985e\u3002
+MSG_INFO_NO_CATEGORY_DATA=IWAB0372I %1 \u7684\u7a2e\u985e\u8cc7\u6599\u7121\u6cd5\u4f7f\u7528\u6216\u7121\u6548\u3002
+MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I \u5df2\u9806\u5229\u8f09\u5165\u4f7f\u7528\u8005\u5b9a\u7fa9\u7684 %1 \u7a2e\u985e\u7684\u8cc7\u6599\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E \u4f7f\u7528\u8005\u5b9a\u7fa9\u7684 %1 \u7a2e\u985e\u7684\u8cc7\u6599\u6a94\u7121\u6548\u3002\u627e\u5230\u7a2e\u985e\u7d22\u5f15\u9375 '%2'\uff0c\u4f46\u539f\u9810\u671f\u662f '%3'\u3002
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E \u4f7f\u7528\u8005\u5b9a\u7fa9\u7684 %2 \u7a2e\u985e\u4e4b\u8cc7\u6599\u6a94\u7684\u7b2c %1 \u884c\u683c\u5f0f\u4e0d\u660e\u3002\u9019\u4e00\u884c\u662f\uff1a"%3"
+MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E \u4f7f\u7528\u8005\u5b9a\u7fa9\u7684 %1 \u7a2e\u985e\u7684\u8cc7\u6599\u6a94\u7121\u6548\u3002
+MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E \u5132\u5b58 %1 \u7a2e\u985e\u7684\u8cc7\u6599\u6642\uff0c\u767c\u751f\u932f\u8aa4\u3002\u7570\u5e38\u72c0\u6cc1\u672c\u6587\uff1a%2
+
+# UDDI Category Browser
+TITLE_CATEGORY_BROWSER=\u7a2e\u985e\u700f\u89bd\u5668
+ALT_CATEGORIES=\u7a2e\u985e
+
+# Details
+ALT_REGISTRY_DETAILS=\u767b\u9304\u8a73\u7d30\u8cc7\u6599
+ALT_BUSINESS_DETAILS=\u5546\u696d\u8a73\u7d30\u8cc7\u6599
+ALT_SERVICE_DETAILS=\u670d\u52d9\u8a73\u7d30\u8cc7\u6599
+ALT_SERVICE_INTERFACE_DETAILS=\u670d\u52d9\u4ecb\u9762\u8a73\u7d30\u8cc7\u6599
+FORM_LABEL_DETAILS_EDITABLE=\u4ee5\u4e0b\u986f\u793a <strong>%1</strong> \u7684\u8a73\u7d30\u8cc7\u6599\u3002\u53ef\u4ee5\u65b0\u589e\u3001\u79fb\u9664\u6216\u8b8a\u66f4\u90e8\u5206\u9805\u76ee\u3002\u8b8a\u66f4\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002\u9019\u500b\u9801\u9762\u5e95\u7aef\u5217\u51fa\u5176\u4ed6\u52d5\u4f5c\u3002
+
+# Get
+ALT_GET=\u53d6\u5f97
+
+# Common Form Control Title
+FORM_CONTROL_TITLE_NAME_TEXT_VALUE=\u540d\u7a31\u503c
+FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=\u8aaa\u660e\u503c
+FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=\u7a2e\u985e\u7d22\u5f15\u9375\u540d\u7a31
+FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=\u7a2e\u985e\u7d22\u5f15\u9375\u503c
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=ID \u7d22\u5f15\u9375\u540d\u7a31
+FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=ID \u7d22\u5f15\u9375\u503c
+FORM_CONTROL_TITLE_DISCOVERY_URL=\u63a2\u7d22 URL
+
+# Find actions
+ALT_FIND=\u5c0b\u627e
+ALT_SUBQUERY=\u5c0b\u627e %1 \u5b50\u67e5\u8a62
+FORM_LABEL_QUERY_NAME=\u9019\u9805\u67e5\u8a62\u7684\u540d\u7a31
+DEFAULT_QUERY_NAME=\u67e5\u8a62\u7d50\u679c
+DEFAULT_SUBQUERY_NAME=%1 - %2 \u5b50\u67e5\u8a62
+FORM_LABEL_SEARCH_FOR=\u641c\u5c0b\u76ee\u6a19
+FORM_OPTION_BUSINESSES=\u5546\u696d
+FORM_OPTION_SERVICES=\u670d\u52d9
+FORM_OPTION_SERVICE_INTERFACES=\u670d\u52d9\u4ecb\u9762
+FORM_LABEL_SEARCH_TYPE=\u641c\u5c0b\u985e\u578b
+FORM_RADIO_SIMPLE=\u7c21\u5f0f
+FORM_RADIO_ADVANCED=\u9032\u968e
+FORM_RADIO_UUID=UUID
+FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u5546\u696d\u7684\u5c40\u90e8\u6216\u5b8c\u6574\u540d\u7a31\u3002'%' \u7b26\u865f\u53ef\u7528\u4f86\u4f5c\u70ba\u7b26\u5408\u4efb\u4f55\u5b57\u5143\u7684\u842c\u7528\u5b57\u5143\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_FIND_ADVANCED_DESC=\u8acb\u8f38\u5165\u4e0b\u9762\u5217\u51fa\u7684\u4e00\u6216\u591a\u500b\u53c3\u6578\u7684\u503c\u3002\u5728\u300c\u540d\u7a31\u300d\u8868\u683c\u7684\u300c\u540d\u7a31\u300d\u6b04\u4f4d\u4e2d\uff0c'%' \u7b26\u865f\u53ef\u7528\u4f86\u4f5c\u70ba\u7b26\u5408\u4efb\u4f55\u5b57\u5143\u7684\u842c\u7528\u5b57\u5143\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_FIND_BUSINESS_UUID_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u5546\u696d\u7684 UUID\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_NAMES=\u540d\u7a31
+FORM_LINK_ADD=\u65b0\u589e
+FORM_LINK_GET=\u53d6\u5f97
+FORM_LINK_FIND=\u5c0b\u627e
+FORM_LINK_REMOVE=\u79fb\u9664
+FORM_LABEL_OWNED=\u64c1\u6709\u7684
+FORM_LABEL_PUBLISH_URL=\u767c\u4f48 URL
+FORM_LABEL_USERID=\u4f7f\u7528\u8005 ID
+FORM_LABEL_PASSWORD=\u5bc6\u78bc
+FORM_LABEL_LANGUAGE=\u8a9e\u8a00
+FORM_LABEL_NAME=\u540d\u7a31
+FORM_LABEL_DESCRIPTION=\u8aaa\u660e
+FORM_OPTION_LANGUAGE_EN=\u82f1\u6587
+FORM_OPTION_LANGUAGE_AA=\u963f\u6cd5\u723e\u6587
+FORM_OPTION_LANGUAGE_AB=\u963f\u5e03\u54c8\u897f\u4e9e\u6587
+FORM_OPTION_LANGUAGE_AF=\u5357\u975e\u8377\u862d\u6587
+FORM_OPTION_LANGUAGE_AM=\u963f\u59c6\u54c8\u7acb\u514b\u6587
+FORM_OPTION_LANGUAGE_AR=\u963f\u62c9\u4f2f\u6587
+FORM_OPTION_LANGUAGE_AS=\u963f\u85a9\u59c6\u6587
+FORM_OPTION_LANGUAGE_AY=\u611b\u4f9d\u746a\u62c9\u6587
+FORM_OPTION_LANGUAGE_AZ=\u4e9e\u585e\u62dc\u7136\u6587
+FORM_OPTION_LANGUAGE_BA=\u5df4\u4ec0\u57fa\u723e\u6587
+FORM_OPTION_LANGUAGE_BE=\u767d\u4fc4\u7f85\u65af\u6587
+FORM_OPTION_LANGUAGE_BG=\u4fdd\u52a0\u5229\u4e9e\u6587
+FORM_OPTION_LANGUAGE_BH=\u6bd4\u54c8\u723e\u6587
+FORM_OPTION_LANGUAGE_BI=\u78a7\u65af\u62c9\u746a\u6587
+FORM_OPTION_LANGUAGE_BN=\u5b5f\u52a0\u62c9\u6587 (Bengali; Bangla)
+FORM_OPTION_LANGUAGE_BO=\u85cf\u6587
+FORM_OPTION_LANGUAGE_BR=\u5e03\u5217\u5854\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_CA=\u52a0\u6cf0\u862d\u6587
+FORM_OPTION_LANGUAGE_CO=\u79d1\u897f\u5609\u6587
+FORM_OPTION_LANGUAGE_CZ=\u6377\u514b\u6587
+FORM_OPTION_LANGUAGE_CY=\u5a01\u723e\u65af\u6587
+FORM_OPTION_LANGUAGE_DA=\u4e39\u9ea5\u6587
+FORM_OPTION_LANGUAGE_DE=\u5fb7\u6587
+FORM_OPTION_LANGUAGE_DZ=\u4e0d\u4e39\u6587
+FORM_OPTION_LANGUAGE_EL=\u5e0c\u81d8\u6587
+FORM_OPTION_LANGUAGE_EO=\u4e16\u754c\u8a9e
+FORM_OPTION_LANGUAGE_ES=\u897f\u73ed\u7259\u6587
+FORM_OPTION_LANGUAGE_ET=\u611b\u6c99\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_EU=\u5df4\u65af\u514b\u6587
+FORM_OPTION_LANGUAGE_FA=\u6ce2\u65af\u6587
+FORM_OPTION_LANGUAGE_FI=\u82ac\u862d\u6587
+FORM_OPTION_LANGUAGE_FJ=\u6590\u6fdf\u6587
+FORM_OPTION_LANGUAGE_FO=\u6590\u7f85\u7fa4\u5cf6\u6587
+FORM_OPTION_LANGUAGE_FR=\u6cd5\u6587
+FORM_OPTION_LANGUAGE_FY=\u5f17\u91cc\u897f\u4e9e\u6587
+FORM_OPTION_LANGUAGE_GA=\u611b\u723e\u862d\u6587
+FORM_OPTION_LANGUAGE_GD=\u8607\u683c\u862d\u84cb\u723e\u6587
+FORM_OPTION_LANGUAGE_GL=\u52a0\u91cc\u897f\u4e9e\u6587
+FORM_OPTION_LANGUAGE_GN=\u74dc\u62c9\u5c3c\u6587
+FORM_OPTION_LANGUAGE_GU=\u53e4\u5409\u62c9\u7279\u6587
+FORM_OPTION_LANGUAGE_HA=\u8c6a\u85a9\u6587
+FORM_OPTION_LANGUAGE_HI=\u5317\u5370\u5ea6\u6587
+FORM_OPTION_LANGUAGE_HR=\u514b\u7f85\u57c3\u897f\u4e9e\u6587
+FORM_OPTION_LANGUAGE_HU=\u5308\u7259\u5229\u6587
+FORM_OPTION_LANGUAGE_HY=\u4e9e\u7f8e\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_IA=\u4eba\u5de5\u570b\u969b\u8a9e
+FORM_OPTION_LANGUAGE_IE=\u570b\u969b\u8a9e
+FORM_OPTION_LANGUAGE_IK=\u4f0a\u52aa\u76ae\u514b\u6587
+FORM_OPTION_LANGUAGE_IN=\u5370\u5c3c\u6587
+FORM_OPTION_LANGUAGE_IS=\u51b0\u5cf6\u6587
+FORM_OPTION_LANGUAGE_IT=\u7fa9\u5927\u5229\u6587
+FORM_OPTION_LANGUAGE_IW=\u5e0c\u4f2f\u4f86\u6587
+FORM_OPTION_LANGUAGE_JA=\u65e5\u6587
+FORM_OPTION_LANGUAGE_JI=\u610f\u7b2c\u7dd2\u6587
+FORM_OPTION_LANGUAGE_JW=\u722a\u54c7\u6587
+FORM_OPTION_LANGUAGE_KA=\u55ac\u6cbb\u4e9e\u6587
+FORM_OPTION_LANGUAGE_KK=\u54c8\u85a9\u514b\u6587
+FORM_OPTION_LANGUAGE_KL=\u683c\u6797\u862d\u6587
+FORM_OPTION_LANGUAGE_KM=\u67ec\u57d4\u585e\u6587
+FORM_OPTION_LANGUAGE_KN=\u574e\u90a3\u9054\u6587
+FORM_OPTION_LANGUAGE_KO=\u97d3\u6587
+FORM_OPTION_LANGUAGE_KS=\u5580\u4ec0\u7c73\u723e\u6587
+FORM_OPTION_LANGUAGE_KU=\u5eab\u723e\u5fb7\u6587
+FORM_OPTION_LANGUAGE_KY=\u5409\u723e\u5409\u65af\u6587
+FORM_OPTION_LANGUAGE_LA=\u62c9\u4e01\u6587
+FORM_OPTION_LANGUAGE_LN=\u6797\u683c\u62c9\u6587
+FORM_OPTION_LANGUAGE_LO=\u5bee\u6587
+FORM_OPTION_LANGUAGE_LT=\u7acb\u9676\u5b9b\u6587
+FORM_OPTION_LANGUAGE_LV=\u62c9\u812b\u7dad\u4e9e\u6587\u3001\u5217\u7279\u6587
+FORM_OPTION_LANGUAGE_MG=\u99ac\u62c9\u52a0\u897f\u6587
+FORM_OPTION_LANGUAGE_MI=\u6bdb\u5229\u6587
+FORM_OPTION_LANGUAGE_MK=\u99ac\u5176\u9813\u6587
+FORM_OPTION_LANGUAGE_ML=\u99ac\u4f86\u4e9e\u62c9\u59c6\u6587
+FORM_OPTION_LANGUAGE_MN=\u8499\u53e4\u6587
+FORM_OPTION_LANGUAGE_MO=\u6469\u723e\u9054\u7dad\u4e9e\u6587
+FORM_OPTION_LANGUAGE_MR=\u99ac\u62c9\u5730\u6587
+FORM_OPTION_LANGUAGE_MS=\u99ac\u4f86\u6587
+FORM_OPTION_LANGUAGE_MT=\u99ac\u723e\u4ed6\u6587
+FORM_OPTION_LANGUAGE_MY=\u7dec\u7538\u6587
+FORM_OPTION_LANGUAGE_NA=\u8afe\u9b6f\u6587
+FORM_OPTION_LANGUAGE_NE=\u5c3c\u6cca\u723e\u6587
+FORM_OPTION_LANGUAGE_NL=\u8377\u862d\u6587
+FORM_OPTION_LANGUAGE_NO=\u632a\u5a01\u6587
+FORM_OPTION_LANGUAGE_OC=\u6b50\u514b\u5e0c\u5766\u6587
+FORM_OPTION_LANGUAGE_OM=(Afan) \u5967\u91cc\u4e9e\u6587
+FORM_OPTION_LANGUAGE_OR=\u5967\u91cc\u4e9e\u6587
+FORM_OPTION_LANGUAGE_PA=\u65c1\u906e\u666e\u6587
+FORM_OPTION_LANGUAGE_PL=\u6ce2\u862d\u6587
+FORM_OPTION_LANGUAGE_PS=\u5e15\u65bd\u5716\u6587\u3001\u666e\u4ec0\u5716\u6587
+FORM_OPTION_LANGUAGE_PT=\u8461\u8404\u7259\u6587
+FORM_OPTION_LANGUAGE_QU=\u84cb\u695a\u74e6\u6587
+FORM_OPTION_LANGUAGE_RM=\u91cc\u6258\u7f85\u66fc\u65af\u6587
+FORM_OPTION_LANGUAGE_RN=\u514b\u502b\u5730\u6587
+FORM_OPTION_LANGUAGE_RO=\u7f85\u99ac\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_RU=\u4fc4\u6587
+FORM_OPTION_LANGUAGE_RW=\u91d1\u4e9e\u76e7\u5b89\u6587
+FORM_OPTION_LANGUAGE_SA=\u68b5\u6587
+FORM_OPTION_LANGUAGE_SD=\u4fe1\u5fb7\u6587
+FORM_OPTION_LANGUAGE_SG=\u6851\u683c\u9b6f\u6587
+FORM_OPTION_LANGUAGE_SH=\u585e\u723e\u7dad\u4e9e-\u514b\u7f85\u5730\u4e9e\u6587
+FORM_OPTION_LANGUAGE_SI=\u932b\u862d\u6587
+FORM_OPTION_LANGUAGE_SK=\u65af\u6d1b\u4f10\u514b\u6587
+FORM_OPTION_LANGUAGE_SL=\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_SM=\u85a9\u6469\u7259\u6587
+FORM_OPTION_LANGUAGE_SN=\u7d39\u7d0d\u6587
+FORM_OPTION_LANGUAGE_SO=\u7d22\u99ac\u5229\u6587
+FORM_OPTION_LANGUAGE_SQ=\u963f\u723e\u5df4\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_SR=\u585e\u723e\u7dad\u4e9e\u6587
+FORM_OPTION_LANGUAGE_SS=\u53f2\u74e6\u6fdf\u6587
+FORM_OPTION_LANGUAGE_ST=\u5e2d\u7d22\u6258\u6587
+FORM_OPTION_LANGUAGE_SU=\u5dfd\u4ed6\u6587
+FORM_OPTION_LANGUAGE_SV=\u745e\u5178\u6587
+FORM_OPTION_LANGUAGE_SW=\u65af\u83ef\u897f\u91cc\u6587
+FORM_OPTION_LANGUAGE_TA=\u6cf0\u7c73\u723e\u6587
+FORM_OPTION_LANGUAGE_TE=\u6cf0\u53e4\u62c9\u6587
+FORM_OPTION_LANGUAGE_TG=\u5854\u5409\u514b\u6587
+FORM_OPTION_LANGUAGE_TH=\u6cf0\u6587
+FORM_OPTION_LANGUAGE_TI=\u63d0\u683c\u5229\u5c3c\u4e9e\u6587
+FORM_OPTION_LANGUAGE_TK=\u571f\u5eab\u66fc\u6587
+FORM_OPTION_LANGUAGE_TL=\u5854\u52a0\u6d1b\u6587
+FORM_OPTION_LANGUAGE_TN=\u8272\u74e6\u7d0d\u6587
+FORM_OPTION_LANGUAGE_TO=\u6771\u52a0\u6587
+FORM_OPTION_LANGUAGE_TR=\u571f\u8033\u5176\u6587
+FORM_OPTION_LANGUAGE_TS=\u5b8b\u52a0\u6587
+FORM_OPTION_LANGUAGE_TT=\u97c3\u977c\u6587
+FORM_OPTION_LANGUAGE_TW=\u5951\u7dad\u6587
+FORM_OPTION_LANGUAGE_UK=\u70cf\u514b\u862d\u6587
+FORM_OPTION_LANGUAGE_UR=\u70cf\u90fd\u6587
+FORM_OPTION_LANGUAGE_UZ=\u70cf\u8332\u5225\u514b\u6587
+FORM_OPTION_LANGUAGE_VI=\u8d8a\u5357\u6587
+FORM_OPTION_LANGUAGE_VO=\u6c83\u62c9\u666e\u514b\u6587
+FORM_OPTION_LANGUAGE_WO=\u70cf\u6d1b\u592b\u6587
+FORM_OPTION_LANGUAGE_XH=\u79d1\u85a9\u6587
+FORM_OPTION_LANGUAGE_YO=\u512a\u9b6f\u5df4\u6587
+FORM_OPTION_LANGUAGE_ZH=\u4e2d\u6587
+FORM_OPTION_LANGUAGE_ZU=\u7956\u9b6f\u6587
+FORM_LABEL_EXACT_NAME_MATCH=\u5b8c\u5168\u76f8\u7b26
+FORM_LABEL_CASE_SENSITIVE_MATCH=\u5340\u5206\u5927\u5c0f\u5beb
+FORM_LABEL_SOUNDEX=\u4f3c\u4e4e\u50cf
+FORM_LABEL_IDENTIFIERS=ID
+FORM_LABEL_IDENTIFIER_TYPE=\u985e\u578b
+
+# Do not translate the two items below.
+FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
+FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas \u767b\u9304
+
+FORM_LABEL_KEY_NAME=\u7d22\u5f15\u9375\u540d\u7a31
+FORM_LABEL_KEY_VALUE=\u9375\u503c
+FORM_LABEL_CATEGORIES=\u7a2e\u985e
+FORM_LABEL_CATEGORY_TYPE=\u985e\u578b
+FORM_OPTION_CATEGORY_NAICS=NAICS
+FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
+FORM_OPTION_CATEGORY_GEO=GEO
+FORM_OPTION_CATEGORY_DWCOMMUNITY=dW \u793e\u7fa4
+FORM_LABEL_BUSINESS_CATEGORIES=\u76f8\u4e92\u6bd4\u8f03\uff1a
+FORM_OPTION_BUSINESSES_ONLY=\u53ea\u6709\u5546\u696d
+FORM_OPTION_SERVICES_ONLY=\u53ea\u6709\u670d\u52d9
+FORM_OPTION_BOTH=\u5546\u696d\u548c\u670d\u52d9
+FORM_LABEL_DISCOVERYURLS=\u63a2\u7d22 URL
+FORM_LABEL_DISCOVERYURL=\u63a2\u7d22 URL
+FORM_LABEL_FINDQUALIFIERS=\u5c0b\u627e\u9650\u5b9a\u5143
+FORM_LABEL_COMBINE_KEYS=\u7d44\u5408\u7d22\u5f15\u9375
+FORM_OPTION_ANDALLKEYS=\u4e14
+FORM_OPTION_ORALLKEYS=\u6216
+FORM_OPTION_ORLIKEKEYS=\u6216\u76f8\u4f3c
+FORM_LABEL_SORT_BY_NAME=\u4f9d\u540d\u7a31\u6392\u5e8f\uff1a
+FORM_RADIO_SORT_ASC=\u5347\u51aa
+FORM_RADIO_SORT_DESC=\u964d\u51aa
+FORM_LABEL_SORT_BY_DATE=\u4f9d\u65e5\u671f\u6392\u5e8f\uff1a
+FORM_LABEL_MAX_SEARCH_SET=\u641c\u5c0b\u96c6\u5927\u5c0f\u4e0a\u9650\uff1a
+FORM_LABEL_MAX_RESULTS=\u7d50\u679c\u6578\u76ee\u4e0a\u9650\uff1a
+FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u670d\u52d9\u7684\u5c40\u90e8\u6216\u5b8c\u6574\u540d\u7a31\u3002'%' \u7b26\u865f\u53ef\u7528\u4f86\u4f5c\u70ba\u7b26\u5408\u4efb\u4f55\u5b57\u5143\u7684\u842c\u7528\u5b57\u5143\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_FIND_SERVICE_UUID_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u670d\u52d9\u7684 UUID\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u670d\u52d9\u4ecb\u9762\u7684\u5c40\u90e8\u6216\u5b8c\u6574\u540d\u7a31\u3002'%' \u7b26\u865f\u53ef\u7528\u4f86\u4f5c\u70ba\u7b26\u5408\u4efb\u4f55\u5b57\u5143\u7684\u842c\u7528\u5b57\u5143\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=\u8acb\u8f38\u5165\u8981\u641c\u5c0b\u7684\u670d\u52d9\u4ecb\u9762\u7684 UUID\u3002\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u57f7\u884c\u641c\u5c0b\u3002
+FORM_LABEL_SERVICE_INTERFACES=\u670d\u52d9\u4ecb\u9762
+FORM_LABEL_UUID_KEY=UUID \u7d22\u5f15\u9375\uff1a
+FORM_LABEL_USE_SERVICE=\u4f7f\u7528\u670d\u52d9
+FORM_LABEL_SERVICE=\u670d\u52d9
+FORM_LABEL_BUSINESS=\u5546\u696d
+FORM_LABEL_PUBLISH_ASSERTIONS=\u767c\u4f48\u8005\u78ba\u8a8d
+FORM_LABEL_DIRECTION=\u65b9\u5411
+FORM_LABEL_FROM_KEY=\u4f86\u6e90\u7d22\u5f15\u9375
+FORM_LABEL_TO_KEY=\u76ee\u6a19\u7d22\u5f15\u9375
+FORM_LABEL_STATUS=\u72c0\u614b
+FORM_LABEL_ASSERTION_TYPE=\u78ba\u8a8d\u985e\u578b
+FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=\u4e0a\u4e0b\u5c64
+FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=\u540c\u5c64
+FORM_OPTION_ASSERTION_TYPE_IDENTITY=\u8eab\u5206
+FORM_LABEL_ASSERTION_DIRETION_DESC=<strong>\u4f86\u6e90</strong>\u65b9\u5411\u6703\u5efa\u7acb\u5f9e\u9019\u500b\u5546\u696d\u5230\u4e0a\u9762\u7684\u5546\u696d\u7684\u767c\u4f48\u8005\u78ba\u8a8d\u3002 <strong>\u76ee\u6a19</strong>\u65b9\u5411\u6703\u5efa\u7acb\u5f9e\u4e0a\u9762\u7684\u5546\u696d\u5230\u9019\u500b\u5546\u696d\u7684\u767c\u4f48\u8005\u78ba\u8a8d\u3002
+FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
+FORM_OPTION_ASSERTION_DIRECTION_TO=<---
+FORM_LABEL_THIS_BUSINESS=\u9019\u500b
+MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E \u8acb\u8f38\u5165\u67e5\u8a62\u7684\u6709\u6548\u540d\u7a31\u3002
+MSG_ERROR_INVALID_NAMES=IWAB0141E \u8acb\u8f38\u5165\u4e00\u7cfb\u5217\u6709\u6548\u7684\u540d\u7a31\u3002
+MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E \u8acb\u8f38\u5165\u6709\u6548\u7684\u767c\u4f48 URL\u3002
+MSG_ERROR_INVALID_USERID=IWAB0143E \u8acb\u8f38\u5165\u6709\u6548\u7684\u4f7f\u7528\u8005 ID\u3002
+MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E \u8acb\u8f38\u5165\u6700\u5927\u641c\u5c0b\u96c6\u7684\u6709\u6548\u5927\u5c0f\u3002
+MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E \u8acb\u8f38\u5165\u7d50\u679c\u6578\u76ee\u4e0a\u9650\u7684\u6709\u6548\u5927\u5c0f\u3002
+MSG_INFO_BUSINESSES_FOUND=IWAB0147I \u627e\u5230\u7684\u5546\u696d\u6578\u76ee\uff1a%1
+MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E \u627e\u4e0d\u5230\u5546\u696d\u3002
+MSG_INFO_SERVICES_FOUND=IWAB0149I \u627e\u5230\u7684\u670d\u52d9\u6578\u76ee\uff1a%1
+MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E \u627e\u4e0d\u5230\u670d\u52d9\u3002
+MSG_ERROR_SINGLE_ITEM=IWAB0151E \u8acb\u53ea\u9078\u53d6\u4e00\u500b\u9805\u76ee\u3002
+MSG_QUESTION_ITEM_REPLACEMENT=\u9078\u9805\u6703\u53d6\u4ee3\u5df2\u5728\u76ee\u6a19\u4e2d\u7684\u9805\u76ee\u3002\u60a8\u8981\u7e7c\u7e8c\u55ce\uff1f
+MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I \u627e\u5230\u7684\u670d\u52d9\u4ecb\u9762\u6578\uff1a%1
+MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E \u627e\u4e0d\u5230\u670d\u52d9\u4ecb\u9762\u3002
+MSG_ERROR_NOTHING_SELECTED=IWAB0154E \u8acb\u9078\u53d6\u81f3\u5c11\u4e00\u500b\u9805\u76ee\u3002
+MSG_ERROR_INVALID_UUID_KEY=IWAB0155E \u8acb\u8f38\u5165\u4e00\u500b\u6709\u6548\u7684 UUID \u9375\u3002
+MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E \u5b50\u67e5\u8a62\u7684\u67e5\u8a62\u540d\u7a31\u4e0d\u80fd\u8207\u8d77\u6e90\u76f8\u540c\u3002
+MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E \u672a\u767c\u4f48\u6216\u63a2\u7d22\u5230\u6307\u5b9a\u985e\u578b\u7684\u9805\u76ee\u3002
+
+# Results
+ALT_QUERY_RESULTS=\u67e5\u8a62\u7d50\u679c
+FORM_LABEL_SUBQUERY=\u7d50\u679c\u53ef\u7528\u4f86\u4f5c\u70ba\u53e6\u4e00\u9805\u4f5c\u696d\u7684\u8f38\u5165\u3002\u8acb\u4e00\u4e0b\u9802\u7aef\u7684<strong>\u76ee\u6a19</strong>\u93c8\u7d50\u4f86\u67e5\u770b\u4f5c\u696d\u3002\u60a8\u53ef\u4ee5\u6309\u4e00\u4e0b<strong>\u8f49\u9001</strong>\u6309\u9215\uff0c\u5728\u4f5c\u696d\u4e2d\u4f7f\u7528\u9078\u53d6\u7684\u7d50\u679c\u3002
+FORM_LABEL_QUERY=\u8acb\u9078\u53d6\u4e00\u500b\u7d50\u679c\u4f86\u67e5\u770b\u8a73\u7d30\u8cc7\u6599\uff0c\u6216\u9078\u53d6\u4e00\u7d44\u7d50\u679c\uff0c\u518d\u6309\u67d0\u500b\u6309\u9215\u4f86\u57f7\u884c\u4f5c\u696d\u3002
+FORM_LINK_TARGET=\u76ee\u6a19
+FORM_BUTTON_TRANSFER=\u8f49\u9001
+FORM_BUTTON_REFRESH=\u91cd\u65b0\u6574\u7406
+FORM_BUTTON_ADD_TO_FAVORITES=\u52a0\u5230\u6211\u7684\u6700\u611b
+FORM_BUTTON_UNPUBLISH=\u53d6\u6d88\u767c\u4f48
+FORM_BUTTON_CLEAR=\u6e05\u9664
+
+# Publish actions
+ALT_PUBLISH=\u767c\u4f48
+FORM_LABEL_PUBLISH=\u767c\u4f48\uff1a
+FORM_OPTION_BUSINESS=\u5546\u696d
+FORM_OPTION_SERVICE=\u670d\u52d9
+FORM_OPTION_SERVICE_INTERFACE=\u670d\u52d9\u4ecb\u9762
+FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=\u8acb\u8f38\u5165\u8981\u767c\u4f48\u7684\u5546\u696d\u7684\u540d\u7a31\u548c\u9078\u7528\u8aaa\u660e\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=\u8acb\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u5546\u696d\u7684\u540d\u7a31\u3002\u4e5f\u53ef\u4ee5\u6307\u5b9a\u5176\u4ed6\u53c3\u6578\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=\u8acb\u53d6\u5f97\u6216\u5c0b\u627e\u4e00\u9805\u5546\u696d\uff0c\u518d\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u670d\u52d9\u7684 WSDL URL\u3001\u540d\u7a31\u548c\u9078\u7528\u8aaa\u660e\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=\u8acb\u53d6\u5f97\u6216\u5c0b\u627e\u4e00\u9805\u5546\u696d\uff0c\u518d\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u670d\u52d9\u7684 WSDL URL \u548c\u540d\u7a31\u3002\u4e5f\u53ef\u4ee5\u6307\u5b9a\u5176\u4ed6\u53c3\u6578\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=\u8acb\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u670d\u52d9\u7684 WSDL URL\u3001\u540d\u7a31\u548c\u9078\u7528\u8aaa\u660e\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=\u8acb\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u670d\u52d9\u7684 WSDL URL \u548c\u540d\u7a31\u3002\u4e5f\u53ef\u4ee5\u6307\u5b9a\u5176\u4ed6\u53c3\u6578\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=\u8acb\u8f38\u5165\u8981\u767c\u4f48\u7684\u670d\u52d9\u4ecb\u9762\u7684 WSDL URL\u3001\u540d\u7a31\u548c\u9078\u7528\u8aaa\u660e\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=\u8acb\u63d0\u4f9b\u8981\u767c\u4f48\u7684\u670d\u52d9\u4ecb\u9762\u7684 WSDL URL \u548c\u540d\u7a31\u3002\u4e5f\u53ef\u4ee5\u6307\u5b9a\u5176\u4ed6\u53c3\u6578\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_PUBLISH_FORM=\u767c\u4f48\u683c\u5f0f
+FORM_LABEL_DESCRIPTION=\u8aaa\u660e
+FORM_LABEL_DESCRIPTIONS=\u8aaa\u660e
+MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I \u5df2\u9806\u5229\u767c\u4f48 %1 \u5546\u696d\u3002
+MSG_INFO_SERVICE_PUBLISHED=IWAB0159I \u5df2\u9806\u5229\u767c\u4f48 %1 \u670d\u52d9\u3002
+MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I \u5df2\u9806\u5229\u767c\u4f48\u670d\u52d9\u4ecb\u9762 %1\u3002
+MSG_ERROR_INVALID_NAME=IWAB0161E \u8acb\u8f38\u5165\u6709\u6548\u540d\u7a31\u3002
+MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E \u8acb\u9078\u53d6\u975e\u7a7a\u767d\u7684\u8a9e\u8a00\u7d66\u7b2c %2 \u5217\u4e2d\u7684 %1\u3002\u53ea\u6709\u7b2c\u4e00\u5217\u53ef\u4ee5\u6709\u7a7a\u767d\u8a9e\u8a00\u3002
+MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E \u8acb\u8b8a\u66f4\u7b2c %2 \u5217\u4e2d\u7684 %1 \u7684\u8a9e\u8a00\u3002\u73fe\u884c\u8a9e\u8a00\u5df2\u5728\u4f7f\u7528\u4e2d\u3002
+MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E \u8acb\u5728\u7b2c %2 \u5217\u4e2d\u8f38\u5165\u6709\u6548\u7684 %1\u3002
+MSG_ERROR_INVALID_WSDL_URL=IWAB0253E \u8acb\u8f38\u5165\u6709\u6548\u7684 WSDL URL\u3002
+MSG_ERROR_NO_NAMES=IWAB0254E \u8acb\u65b0\u589e\u81f3\u5c11\u4e00\u500b\u540d\u7a31\u3002
+MSG_ERROR_INVALID_SERVICE=IWAB0255E \u8acb\u63d0\u4f9b\u6709\u6548\u7684\u670d\u52d9\u3002
+MSG_ERROR_INVALID_BUSINESS=IWAB0256E \u8acb\u63d0\u4f9b\u6709\u6548\u7684\u5546\u696d\u3002
+
+# Business Publish Service action
+ALT_PUBLISH_SERVICE=\u767c\u4f48\u670d\u52d9
+
+# WSDL Browser
+TITLE_WSDL_BROWSER=WSDL \u700f\u89bd\u5668 - %1
+FORM_LABEL_WSDL_SOURCE=\u8acb\u9078\u53d6\u4e00\u500b WSDL \u4f86\u6e90\uff1a
+FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Web \u5c08\u6848
+FORM_LABEL_WSDL_SOURCE_FAVORITES=\u6211\u7684\u6700\u611b
+FORM_LABEL_WEB_PROJECT=Web \u5c08\u6848
+FORM_LABEL_WSDL_URL=WSDL URL
+ALT_WSDL_BROWSER=WSDL \u700f\u89bd\u5668
+
+# Details
+FORM_LINK_EDIT=\u7de8\u8f2f
+FORM_LINK_CANCEL=\u53d6\u6d88
+FORM_LABEL_BUSINESS_KEY=\u5546\u696d\u91d1\u9470
+FORM_LABEL_SERVICE_KEY=\u670d\u52d9\u91d1\u9470
+FORM_LABEL_SERVICE_INTERFACE_KEY=TModel \u91d1\u9470
+FORM_LABEL_USER_DEFINED_CATEGORIES=\u4f7f\u7528\u8005\u5b9a\u7fa9\u7684\u7a2e\u985e
+FORM_LABEL_CHECKED=\u52fe\u9078
+FORM_LABEL_FILE=\u6a94\u6848
+MSG_QUESTION_PUBLISH_ITEM=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u9805\u76ee\u3002\u60a8\u8981\u767c\u4f48\u5b83\u55ce\uff1f
+MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u670d\u52d9\u53ca\u5176\u5546\u696d\u3002\u8981\u7e7c\u7e8c\u767c\u4f48\u55ce\uff1f
+MSG_INFO_BUSINESS_UPDATED=IWAB0257I \u5df2\u9806\u5229\u66f4\u65b0 %1 \u5546\u696d\u3002
+MSG_INFO_SERVICE_UPDATED=IWAB0258I \u5df2\u9806\u5229\u66f4\u65b0 %1 \u670d\u52d9\u3002
+MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I \u5df2\u9806\u5229\u66f4\u65b0\u670d\u52d9\u4ecb\u9762 %1\u3002
+MSG_INFO_REGISTRY_UPDATED=IWAB0323I \u5df2\u9806\u5229\u66f4\u65b0 %1 \u767b\u9304\u3002
+
+# UnpublishAction
+ALT_UNPUBLISH_BUSINESS=\u53d6\u6d88\u767c\u4f48\u5546\u696d
+ALT_UNPUBLISH_SERVICE=\u53d6\u6d88\u767c\u4f48\u670d\u52d9
+ALT_UNPUBLISH_SERVICE_INTERFACE=\u53d6\u6d88\u767c\u4f48\u670d\u52d9\u4ecb\u9762
+FORM_LABEL_UNPUBLISH_DESC=\u8acb\u6309<strong>\u57f7\u884c</strong>\u4f86\u53d6\u6d88\u767c\u4f48\u9019\u500b\u7269\u4ef6\u3002\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I \u5df2\u9806\u5229\u53d6\u6d88\u767c\u4f48 %1 \u5546\u696d\u3002
+MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I \u5df2\u9806\u5229\u53d6\u6d88\u767c\u4f48 %1 \u670d\u52d9\u3002
+MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I \u5df2\u9806\u5229\u53d6\u6d88\u767c\u4f48 %1 \u670d\u52d9\u4ecb\u9762\u3002
+
+# Add to WSDL Perspective
+ALT_ADD_TO_WSDL_PERSPECTIVE=\u52a0\u5230 WSDL \u9801\u9762
+MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 \u5df2\u9806\u5229\u52a0\u5230 WSDL \u9801\u9762\u4e2d\u3002
+MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 \u7121\u6cd5\u52a0\u5230 WSDL \u9801\u9762\u4e2d\u3002
+
+# Add to Favorites
+ALT_ADD_TO_FAVORITES=\u52a0\u5230\u6211\u7684\u6700\u611b
+MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 \u5df2\u9806\u5229\u52a0\u5230\u6211\u7684\u6700\u611b\u3002
+MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 \u7121\u6cd5\u52a0\u5230\u6211\u7684\u6700\u611b\u3002
+MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 \u5df2\u5728\u6211\u7684\u6700\u611b\u4e2d\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6211\u7684\u6700\u611b\u5df2\u5b58\u5728\u3002\u60a8\u8981\u6539\u5beb\u55ce\uff1f
+
+# Refresh
+MSG_INFO_NODE_REFRESHED=IWAB0265I \u5df2\u91cd\u65b0\u6574\u7406 %1\u3002
+MSG_QUESTION_REMOVE_NODE=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1\u3002\u60a8\u8981\u6e05\u9664\u5b83\u55ce\uff1f
+
+# ManageReferencedServices
+ALT_MANAGE_REFERENCED_SERVICES=\u7ba1\u7406\u53c3\u7167\u7684\u670d\u52d9
+FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=\u8acb\u6309\u4e00\u4e0b<strong>\u65b0\u589e\u670d\u52d9</strong>\u6309\u9215\uff0c\u4f86\u5c07\u5df2\u63a2\u7d22\u7684\u6216\u5df2\u767c\u4f48\u7684\u670d\u52d9\u65b0\u589e\u81f3\u6240\u53c3\u7167\u7684\u670d\u52d9\u6e05\u55ae\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u79fb\u9664\u53c3\u7167</strong>\u6309\u9215\u4f86\u79fb\u9664\u6240\u9078\u7684\u53c3\u7167\u3002 \u8b8a\u66f4\u53ef\u80fd\u9700\u8981\u9451\u5225\u3002
+FORM_LABEL_REFERENCED_SERVICES=\u53c3\u7167\u7684\u670d\u52d9
+FORM_BUTTON_ADD_SERVICES=\u65b0\u589e\u670d\u52d9
+FORM_BUTTON_REMOVE_REFERENCES=\u79fb\u9664\u53c3\u7167
+MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E \u8acb\u9078\u53d6\u81f3\u5c11\u4e00\u500b\u53c3\u7167\u7684\u670d\u52d9\uff0c\u518d\u7e7c\u7e8c\u4f5c\u696d\u3002
+MSG_ERROR_NO_SERVICES=IWAB0267E \u8acb\u53d6\u5f97\u6216\u5c0b\u627e\u81f3\u5c11\u4e00\u9805\u670d\u52d9\uff0c\u518d\u7e7c\u7e8c\u4f5c\u696d\u3002
+MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E \u7121\u6cd5\u53c3\u7167 %1 \u670d\u52d9\u3002
+MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E \u7121\u6cd5\u79fb\u9664\u670d\u52d9\u53c3\u7167 %1\u3002
+MSG_INFO_SERVICE_REFERENCED=IWAB0270I \u5df2\u9806\u5229\u53c3\u7167 %1 \u670d\u52d9\u3002
+MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I \u5df2\u9806\u5229\u79fb\u9664\u670d\u52d9\u53c3\u7167 %1\u3002
+
+# ManagePublisherAssertions
+ALT_MANAGE_PUBLISHER_ASSERTIONS=\u7ba1\u7406\u767c\u4f48\u8005\u78ba\u8a8d
+FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=\u8acb\u6309\u4e00\u4e0b<strong>\u65b0\u589e\u78ba\u8a8d</strong>\u4f86\u5c07\u5df2\u63a2\u7d22\u7684\u6216\u5df2\u767c\u4f48\u7684\u5546\u696d\u65b0\u589e\u81f3\u767c\u4f48\u8005\u78ba\u8a8d\u6e05\u55ae\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u79fb\u9664\u78ba\u8a8d</strong>\u4f86\u79fb\u9664\u6240\u9078\u7684\u78ba\u8a8d\u3002\u8acb\u6309\u4e00\u4e0b<strong>\u5b8c\u6210\u78ba\u8a8d</strong>\u4f86\u5b8c\u6210\u6240\u9078\u7684\u78ba\u8a8d\u3002\u8acb\u6309\u4e00\u4e0b<strong>\u91cd\u65b0\u6574\u7406\u78ba\u8a8d</strong>\u4f86\u91cd\u65b0\u6574\u7406\u78ba\u8a8d\u6e05\u55ae\u3002
+FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=\u8acb\u6ce8\u610f\uff0c\u53ea\u6709\u5546\u696d\u7684\u64c1\u6709\u8005\u80fd\u5920\u898b\u5230\u672a\u5b8c\u6210\u7684\u767c\u4f48\u8005\u78ba\u8a8d\u3002
+FORM_LABEL_BUSINESSES=\u5546\u696d
+FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=\u91cd\u65b0\u6574\u7406\u78ba\u8a8d
+FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=\u5b8c\u6210\u78ba\u8a8d
+FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=\u65b0\u589e\u78ba\u8a8d
+FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=\u79fb\u9664\u78ba\u8a8d
+MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I \u5df2\u91cd\u65b0\u6574\u7406\u767c\u4f48\u8005\u78ba\u8a8d\u3002
+MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E \u8acb\u9078\u53d6\u81f3\u5c11\u4e00\u500b\u672a\u5b8c\u6210\u7684\u767c\u4f48\u8005\u78ba\u8a8d\u3002
+MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E \u7121\u6cd5\u5728\u53e6\u4e00\u65b9\u6240\u64c1\u6709\u7684\u5546\u696d\u4e0a\u57f7\u884c\u9019\u9805\u4f5c\u696d\u3002
+
+# GetBusinesses
+ALT_GET_BUSINESS=\u53d6\u5f97\u5546\u696d
+ALT_GET_BUSINESSES=\u53d6\u5f97\u5546\u696d
+NODE_NAME_SERVICE_BUSINESS=%1 \u670d\u52d9\u7684\u5546\u696d
+NODE_NAME_SI_BUSINESSES=\u670d\u52d9\u4ecb\u9762 %1 \u7684\u5546\u696d
+MSG_QUESTION_REMOVE_SERVICE_NODE=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u670d\u52d9\u3002\u60a8\u8981\u79fb\u9664\u9019\u500b\u7bc0\u9ede\u55ce\uff1f
+
+# GetServiceInterfaces
+ALT_GET_SERVICE_INTERFACES=\u53d6\u5f97\u670d\u52d9\u4ecb\u9762
+NODE_NAME_SERVICE_SERVICE_INTERFACES=%1 \u670d\u52d9\u7684\u670d\u52d9\u4ecb\u9762
+MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u670d\u52d9\u3002\u60a8\u8981\u79fb\u9664\u9019\u500b\u7bc0\u9ede\u55ce\uff1f
+
+# GetServices
+ALT_GET_SERVICES=\u53d6\u5f97\u670d\u52d9
+NODE_NAME_SI_SERVICES=\u670d\u52d9\u4ecb\u9762 %1 \u7684\u670d\u52d9
+NODE_NAME_BUSINESS_SERVICES=%1 \u5546\u696d\u7684\u670d\u52d9
+MSG_QUESTION_REMOVE_SI_NODE=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u670d\u52d9\u4ecb\u9762\u3002\u60a8\u8981\u79fb\u9664\u9019\u500b\u7bc0\u9ede\u55ce\uff1f
+MSG_QUESTION_REMOVE_BUSINESS_NODE=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230\u5546\u696d\u3002\u60a8\u8981\u79fb\u9664\u9019\u500b\u7bc0\u9ede\u55ce\uff1f
+
+# RefreshUDDINodesAction
+MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1\u3002
+
+# Summaries
+ALT_SUMMARY_QUERIES=\u67e5\u8a62\u6458\u8981
+ALT_SUMMARY_BUSINESSES=\u5546\u696d\u6458\u8981
+ALT_SUMMARY_SERVICES=\u670d\u52d9\u6458\u8981
+ALT_SUMMARY_SERVICE_INTERFACES=\u670d\u52d9\u4ecb\u9762\u6458\u8981
+FORM_LABEL_QUERIES=\u67e5\u8a62
+
+# SelectSubQueryItemAction
+MSG_QUESTION_ITEM_VALIDATION_FAILED=\u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1\u3002\u60a8\u8981\u79fb\u9664\u5b83\u55ce\uff1f
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5c0e\u89bd\u5668\u5132\u5b58\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5c0e\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5c0e\u89bd\u5668\u5167\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u52d5\u4f5c\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5167\u5bb9\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5167\u5bb9\u5de5\u5177\u5217
+FRAME_TITLE_PROPERTIES_CONTENT=\u5167\u5bb9\u5167\u6587
+FRAME_TITLE_STATUS_CONTAINER=\u72c0\u614b\u5132\u5b58\u5668
+FRAME_TITLE_STATUS_TOOLBAR=\u72c0\u614b\u5de5\u5177\u5217
+FRAME_TITLE_STATUS_CONTENT=\u72c0\u614b\u5167\u5bb9
+FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=UDDI \u9801\u9762\u5167\u5bb9
+FRAME_TITLE_CATEGORIES_WORKAREA=\u7a2e\u985e\u5de5\u4f5c\u5340
+FRAME_TITLE_CATEGORIES_TOOLBAR=\u7a2e\u985e\u5de5\u5177\u5217
+FRAME_TITLE_CATEGORIES_CONTENT=\u7a2e\u985e\u5167\u5bb9
+FRAME_TITLE_WSDL_TOOLBAR=WSDL \u700f\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_WSDL_CONTENT=WSDL \u700f\u89bd\u5668\u5167\u5bb9
+
+# Form titles
+FORM_TITLE_BUSINESS_DETAILS=\u5546\u696d\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_BUSINESS_PUBLISH_SERVICE=\u5546\u696d\u767c\u4f48\u670d\u52d9\u8868\u55ae
+FORM_TITLE_GET_FORM=\u5f9e\u63a2\u7d22\u548c\u767c\u4f48\u7684\u7269\u4ef6\u8868\u55ae\u4e2d\u9078\u53d6
+FORM_TITLE_ITEMS_SUMMARY=\u9805\u76ee\u8868\u55ae\u6458\u8981
+FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=\u7ba1\u7406\u767c\u4f48\u8005\u78ba\u8a8d\u8868\u55ae
+FORM_TITLE_MANAGE_REFERENCED_SERVICES=\u7ba1\u7406\u53c3\u7167\u7684\u670d\u52d9\u8868\u55ae
+FORM_TITLE_OPEN_REGISTRY=\u958b\u555f\u767b\u9304\u8868\u55ae
+FORM_TITLE_REGISTRY_DETAILS=\u767b\u9304\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_REGISTRY_PUBLISH=\u767b\u9304\u767c\u4f48\u8868\u55ae
+FORM_TITLE_REGISTRY_FIND=\u767b\u9304\u5c0b\u627e\u8868\u55ae
+FORM_TITLE_RESULTS=\u7d50\u679c\u8868\u55ae
+FORM_TITLE_SERVICE_DETAILS=\u670d\u52d9\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_SERVICE_INTERFACE_DETAILS=\u670d\u52d9\u4ecb\u9762\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_UNPUBLISH=\u53d6\u6d88\u767c\u4f48\u8868\u55ae
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl.properties
new file mode 100644
index 000000000..f53ffe4ea
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL Main
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator Toolbar
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator Content
+FRAME_TITLE_ACTIONS_CONTAINER=Actions Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Properties Container
+FRAME_TITLE_PROPERTIES_TOOLBAR=Properties Toolbar
+FRAME_TITLE_PROPERTIES_CONTENT=Properties Content
+FRAME_TITLE_STATUS_CONTAINER=Status Container
+FRAME_TITLE_STATUS_TOOLBAR=Status Toolbar
+FRAME_TITLE_STATUS_CONTENT=Status Content
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL Page Content
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=XSD Information Dialog Toolbar
+FRAME_TITLE_XSD_INFORMATION_CONTENT=XSD Information Dialog Content
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=Open WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Enter a valid WSDL URL.
+MSG_ERROR_OPEN_WSDL=IWAB0379E Unable to open %1.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Errors were encountered while validating XML schemas.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 was successfully opened.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL Details
+FORM_LABEL_WSDL_DETAILS_DESC=Shown below are the details for this WSDL document. Click on a service or binding to see its details.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL Service Details
+FORM_LABEL_SERVICE_DETAILS_DESC=Shown below are the details for this &lt;service&gt; element. Click on a binding to see its operations.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL Binding Details
+FORM_LABEL_BINDING_DETAILS_DESC=Shown below are the details for this <strong>%1</strong> &lt;binding&gt; element. Click on an operation to fill in its parameters and invoke it or specify additional endpoints.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Invoke a WSDL Operation
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E Unable to connect to %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Error validating %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=Add WSDL To Favorites
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 already exists in favorites.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E Unable to add %1 to favorites.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 is added to favorites.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorite already exists. Do you wish to overwrite?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 is refreshed.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 is no longer resolvable. Do you wish to clear it?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Endpoints were successfully updated.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=Open WSDL Form
+FORM_TITLE_WSDL_DETAILS=WSDL Details Form
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL Service Details Form
+FORM_TITLE_WSDL_BINDING_DETAILS=WSDL Binding Details Form
+FORM_TITLE_INVOKE_WSDL_OPERATION=WSDL Operation Form
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Enter the URL of a WSDL document and click <strong>Go</strong> to explore.
+FORM_LABEL_SERVICES=Services
+FORM_LABEL_BINDINGS=Bindings
+FORM_LABEL_OPERATIONS=Operations
+FORM_LABEL_BINDING_TYPE=Type
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=Unsupported
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=Name
+FORM_LABEL_DOCUMENTATION=Documentation
+FORM_LABEL_ENDPOINT=Endpoint
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Enter the parameters of this WSDL operation and click <strong>Go</Strong> to invoke.
+FORM_LINK_ADD=Add
+FORM_LINK_REMOVE=Remove
+FORM_LABEL_VALUES=Values
+FORM_LABEL_ENABLE_DISABLE_GROUP=Enable/Disable group
+FORM_LABEL_UNION_TYPE=Union types
+FORM_LABEL_LANGUAGE=Language
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Application Information
+FORM_LABEL_XSD_DOCUMENTATION=Documentation
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP Request Envelope:
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP Response Envelope:
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=Move element up
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=Move element down
+FORM_LABEL_BASE_TYPE=Base type
+FORM_LABEL_UNBOUNDED=Unbounded
+FORM_LABEL_LENGTH=Length
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Pattern
+FORM_LABEL_WHITESPACE=Whitespace
+FORM_LABEL_RANGE_OF_VALUES=Range of values
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=Total digits
+FORM_LABEL_FRACTION_DIGITS=Fraction digits
+FORM_LABEL_OCCURANCE=Occurance of
+FORM_LABEL_UNION_MEMBERS=Union Members
+FORM_LABEL_LIST_ITEMS=List items
+FORM_LABEL_ELEMENTS=Elements
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP Arrays
+FORM_LABEL_CONTENT=Content
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=null
+FORM_LABEL_GROUP_NUMBER=Group %1
+FORM_LABEL_CHOICES=Choices
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=There is nothing to be displayed in the form view. Please switch to the source view for the SOAP request and response.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=The SOAP response failed schema validation. Please switch to the source view for the SOAP response in XML format.
+FORM_LABEL_END_POINTS=Endpoints
+
+# Source/Form views
+FORM_LINK_FORM=Form
+ALT_SWITCH_TO_FORM_VIEW=Switch to form view
+FORM_LINK_SOURCE=Source
+ALT_SWITCH_TO_SOURCE_VIEW=Switch to source view
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Soap Body:
+BUTTON_LABEL_LOAD=Load
+BUTTON_LABEL_SAVE_AS=Save As...
+MSG_QUESTION_SYNC_VIEWS=Format of the source content may be altered as a result of switching to the form view. Do you wish to process?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=Content of the source view failed schema validation. Synchronize anyways? (Content of the source view may be modified)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Enable/Disable group
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=Select element in group
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=Select union type
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP data file
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD Information Dialog
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E Select at least one item.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E Maximum occurance is reached.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E Minimum occurance is reached.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E Selected element is already the first in the group.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E Selected element is already the last in the group.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_de.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_de.properties
new file mode 100644
index 000000000..8694ff75d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_de.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL - Haupt
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator - Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator - Symbolleiste
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator - Inhalt
+FRAME_TITLE_ACTIONS_CONTAINER=Aktionen - Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Eigenschaften - Container
+FRAME_TITLE_PROPERTIES_TOOLBAR=Eigenschaften - Symbolleiste
+FRAME_TITLE_PROPERTIES_CONTENT=Eigenschaften - Inhalt
+FRAME_TITLE_STATUS_CONTAINER=Status - Container
+FRAME_TITLE_STATUS_TOOLBAR=Status - Symbolleiste
+FRAME_TITLE_STATUS_CONTENT=Status - Inhalt
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL-Seite - Inhalt
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=Symbolleiste des XSD-Informationsdialogs
+FRAME_TITLE_XSD_INFORMATION_CONTENT=Inhalt des XSD-Informationsdialogs
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=WSDL \u00f6ffnen
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Geben Sie eine g\u00fcltige WSDL-URL ein.
+MSG_ERROR_OPEN_WSDL=IWAB0379E %1 kann nicht ge\u00f6ffnet werden.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Beim Auswerten von XML-Schemas wurden Fehler festgestellt.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 wurde erfolgreich ge\u00f6ffnet.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL - Details
+FORM_LABEL_WSDL_DETAILS_DESC=Nachstehend sind die Details f\u00fcr dieses WSDL-Dokument aufgef\u00fchrt. Klicken Sie einen Service oder ein Binding an, um dessen Details anzuzeigen.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL-Service - Details
+FORM_LABEL_SERVICE_DETAILS_DESC=Nachstehend sind die Details f\u00fcr dieses &lt;service&gt;-Element aufgef\u00fchrt. Klicken Sie ein Binding an, um dessen Operationen anzuzeigen.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL-Binding - Details
+FORM_LABEL_BINDING_DETAILS_DESC=Nachstehend sind die Details f\u00fcr dieses <strong>%1</strong> &lt;binding&gt;-Element aufgef\u00fchrt. Klicken Sie eine Operation an, um die zugeh\u00f6rigen Parameter auszuf\u00fcllen und die Operation aufzurufen oder zus\u00e4tzliche Endpunkte anzugeben.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Eine WSDL-Operation aufrufen
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E Es kann keine Verbindung zu %1 hergestellt werden.
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Fehler beim Auswerten von %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=WSDL zu Favoriten hinzuf\u00fcgen
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 ist bereits in den Favoriten vorhanden.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E %1 konnte nicht zu den Favoriten hinzugef\u00fcgt werden.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 wurde zu den Favoriten hinzugef\u00fcgt.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorit bereits vorhanden. \u00dcberschreiben?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 wurde aktualisiert.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 kann nicht mehr aufgel\u00f6st werden. Soll der Knoten gel\u00f6scht werden?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Die Endpunkte wurden erfolgreich aktualisiert.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=WSDL-Formular \u00f6ffnen
+FORM_TITLE_WSDL_DETAILS=Formular f\u00fcr WSDL-Details
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formular f\u00fcr WSDL-Servicedetails
+FORM_TITLE_WSDL_BINDING_DETAILS=Formular f\u00fcr WSDL-Bindingdetails
+FORM_TITLE_INVOKE_WSDL_OPERATION=Formular f\u00fcr WSDL-Operation
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Geben Sie die URL eines WSDL-Dokuments ein, und klicken Sie auf <strong>Los</strong>, um es zu durchsuchen.
+FORM_LABEL_SERVICES=Services
+FORM_LABEL_BINDINGS=Bindings
+FORM_LABEL_OPERATIONS=Operationen
+FORM_LABEL_BINDING_TYPE=Typ
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=Nicht unterst\u00fctzt
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=Name
+FORM_LABEL_DOCUMENTATION=Dokumentation
+FORM_LABEL_ENDPOINT=Endpunkt
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Geben Sie die Parameter dieser WSDL-Operation ein, und klicken Sie auf <strong>Los</Strong>, um die Operation aufzurufen.
+FORM_LINK_ADD=Hinzuf\u00fcgen
+FORM_LINK_REMOVE=Entfernen
+FORM_LABEL_VALUES=Werte
+FORM_LABEL_ENABLE_DISABLE_GROUP=Gruppe aktivieren/inaktivieren
+FORM_LABEL_UNION_TYPE=Gesamtverkn\u00fcpfungstyp
+FORM_LABEL_LANGUAGE=Sprache
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Anwendungsinformationen
+FORM_LABEL_XSD_DOCUMENTATION=Dokumentation
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP-Rahmenanweisung f\u00fcr Anforderung
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP-Rahmenanweisung f\u00fcr Antwort
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=Element nach oben verschieben
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=Element nach unten verschieben
+FORM_LABEL_BASE_TYPE=Basistyp
+FORM_LABEL_UNBOUNDED=Unbegrenzt
+FORM_LABEL_LENGTH=L\u00e4nge
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Muster
+FORM_LABEL_WHITESPACE=Leerzeichen
+FORM_LABEL_RANGE_OF_VALUES=Wertebereich
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=Gesamtsummenstellen
+FORM_LABEL_FRACTION_DIGITS=Bruchteilstellen
+FORM_LABEL_OCCURANCE=Vorkommen von
+FORM_LABEL_UNION_MEMBERS=Union-Members
+FORM_LABEL_LIST_ITEMS=Listeneintr\u00e4ge
+FORM_LABEL_ELEMENTS=Elemente
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP-Bereiche
+FORM_LABEL_CONTENT=Inhalt
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=Null
+FORM_LABEL_GROUP_NUMBER=Gruppe %1
+FORM_LABEL_CHOICES=Auswahlm\u00f6glichkeiten
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=Es gibt nichts zum Anzeigen in der Formularsicht. Wechseln Sie bitte in die Quellensicht f\u00fcr die SOAP-Anforderung und -Antwort.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=Die SOAP-Antwort hat die Schemaauswertung nicht bestanden. Wechseln Sie bitte zur Quellensicht f\u00fcr die SOAP-Antwort in XML-Format.
+FORM_LABEL_END_POINTS=Endpunkte
+
+# Source/Form views
+FORM_LINK_FORM=Formular
+ALT_SWITCH_TO_FORM_VIEW=Zur Formularsicht wechseln
+FORM_LINK_SOURCE=Quelle
+ALT_SWITCH_TO_SOURCE_VIEW=Zur Quellensicht wechseln
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=SOAP-Hauptteil:
+BUTTON_LABEL_LOAD=Laden
+BUTTON_LABEL_SAVE_AS=Speichern als...
+MSG_QUESTION_SYNC_VIEWS=Durch den Wechsel zur Formularsicht kann sich das Format des Quelleninhalts \u00e4ndern. Wollen Sie die Verarbeitung fortsetzen?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=Der Inhalt der Quellensicht hat die Schemaauswertung nicht bestanden. Trotzdem synchronisieren? (Der Inhalt der Quellensicht kann dadurch ge\u00e4ndert werden)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Gruppe aktivieren/inaktivieren
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=Element in Gruppe ausw\u00e4hlen
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=Gesamtverkn\u00fcpfungstyp ausw\u00e4hlen
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP-Datendatei
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD-Informationsdialog
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E W\u00e4hlen Sie mindestens einen Eintrag aus.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E Maximales Vorkommen erreicht.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E Mindestvorkommen erreicht.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E Das ausgew\u00e4hlte Element befindet sich bereits in der ersten Gruppe.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E Das ausgew\u00e4hlte Element befindet sich bereits in der letzten Gruppe.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_es.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_es.properties
new file mode 100644
index 000000000..0edf4fbf3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_es.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=Principal de WSDL
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenedor del navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de herramientas del navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenido del navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Contenedor de acciones
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenedor de propiedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de herramientas de propiedades
+FRAME_TITLE_PROPERTIES_CONTENT=Contenido de propiedades
+FRAME_TITLE_STATUS_CONTAINER=Contenedor de estado
+FRAME_TITLE_STATUS_TOOLBAR=Barra de herramientas de estado
+FRAME_TITLE_STATUS_CONTENT=Contenido de estado
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=Contenido de p\u00e1gina WSDL
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=Barra de herramientas de di\u00e1logo de informaci\u00f3n XSD
+FRAME_TITLE_XSD_INFORMATION_CONTENT=Contenido de di\u00e1logo de informaci\u00f3n XSD
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=Abrir WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Entre un URL WSDL v\u00e1lido.
+MSG_ERROR_OPEN_WSDL=IWAB0379E No se puede abrir %1.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Se han encontrado errores al validar esquemas XML.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 se ha abierto satisfactoriamente.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=Detalles de WSDL
+FORM_LABEL_WSDL_DETAILS_DESC=A continuaci\u00f3n se muestran los detalles de este documento WSDL. Pulse sobre un servicio o enlace para ver los detalles correspondientes.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=Detalles de servicio WSDL
+FORM_LABEL_SERVICE_DETAILS_DESC=A continuaci\u00f3n se muestran los detalles para este elemento &lt;service&gt;. Pulse sobre un enlace para ver las operaciones correspondientes.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=Detalles de enlace WSDL
+FORM_LABEL_BINDING_DETAILS_DESC=A continuaci\u00f3n se muestran los detalles para este elemento &lt;binding&gt; <strong>%1</strong>. Pulse sobre una operaci\u00f3n para cumplimentar los par\u00e1metros e invocarla o especificar puntos finales adicionales.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Invocar una operaci\u00f3n WSDL
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E No es posible conectar con %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Error al validar %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=A\u00f1adir WSDL a favoritos
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 ya existe en los favoritos.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E No se puede a\u00f1adir %1 a los favoritos.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 se a\u00f1ade a los favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=El favorito ya existe. \u00bfDesea sobrescribirlo?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 se renueva.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 ya no puede resolverse. \u00bfDesea borrarlo?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Los puntos finales se han actualizado satisfactoriamente.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=Abrir formulario WSDL
+FORM_TITLE_WSDL_DETAILS=Formulario Detalles de WSDL
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formulario Detalles de servicio WSDL
+FORM_TITLE_WSDL_BINDING_DETAILS=Formulario Detalles de enlace WSDL
+FORM_TITLE_INVOKE_WSDL_OPERATION=Formulario Operaci\u00f3n WSDL
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Especifique el URL de un documento WSDL y pulse <strong>Ir</strong> para explorar.
+FORM_LABEL_SERVICES=Servicios
+FORM_LABEL_BINDINGS=Enlaces
+FORM_LABEL_OPERATIONS=Operaciones
+FORM_LABEL_BINDING_TYPE=Tipo
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=No soportado
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=Nombre
+FORM_LABEL_DOCUMENTATION=Documentaci\u00f3n
+FORM_LABEL_ENDPOINT=Punto final
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Especifique los par\u00e1metros de esta operaci\u00f3n WSDL y pulse <strong>Ir</Strong> para invocar.
+FORM_LINK_ADD=A\u00f1adir
+FORM_LINK_REMOVE=Eliminar
+FORM_LABEL_VALUES=Valores
+FORM_LABEL_ENABLE_DISABLE_GROUP=Habilitar/inhabilitar grupo
+FORM_LABEL_UNION_TYPE=Tipos de uni\u00f3n
+FORM_LABEL_LANGUAGE=Lenguaje
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Informaci\u00f3n de aplicaci\u00f3n
+FORM_LABEL_XSD_DOCUMENTATION=Documentaci\u00f3n
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=Sobre de petici\u00f3n SOAP:
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=Sobre de respuesta SOAP:
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=Subir elemento
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=Bajar elemento
+FORM_LABEL_BASE_TYPE=Tipo base
+FORM_LABEL_UNBOUNDED=No enlazado
+FORM_LABEL_LENGTH=Longitud
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Patr\u00f3n
+FORM_LABEL_WHITESPACE=Espacio en blanco
+FORM_LABEL_RANGE_OF_VALUES=Rango de valores
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=D\u00edgitos totales
+FORM_LABEL_FRACTION_DIGITS=D\u00edgitos de fracci\u00f3n
+FORM_LABEL_OCCURANCE=Aparici\u00f3n de
+FORM_LABEL_UNION_MEMBERS=Miembros de uni\u00f3n
+FORM_LABEL_LIST_ITEMS=Elementos de la lista
+FORM_LABEL_ELEMENTS=Elementos
+FORM_LABEL_SOAP_ENC_ARRAYS=Matrices SOAP
+FORM_LABEL_CONTENT=Contenido
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=nulo
+FORM_LABEL_GROUP_NUMBER=Grupo %1
+FORM_LABEL_CHOICES=Opciones
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=No hay nada que visualizar en la vista del formulario. Pase a la vista de fuente para la petici\u00f3n y la respuesta SOAP.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=La respuesta SOAP no ha pasado la validaci\u00f3n de esquema. Pase a la vista de fuente para la petici\u00f3n SOAP en formato XML.
+FORM_LABEL_END_POINTS=Puntos finales
+
+# Source/Form views
+FORM_LINK_FORM=Formulario
+ALT_SWITCH_TO_FORM_VIEW=Pasar a la vista de formulario
+FORM_LINK_SOURCE=Fuente
+ALT_SWITCH_TO_SOURCE_VIEW=Pasar a la vista de fuente
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Cuerpo Soap:
+BUTTON_LABEL_LOAD=Cargar
+BUTTON_LABEL_SAVE_AS=Guardar como...
+MSG_QUESTION_SYNC_VIEWS=El formato del contenido fuente puede alterarse al pasar a la vista de formulario. \u00bfDesea continuar?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=El contenido de la vista fuente no ha pasado la validaci\u00f3n de esquema. \u00bfDesea sincronizar de todos modos? (El contenido de la vista de fuente puede modificarse)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Habilitar/inhabilitar grupo
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=Seleccionar elemento del grupo
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=Seleccionar tipo de uni\u00f3n
+FORM_CONTROL_TITLE_SOAP_FILE=Archivo de datos SOAP
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=Di\u00e1logo informativo de XSD
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E Seleccione como m\u00ednimo un elemento.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E Se ha alcanzado el n\u00famero m\u00e1ximo de apariciones.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E Se ha alcanzado el n\u00famero m\u00ednimo de apariciones.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E El elemento seleccionado ya es el primero del grupo.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E El elemento seleccionado ya es el \u00faltimo del grupo.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_fr.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_fr.properties
new file mode 100644
index 000000000..1b821efa4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_fr.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL - Page principale
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigateur - Conteneur
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigateur - Barre d'outils
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigateur - Contenu
+FRAME_TITLE_ACTIONS_CONTAINER=Conteneur d'actions
+FRAME_TITLE_PROPERTIES_CONTAINER=Conteneur de propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barre d'outils des propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_CONTENT=Contenu des propri\u00e9t\u00e9s
+FRAME_TITLE_STATUS_CONTAINER=Conteneur de statuts
+FRAME_TITLE_STATUS_TOOLBAR=Barre d'outils des statuts
+FRAME_TITLE_STATUS_CONTENT=Contenu des statuts
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=Contenu de la page WSDL
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=Message d'information XSD - Barre d'outils
+FRAME_TITLE_XSD_INFORMATION_CONTENT=Message d'information XSD - Contenu
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=Ouvrir un document WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Indiquez une URL WSDL valide.
+MSG_ERROR_OPEN_WSDL=IWAB0379E Impossible d'ouvrir %1.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Des erreurs se sont produites lors de la validation des sch\u00e9mas XML.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 a \u00e9t\u00e9 ouvert.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=Informations sur le document WSDL
+FORM_LABEL_WSDL_DETAILS_DESC=Les informations sur le document WSDL figurent ci-apr\u00e8s. Pour les afficher, cliquez sur un service ou une liaison.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=Informations sur le service WSDL
+FORM_LABEL_SERVICE_DETAILS_DESC=Les informations sur cet \u00e9l\u00e9ment &lt;service&gt; figurent ci-apr\u00e8s. Cliquez sur une liaison pour afficher ses op\u00e9rations.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=Informations sur la liaison WSDL
+FORM_LABEL_BINDING_DETAILS_DESC=Les informations sur cet \u00e9l\u00e9ment &lt;liaison&gt; <strong>%1</strong> figurent ci-apr\u00e8s. Cliquez sur une op\u00e9ration pour indiquer ses param\u00e8tres et l'appeler ou sp\u00e9cifier d'autres noeuds finaux.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Appeler une op\u00e9ration WSDL
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E Impossible d'\u00e9tablir la connexion avec %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Erreur lors de la validation de %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=Ajouter le document WSDL aux favoris
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 existe d\u00e9j\u00e0 dans les favoris.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E Impossible d'ajouter %1 aux favoris.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 est ajout\u00e9 aux favoris.
+MSG_QUESTION_OVERWRITE_FAVORITES=Le favori existe d\u00e9j\u00e0. Voulez-vous le remplacer ?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 est r\u00e9g\u00e9n\u00e9r\u00e9.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 ne peut plus \u00eatre r\u00e9solu. Voulez-vous l'effacer ?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Les noeuds finaux ont \u00e9t\u00e9 mis \u00e0 jour.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=Formulaire Ouverture d'un WSDL
+FORM_TITLE_WSDL_DETAILS=Formulaire Informations sur WSDL
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formulaire Informations sur le service WSDL
+FORM_TITLE_WSDL_BINDING_DETAILS=Formulaire Informations sur la liaison WSDL
+FORM_TITLE_INVOKE_WSDL_OPERATION=Formulaire Op\u00e9ration WSDL
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Indiquez l'URL d'un document WSDL et cliquez sur <strong>OK</strong> pour lancer l'exploration.
+FORM_LABEL_SERVICES=Services
+FORM_LABEL_BINDINGS=Liaisons
+FORM_LABEL_OPERATIONS=Op\u00e9rations
+FORM_LABEL_BINDING_TYPE=Type
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=Non pris en charge
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=Nom
+FORM_LABEL_DOCUMENTATION=Documentation
+FORM_LABEL_ENDPOINT=Noeud final
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Indiquez les param\u00e8tres de cette op\u00e9ration WSDL et cliquez sur <strong>OK</Strong> pour appeler.
+FORM_LINK_ADD=Ajouter
+FORM_LINK_REMOVE=Supprimer
+FORM_LABEL_VALUES=Valeurs
+FORM_LABEL_ENABLE_DISABLE_GROUP=Activer/d\u00e9sactiver le groupe
+FORM_LABEL_UNION_TYPE=Types d'union
+FORM_LABEL_LANGUAGE=Langue
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Informations sur l'application
+FORM_LABEL_XSD_DOCUMENTATION=Documentation
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=Enveloppe de demande SOAP :
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=Enveloppe de r\u00e9ponse SOAP :
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=D\u00e9placer l'\u00e9l\u00e9ment vers le haut
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=D\u00e9placer l'\u00e9l\u00e9ment vers le bas
+FORM_LABEL_BASE_TYPE=Type de base
+FORM_LABEL_UNBOUNDED=Non li\u00e9
+FORM_LABEL_LENGTH=Longueur
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Mod\u00e8le
+FORM_LABEL_WHITESPACE=Espace blanc
+FORM_LABEL_RANGE_OF_VALUES=Plage de valeurs
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=Chiffres totaux
+FORM_LABEL_FRACTION_DIGITS=Pr\u00e9cision
+FORM_LABEL_OCCURANCE=Occurrence de
+FORM_LABEL_UNION_MEMBERS=Membres d'union
+FORM_LABEL_LIST_ITEMS=El\u00e9ments de liste
+FORM_LABEL_ELEMENTS=El\u00e9ments
+FORM_LABEL_SOAP_ENC_ARRAYS=Tableaux SOAP
+FORM_LABEL_CONTENT=Contenu
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2) :
+FORM_LABEL_NULL=null
+FORM_LABEL_GROUP_NUMBER=Groupe %1
+FORM_LABEL_CHOICES=Choix
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=Il n'y a rien \u00e0 afficher dans la vue de formulaire. Passez \u00e0 la vue Source pour la demande SOAP et la r\u00e9ponse.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=La validation du sch\u00e9ma de r\u00e9ponse SOAP a \u00e9chou\u00e9. Passez \u00e0 la vue Source pour afficher la r\u00e9ponse SOAP au format XML.
+FORM_LABEL_END_POINTS=Noeuds finaux
+
+# Source/Form views
+FORM_LINK_FORM=Formulaire
+ALT_SWITCH_TO_FORM_VIEW=Passer \u00e0 la vue Formulaire
+FORM_LINK_SOURCE=Source
+ALT_SWITCH_TO_SOURCE_VIEW=Passer \u00e0 la vue Source
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Corps SOAP :
+BUTTON_LABEL_LOAD=Charger
+BUTTON_LABEL_SAVE_AS=Enregistrer sous...
+MSG_QUESTION_SYNC_VIEWS=Le format du contenu source peut \u00eatre modifi\u00e9 apr\u00e8s le passage \u00e0 la vue Formulaire. Voulez-vous continuer ?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=La validation du sch\u00e9ma a \u00e9chou\u00e9 pour la vue Source. Voulez-vous malgr\u00e9 tout synchroniser ? (Le contenu de la vue Source sera peut-\u00eatre modifi\u00e9.)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Activer/d\u00e9sactiver le groupe
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=S\u00e9lectionner un \u00e9l\u00e9ment du groupe
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=S\u00e9lectionner un type d'union
+FORM_CONTROL_TITLE_SOAP_FILE=Fichier de donn\u00e9es SOAP
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=Message d'information XSD
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E S\u00e9lectionnez au moins un \u00e9l\u00e9ment.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E Le nombre d'ajout maximal est atteint.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E L'occurrence minimale est atteinte.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E L'\u00e9l\u00e9ment s\u00e9lectionn\u00e9 est d\u00e9j\u00e0 le premier du groupe.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E L'\u00e9l\u00e9ment s\u00e9lectionn\u00e9 est d\u00e9j\u00e0 le dernier du groupe.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_it.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_it.properties
new file mode 100644
index 000000000..406e9e90c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_it.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL principale
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenitore Selezione
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra degli strumenti Selezione
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenuto Selezione
+FRAME_TITLE_ACTIONS_CONTAINER=Contenitore azioni
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenitore propriet\u00e0
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra degli strumenti propriet\u00e0
+FRAME_TITLE_PROPERTIES_CONTENT=Contenuto propriet\u00e0
+FRAME_TITLE_STATUS_CONTAINER=Contenitore stato
+FRAME_TITLE_STATUS_TOOLBAR=Barra degli strumenti stato
+FRAME_TITLE_STATUS_CONTENT=Contenuto stato
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=Contenuto della pagina WSDL
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=Barra degli strumenti della finestra di dialogo relativa alle informazioni su XSD
+FRAME_TITLE_XSD_INFORMATION_CONTENT=Contenuto della finestra di dialogo relativa alle informazioni su XSD
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=Apri WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Immettere un URL WSDL valido.
+MSG_ERROR_OPEN_WSDL=IWAB0379E Impossibile aprire %1.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Sono stati rilevati degli errori durante la convalida degli schemi XML.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 \u00e8 stato aperto correttamente.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=Dettagli WSDL
+FORM_LABEL_WSDL_DETAILS_DESC=In basso sono visualizzati i dettagli relativi a questo documento WSDL. Fare clic su un servizio o su un binding per visualizzare i relativi dettagli.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=Dettagli servizio WSDL
+FORM_LABEL_SERVICE_DETAILS_DESC=In basso sono visualizzati i dettagli relativi a questo elemento &lt;servizio&gt;. Fare clic su un binding per visualizzare le relative operazioni.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=Dettagli binding WSDL
+FORM_LABEL_BINDING_DETAILS_DESC=In basso sono visualizzati i dettagli relativi a questo elemento <strong>%1</strong> &lt;binding&gt;. Fare clic su un'operazione per inserire i parametri e richiamare l'operazione o per specificare endpoint supplementari.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Richiama un'operazione WSDL
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E Impossibile connettersi a %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Errore durante la convalida di %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=Aggiungi WSDL ai preferiti
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 esiste gi\u00e0 nei preferiti.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E Impossibile aggiungere %1 ai preferiti.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 viene aggiunto ai preferiti.
+MSG_QUESTION_OVERWRITE_FAVORITES=I preferiti esistono gi\u00e0. Sovrascriverli?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 viene aggiornato.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 non \u00e8 pi\u00f9 risolvibile. Cancellarlo?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Gli endpoint sono stati aggiornati correttamente.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=Apri modulo WSDL
+FORM_TITLE_WSDL_DETAILS=Modulo dettagli WSDL
+FORM_TITLE_WSDL_SERVICE_DETAILS=Modulo dettagli servizio WSDL
+FORM_TITLE_WSDL_BINDING_DETAILS=Modulo dettagli binding WSDL
+FORM_TITLE_INVOKE_WSDL_OPERATION=Modulo operazione WSDL
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Immettere l'URL di un documento WSDL e fare clic su <strong>Vai</strong> per l'esplorazione.
+FORM_LABEL_SERVICES=Servizi
+FORM_LABEL_BINDINGS=Binding
+FORM_LABEL_OPERATIONS=Operazioni
+FORM_LABEL_BINDING_TYPE=Tipo
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=Non supportato
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=Nome
+FORM_LABEL_DOCUMENTATION=Documentazione
+FORM_LABEL_ENDPOINT=Endpoint
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Immettere i parametri di questa operazione WSDL e fare clic su <strong>Vai</Strong> per richiamare l'operazione.
+FORM_LINK_ADD=Aggiungi
+FORM_LINK_REMOVE=Rimuovi
+FORM_LABEL_VALUES=Valori
+FORM_LABEL_ENABLE_DISABLE_GROUP=Abilita/Disabilita gruppo
+FORM_LABEL_UNION_TYPE=Tipi di unione
+FORM_LABEL_LANGUAGE=Lingua
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Informazioni sull'applicazione
+FORM_LABEL_XSD_DOCUMENTATION=Documentazione
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=Involucro richiesta SOAP:
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=Involucro risposta SOAP:
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=Sposta elemento su
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=Sposta elemento gi\u00f9
+FORM_LABEL_BASE_TYPE=Tipo base
+FORM_LABEL_UNBOUNDED=Non collegato
+FORM_LABEL_LENGTH=Lunghezza
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Modello
+FORM_LABEL_WHITESPACE=Spazio bianco
+FORM_LABEL_RANGE_OF_VALUES=Intervallo di valori
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=Cifre totali
+FORM_LABEL_FRACTION_DIGITS=Cifre frazione
+FORM_LABEL_OCCURANCE=Ricorrenza di
+FORM_LABEL_UNION_MEMBERS=Membri unione
+FORM_LABEL_LIST_ITEMS=Elementi elenco
+FORM_LABEL_ELEMENTS=Elementi
+FORM_LABEL_SOAP_ENC_ARRAYS=Matrici SOAP
+FORM_LABEL_CONTENT=Contenuto
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=null
+FORM_LABEL_GROUP_NUMBER=Gruppo %1
+FORM_LABEL_CHOICES=Scelte
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=Non esiste alcun elemento da visualizzare nella vista del modulo. Passare alla vista di origine per la richiesta e la risposta SOAP.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=La risposta SOAP non \u00e8 riuscita ad eseguire la convalida dello schema. Passare alla vista di origine per la risposta SOAP in formato XML.
+FORM_LABEL_END_POINTS=Endpoint
+
+# Source/Form views
+FORM_LINK_FORM=Modulo
+ALT_SWITCH_TO_FORM_VIEW=Passa alla vista del modulo
+FORM_LINK_SOURCE=Origine
+ALT_SWITCH_TO_SOURCE_VIEW=Passa alla vista di origine
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Corpo Soap:
+BUTTON_LABEL_LOAD=Carica
+BUTTON_LABEL_SAVE_AS=Salva con nome...
+MSG_QUESTION_SYNC_VIEWS=Il formato del contenuto di origine pu\u00f2 essere alterato come risultato del passaggio alla vista del modulo. Continuare?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=Il contenuto della vista di origine non \u00e8 riuscito ad eseguire la convalida dello schema. Eseguire ugualmente la sincronizzazione? (Il contenuto della vista di origine pu\u00f2 essere modificato)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Abilita/Disabilita gruppo
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=Seleziona elemento in gruppo
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=Seleziona tipo di unione
+FORM_CONTROL_TITLE_SOAP_FILE=File di dati SOAP
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=Finestra di dialogo sulle informazioni XSD
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E Selezionare almeno un elemento.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E Viene raggiunta la ricorrenza massima.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E Viene raggiunta la ricorrenza minima.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E L'elemento selezionato \u00e8 gi\u00e0 il primo del gruppo.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E L'elemento selezionato \u00e8 gi\u00e0 l'ultimo del gruppo.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ja.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ja.properties
new file mode 100644
index 000000000..b6dd16bc7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ja.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL \u30e1\u30a4\u30f3
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_NAVIGATOR_CONTENT=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_ACTIONS_CONTAINER=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTAINER=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_PROPERTIES_CONTENT=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6cc1\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL \u30da\u30fc\u30b8\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=XSD \u60c5\u5831\u30c0\u30a4\u30a2\u30ed\u30b0\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_XSD_INFORMATION_CONTENT=XSD \u60c5\u5831\u30c0\u30a4\u30a2\u30ed\u30b0\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=WSDL \u3092\u958b\u304f
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E \u6709\u52b9\u306a WSDL URL \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_OPEN_WSDL=IWAB0379E %1 \u3092\u958b\u3051\u307e\u305b\u3093\u3002
+MSG_ERROR_XSD_VALIDATION=IWAB0380E XML \u30b9\u30ad\u30fc\u30de\u306e\u59a5\u5f53\u6027\u691c\u67fb\u6642\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 \u304c\u6b63\u5e38\u306b\u958b\u304d\u307e\u3057\u305f\u3002
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL \u8a73\u7d30
+FORM_LABEL_WSDL_DETAILS_DESC=\u3053\u306e WSDL \u6587\u66f8\u306e\u8a73\u7d30\u3092\u4ee5\u4e0b\u306b\u793a\u3057\u307e\u3059\u3002 \u30b5\u30fc\u30d3\u30b9\u307e\u305f\u306f\u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u305d\u306e\u8a73\u7d30\u3092\u53c2\u7167\u3057\u307e\u3059\u3002
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30
+FORM_LABEL_SERVICE_DETAILS_DESC=\u3053\u306e &lt;service&gt; \u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002 \u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u305d\u306e\u64cd\u4f5c\u3092\u53c2\u7167\u3057\u307e\u3059\u3002
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL \u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u8a73\u7d30
+FORM_LABEL_BINDING_DETAILS_DESC=<strong>%1</strong> &lt;binding&gt; \u30a8\u30ec\u30e1\u30f3\u30c8\u306e\u8a73\u7d30\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002 \u64cd\u4f5c\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u305d\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u5165\u529b\u3057\u3001\u305d\u306e\u64cd\u4f5c\u3092\u547c\u3073\u51fa\u3059\u304b\u3001\u307e\u305f\u306f\u8ffd\u52a0\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=WSDL \u64cd\u4f5c\u306e\u8d77\u52d5
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E %1 \u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E %1 \u3092\u691c\u67fb\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=WSDL \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 \u306f\u304a\u6c17\u306b\u5165\u308a\u306b\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E %1 \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 \u304c\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 \u4e0a\u66f8\u304d\u3057\u307e\u3059\u304b?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 \u304c\u6700\u65b0\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 \u306f\u89e3\u6c7a\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002 \u30af\u30ea\u30a2\u3057\u307e\u3059\u304b?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u304c\u6b63\u5e38\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=WSDL \u66f8\u5f0f\u3092\u958b\u304f
+FORM_TITLE_WSDL_DETAILS=WSDL \u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_WSDL_BINDING_DETAILS=WSDL \u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_INVOKE_WSDL_OPERATION=WSDL \u64cd\u4f5c\u66f8\u5f0f
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=WSDL \u6587\u66f8\u306e URL \u3092\u5165\u529b\u3057\u3001\u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u63a2\u7d22\u3057\u307e\u3059\u3002
+FORM_LABEL_SERVICES=\u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_BINDINGS=\u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0
+FORM_LABEL_OPERATIONS=\u64cd\u4f5c
+FORM_LABEL_BINDING_TYPE=\u30bf\u30a4\u30d7
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=\u975e\u30b5\u30dd\u30fc\u30c8
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=\u540d\u524d
+FORM_LABEL_DOCUMENTATION=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3
+FORM_LABEL_ENDPOINT=\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=\u3053\u306e WSDL \u64cd\u4f5c\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u5165\u529b\u3057\u3001\u300c<strong>\u5b9f\u884c</Strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u8d77\u52d5\u3057\u307e\u3059\u3002
+FORM_LINK_ADD=\u8ffd\u52a0
+FORM_LINK_REMOVE=\u9664\u53bb
+FORM_LABEL_VALUES=\u5024
+FORM_LABEL_ENABLE_DISABLE_GROUP=\u30b0\u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u53ef\u80fd/\u4f7f\u7528\u4e0d\u53ef\u306b\u3059\u308b
+FORM_LABEL_UNION_TYPE=\u5171\u7528\u4f53\u30bf\u30a4\u30d7
+FORM_LABEL_LANGUAGE=\u8a00\u8a9e
+FORM_LABEL_XSD_APPLICATION_INFORMATION=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u60c5\u5831
+FORM_LABEL_XSD_DOCUMENTATION=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP \u8981\u6c42\u30a8\u30f3\u30d9\u30ed\u30fc\u30d7:
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP \u5fdc\u7b54\u30a8\u30f3\u30d9\u30ed\u30fc\u30d7:
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=\u30a8\u30ec\u30e1\u30f3\u30c8\u3092\u4e0a\u306b\u79fb\u52d5
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=\u30a8\u30ec\u30e1\u30f3\u30c8\u3092\u4e0b\u306b\u79fb\u52d5
+FORM_LABEL_BASE_TYPE=\u57fa\u672c\u578b
+FORM_LABEL_UNBOUNDED=\u30a2\u30f3\u30d0\u30a6\u30f3\u30c9
+FORM_LABEL_LENGTH=\u9577\u3055
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=\u30d1\u30bf\u30fc\u30f3
+FORM_LABEL_WHITESPACE=\u7a7a\u767d\u6587\u5b57
+FORM_LABEL_RANGE_OF_VALUES=\u5024\u306e\u7bc4\u56f2
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=\u5408\u8a08\u6841\u6570
+FORM_LABEL_FRACTION_DIGITS=\u5c0f\u6570\u6841
+FORM_LABEL_OCCURANCE=\u30aa\u30ab\u30ec\u30f3\u30b9
+FORM_LABEL_UNION_MEMBERS=\u5171\u7528\u4f53\u30e1\u30f3\u30d0\u30fc
+FORM_LABEL_LIST_ITEMS=\u30ea\u30b9\u30c8\u9805\u76ee
+FORM_LABEL_ELEMENTS=\u30a8\u30ec\u30e1\u30f3\u30c8
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP \u914d\u5217
+FORM_LABEL_CONTENT=\u30b3\u30f3\u30c6\u30f3\u30c4
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=NULL
+FORM_LABEL_GROUP_NUMBER=\u30b0\u30eb\u30fc\u30d7 %1
+FORM_LABEL_CHOICES=\u9078\u629e\u9805\u76ee
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=\u66f8\u5f0f\u30d3\u30e5\u30fc\u306b\u306f\u8868\u793a\u3059\u308b\u3082\u306e\u304c\u3042\u308a\u307e\u305b\u3093\u3002 SOAP \u8981\u6c42\u304a\u3088\u3073\u5fdc\u7b54\u306b\u3064\u3044\u3066\u306f\u3001\u30bd\u30fc\u30b9\u30fb\u30d3\u30e5\u30fc\u306b\u5207\u308a\u66ff\u3048\u3066\u304f\u3060\u3055\u3044\u3002
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=SOAP \u5fdc\u7b54\u304c\u30b9\u30ad\u30fc\u30de\u306e\u691c\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 XML \u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e SOAP \u5fdc\u7b54\u306b\u3064\u3044\u3066\u306f\u3001\u30bd\u30fc\u30b9\u30fb\u30d3\u30e5\u30fc\u306b\u5207\u308a\u66ff\u3048\u3066\u304f\u3060\u3055\u3044\u3002
+FORM_LABEL_END_POINTS=\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8
+
+# Source/Form views
+FORM_LINK_FORM=\u66f8\u5f0f
+ALT_SWITCH_TO_FORM_VIEW=\u66f8\u5f0f\u30d3\u30e5\u30fc\u3078\u306e\u5207\u308a\u66ff\u3048
+FORM_LINK_SOURCE=\u30bd\u30fc\u30b9
+ALT_SWITCH_TO_SOURCE_VIEW=\u30bd\u30fc\u30b9\u30fb\u30d3\u30e5\u30fc\u3078\u306e\u5207\u308a\u66ff\u3048
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=SOAP \u30dc\u30c7\u30a3:
+BUTTON_LABEL_LOAD=\u30ed\u30fc\u30c9
+BUTTON_LABEL_SAVE_AS=\u5225\u540d\u4fdd\u7ba1...
+MSG_QUESTION_SYNC_VIEWS=\u66f8\u5f0f\u30d3\u30e5\u30fc\u3078\u306e\u5207\u308a\u66ff\u3048\u306b\u3088\u3063\u3066\u3001\u30bd\u30fc\u30b9\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u304c\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u7d9a\u884c\u3057\u307e\u3059\u304b?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=\u30bd\u30fc\u30b9\u30fb\u30d3\u30e5\u30fc\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u30b9\u30ad\u30fc\u30de\u306e\u691c\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u5e38\u306b\u540c\u671f\u3057\u307e\u3059\u304b? (\u30bd\u30fc\u30b9\u30fb\u30d3\u30e5\u30fc\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=\u30b0\u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u53ef\u80fd/\u4f7f\u7528\u4e0d\u53ef\u306b\u3059\u308b
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=\u30b0\u30eb\u30fc\u30d7\u5185\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u3092\u9078\u629e
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=\u5171\u7528\u4f53\u30bf\u30a4\u30d7\u306e\u9078\u629e
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP \u30c7\u30fc\u30bf\u30fb\u30d5\u30a1\u30a4\u30eb
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD \u60c5\u5831\u30c0\u30a4\u30a2\u30ed\u30b0
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E \u6700\u5927\u30aa\u30ab\u30ec\u30f3\u30b9\u306b\u9054\u3057\u3066\u3044\u307e\u3059\u3002
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E \u6700\u5c0f\u30aa\u30ab\u30ec\u30f3\u30b9\u306b\u9054\u3057\u3066\u3044\u307e\u3059\u3002
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E \u9078\u629e\u3055\u308c\u305f\u30a8\u30ec\u30e1\u30f3\u30c8\u304c\u3059\u3067\u306b\u305d\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u6700\u521d\u306b\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E \u9078\u629e\u3055\u308c\u305f\u30a8\u30ec\u30e1\u30f3\u30c8\u306f\u3059\u3067\u306b\u305d\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u6700\u5f8c\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ko.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ko.properties
new file mode 100644
index 000000000..c2b97f760
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_ko.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL \uae30\ubcf8
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\ub124\ube44\uac8c\uc774\ud130 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_NAVIGATOR_CONTENT=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud150\uce20
+FRAME_TITLE_ACTIONS_CONTAINER=\uc870\uce58 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTAINER=\ud2b9\uc131 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_TOOLBAR=\ud2b9\uc131 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_PROPERTIES_CONTENT=\ud2b9\uc131 \ucee8\ud150\uce20
+FRAME_TITLE_STATUS_CONTAINER=\uc0c1\ud0dc \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_STATUS_TOOLBAR=\uc0c1\ud0dc \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_STATUS_CONTENT=\uc0c1\ud0dc \ucee8\ud150\uce20
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL \ud398\uc774\uc9c0 \ucee8\ud150\uce20
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=XSD \uc815\ubcf4 \ub300\ud654 \uc0c1\uc790 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_XSD_INFORMATION_CONTENT=XSD \uc815\ubcf4 \ub300\ud654 \uc0c1\uc790 \ucee8\ud150\uce20
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=WSDL \uc5f4\uae30
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E \uc62c\ubc14\ub978 WSDL URL\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_OPEN_WSDL=IWAB0379E %1\uc744(\ub97c) \uc5f4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E XML \uc2a4\ud0a4\ub9c8\ub97c \uc720\ud6a8\uc131 \uac80\uc99d\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1\uc774(\uac00) \uc5f4\ub838\uc2b5\ub2c8\ub2e4.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL \uc138\ubd80\uc0ac\ud56d
+FORM_LABEL_WSDL_DETAILS_DESC=\uc774 WSDL \ubb38\uc11c\uc758 \uc138\ubd80\uc0ac\ud56d\uc774 \uc544\ub798 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uc138\ubd80\uc0ac\ud56d\uc744 \ubcf4\ub824\uba74 \uc11c\ube44\uc2a4\ub098 \ubc14\uc778\ub529\uc744 \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d
+FORM_LABEL_SERVICE_DETAILS_DESC=\uc774 &lt;\uc11c\ube44\uc2a4&gt; \uc694\uc18c\uc758 \uc138\ubd80\uc0ac\ud56d\uc774 \uc544\ub798 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uc870\uc791\uc744 \ubcf4\ub824\uba74 \ubc14\uc778\ub529\uc744 \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL \ubc14\uc778\ub529 \uc138\ubd80\uc0ac\ud56d
+FORM_LABEL_BINDING_DETAILS_DESC=\uc774 <strong>%1</strong> &lt;\ubc14\uc778\ub529&gt; \uc694\uc18c\uc758 \uc138\ubd80\uc0ac\ud56d\uc774 \uc544\ub798 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uc870\uc791\uc744 \ud074\ub9ad\ud558\uc5ec \ub9e4\uac1c\ubcc0\uc218\ub97c \ucc44\uc6b0\uace0 \ud638\ucd9c\ud558\uac70\ub098 \ucd94\uac00 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \uc9c0\uc815\ud558\uc2ed\uc2dc\uc624.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=WSDL \uc870\uc791 \ud638\ucd9c
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E %1\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E %1 \uc720\ud6a8\uc131 \uac80\uc99d \uc911\uc5d0 \uc624\ub958 \ubc1c\uc0dd
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=WSDL\uc744 \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1\uc774(\uac00) \uc774\ubbf8 \uc990\uaca8\ucc3e\uae30\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E %1\uc744(\ub97c) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1\uc774(\uac00) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_QUESTION_OVERWRITE_FAVORITES=\uc990\uaca8\ucc3e\uae30\uac00 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uacb9\uccd0\uc4f0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1\uc744(\ub97c) \uc0c8\ub85c \uace0\ucce4\uc2b5\ub2c8\ub2e4.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1\uc744(\ub97c) \ub354 \uc774\uc0c1 \ud574\uc11d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uac00 \uac31\uc2e0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=WSDL \uc591\uc2dd \uc5f4\uae30
+FORM_TITLE_WSDL_DETAILS=WSDL \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSDL_BINDING_DETAILS=WSDL \ubc14\uc778\ub529 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_INVOKE_WSDL_OPERATION=WSDL \uc870\uc791 \uc591\uc2dd
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=WSDL \ubb38\uc11c\uc758 URL\uc744 \uc785\ub825\ud558\uace0 <strong>\uc774\ub3d9</strong>\uc744 \ud074\ub9ad\ud558\uc5ec \ud0d0\uc0c9\ud558\uc2ed\uc2dc\uc624.
+FORM_LABEL_SERVICES=\uc11c\ube44\uc2a4
+FORM_LABEL_BINDINGS=\ubc14\uc778\ub529
+FORM_LABEL_OPERATIONS=\uc870\uc791
+FORM_LABEL_BINDING_TYPE=\uc720\ud615
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=\uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc74c
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=\uc774\ub984
+FORM_LABEL_DOCUMENTATION=\ubb38\uc11c
+FORM_LABEL_ENDPOINT=\uc5d4\ub4dc\ud3ec\uc778\ud2b8
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=\uc774 WSDL \uc870\uc791\uc758 \ub9e4\uac1c\ubcc0\uc218\ub97c \uc785\ub825\ud558\uace0 <strong>\uc774\ub3d9</Strong>\uc744 \ud074\ub9ad\ud558\uc5ec \ud638\ucd9c\ud558\uc2ed\uc2dc\uc624.
+FORM_LINK_ADD=\ucd94\uac00
+FORM_LINK_REMOVE=\uc81c\uac70
+FORM_LABEL_VALUES=\uac12
+FORM_LABEL_ENABLE_DISABLE_GROUP=\uadf8\ub8f9 \uc0ac\uc6a9/\uc0ac\uc6a9 \uc548\ud568
+FORM_LABEL_UNION_TYPE=\uc720\ub2c8\uc628 \uc720\ud615
+FORM_LABEL_LANGUAGE=\uc5b8\uc5b4
+FORM_LABEL_XSD_APPLICATION_INFORMATION=\uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc815\ubcf4
+FORM_LABEL_XSD_DOCUMENTATION=\ubb38\uc11c
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP \uc694\uccad \uc5d4\ubca8\ub85c\ud504(envelope)
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP \uc751\ub2f5 \uc5d4\ubca8\ub85c\ud504(envelope)
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=\uc694\uc18c\ub97c \uc704\ub85c \uc774\ub3d9
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=\uc694\uc18c\ub97c \uc544\ub798\ub85c \uc774\ub3d9
+FORM_LABEL_BASE_TYPE=\uae30\ubcf8 \uc720\ud615
+FORM_LABEL_UNBOUNDED=\ubc14\uc778\ub4dc\ub418\uc9c0 \uc54a\uc74c
+FORM_LABEL_LENGTH=\uae38\uc774
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=\ud328\ud134
+FORM_LABEL_WHITESPACE=\uacf5\ubc31
+FORM_LABEL_RANGE_OF_VALUES=\uac12\uc758 \ubc94\uc704
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=\ucd1d \uc22b\uc790
+FORM_LABEL_FRACTION_DIGITS=\uc18c\uc218 \uc790\ub9ac
+FORM_LABEL_OCCURANCE=\ubc1c\uc0dd
+FORM_LABEL_UNION_MEMBERS=\uc720\ub2c8\uc628 \uad6c\uc131\uc6d0
+FORM_LABEL_LIST_ITEMS=\ud56d\ubaa9 \ub098\uc5f4
+FORM_LABEL_ELEMENTS=\uc694\uc18c
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP \ubc30\uc5f4
+FORM_LABEL_CONTENT=\ucee8\ud150\uce20
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=\ub110(null)
+FORM_LABEL_GROUP_NUMBER=\uadf8\ub8f9 %1
+FORM_LABEL_CHOICES=\uc120\ud0dd\uc0ac\ud56d
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=\uc591\uc2dd \ubcf4\uae30\uc5d0 \ud45c\uc2dc\ub418\ub294 \ud56d\ubaa9\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. SOAP \uc694\uccad \ubc0f \uc751\ub2f5\uc744 \uc704\ud574 \uc18c\uc2a4 \ubcf4\uae30\ub85c \uc804\ud658\ud558\uc2ed\uc2dc\uc624.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=SOAP \uc751\ub2f5\uc774 \uc2a4\ud0a4\ub9c8 \uc720\ud6a8\uc131 \ud655\uc778\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. XML \ud615\uc2dd\uc73c\ub85c \ub41c SOAP \uc751\ub2f5\uc758 \uc18c\uc2a4 \ubcf4\uae30\ub85c \uc804\ud658\ud558\uc2ed\uc2dc\uc624.
+FORM_LABEL_END_POINTS=\uc5d4\ub4dc\ud3ec\uc778\ud2b8
+
+# Source/Form views
+FORM_LINK_FORM=\uc591\uc2dd
+ALT_SWITCH_TO_FORM_VIEW=\uc591\uc2dd \ubcf4\uae30\ub85c \uc804\ud658
+FORM_LINK_SOURCE=\uc18c\uc2a4
+ALT_SWITCH_TO_SOURCE_VIEW=\uc18c\uc2a4 \ubcf4\uae30\ub85c \uc804\ud658
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Soap \ubcf8\ubb38:
+BUTTON_LABEL_LOAD=\ub85c\ub4dc
+BUTTON_LABEL_SAVE_AS=\ub2e4\ub978 \uc774\ub984\uc73c\ub85c \uc800\uc7a5...
+MSG_QUESTION_SYNC_VIEWS=\uc18c\uc2a4 \ucee8\ud150\uce20\uc758 \ud615\uc2dd\uc740 \uc591\uc2dd \ubcf4\uae30\ub85c \uc804\ud658\ud558\ub294 \uacb0\uacfc\ub85c \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=\uc18c\uc2a4 \ubcf4\uae30\uc758 \ucee8\ud150\uce20\uac00 \uc2a4\ud0a4\ub9c8 \uc720\ud6a8\uc131 \ud655\uc778\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub3d9\uae30\ud654\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?(\uc18c\uc2a4 \ubcf4\uae30\uc758 \ucee8\ud150\uce20\uac00 \uc218\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4).
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=\uadf8\ub8f9 \uc0ac\uc6a9/\uc0ac\uc6a9 \uc548\ud568
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=\uadf8\ub8f9\uc5d0\uc11c \uc694\uc18c \uc120\ud0dd
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=\uc720\ub2c8\uc628 \uc720\ud615 \uc120\ud0dd
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP \ub370\uc774\ud130 \ud30c\uc77c
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD \uc815\ubcf4 \ub300\ud654 \uc0c1\uc790
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud56d\ubaa9\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E \ucd5c\ub300 \ubc1c\uc0dd\uc5d0 \ub3c4\ub2ec\ud588\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E \ucd5c\uc18c \ubc1c\uc0dd\uc5d0 \ub3c4\ub2ec\ud588\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E \uc120\ud0dd\ud55c \uc694\uc18c\ub294 \uc774\ubbf8 \uadf8\ub8f9\uc758 \uccab \ubc88\uc9f8 \uc694\uc18c\uc785\ub2c8\ub2e4.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E \uc120\ud0dd\ud55c \uc694\uc18c\ub294 \uc774\ubbf8 \uadf8\ub8f9\uc758 \ub9c8\uc9c0\ub9c9 \uc694\uc18c\uc785\ub2c8\ub2e4.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_pt_BR.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_pt_BR.properties
new file mode 100644
index 000000000..52a6fa3c8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_pt_BR.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=Principal do WSDL
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Cont\u00eainer do Navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de Ferramentas do Navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Conte\u00fado do Navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Cont\u00eainer de A\u00e7\u00f5es
+FRAME_TITLE_PROPERTIES_CONTAINER=Cont\u00eainer de Propriedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de Ferramentas de Propriedades
+FRAME_TITLE_PROPERTIES_CONTENT=Conte\u00fado das Propriedades
+FRAME_TITLE_STATUS_CONTAINER=Cont\u00eainer de Status
+FRAME_TITLE_STATUS_TOOLBAR=Barra de Ferramentas de Status
+FRAME_TITLE_STATUS_CONTENT=Conte\u00fado do Status
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=Conte\u00fado da P\u00e1gina do WSDL
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=Barra de Ferramentas do Di\u00e1logo Informa\u00e7\u00f5es sobre o XSD
+FRAME_TITLE_XSD_INFORMATION_CONTENT=Conte\u00fado do Di\u00e1logo Informa\u00e7\u00f5es sobre o XSD
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=Abrir WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E Digite um URL v\u00e1lido do WSDL.
+MSG_ERROR_OPEN_WSDL=IWAB0379E Imposs\u00edvel abrir %1.
+MSG_ERROR_XSD_VALIDATION=IWAB0380E Foram encontrados erros ao validar esquemas XML.
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I %1 foi aberto com \u00eaxito.
+
+# WSDL Element details
+ALT_WSDL_DETAILS=Detalhes do WSDL
+FORM_LABEL_WSDL_DETAILS_DESC=A seguir est\u00e3o os detalhes para este documento WSDL. Clique em um servi\u00e7o ou liga\u00e7\u00e3o para ver seus detalhes.
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=Detalhes do Servi\u00e7o WSDL
+FORM_LABEL_SERVICE_DETAILS_DESC=A seguir est\u00e3o os detalhes para este elemento de &lt;servi\u00e7o&gt;. Clique em uma liga\u00e7\u00e3o para ver suas opera\u00e7\u00f5es.
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=Detalhes da Liga\u00e7\u00e3o WSDL
+FORM_LABEL_BINDING_DETAILS_DESC=A seguir est\u00e3o os detalhes para este elemento de &lt;liga\u00e7\u00e3o&gt; <strong>%1</strong>. Clique em uma opera\u00e7\u00e3o para preencher seus par\u00e2metros e chame-a ou especifique n\u00f3s de extremidade adicionais.
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=Chamar uma Opera\u00e7\u00e3o WSDL
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E Imposs\u00edvel conectar-se a %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E Erro ao validar %1
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=Incluir WSDL em Favoritos
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 j\u00e1 existe em favoritos.
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E Imposs\u00edvel incluir %1 em favoritos.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 foi inclu\u00eddo em favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=Esse favorito j\u00e1 existe. Deseja substituir?
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I %1 foi atualizado.
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 n\u00e3o tem mais solu\u00e7\u00e3o. Deseja limp\u00e1-lo?
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I Os n\u00f3s de extremidade foram atualizados com \u00eaxito.
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=Abrir Formul\u00e1rio do WSDL
+FORM_TITLE_WSDL_DETAILS=Formul\u00e1rio de Detalhes do WSDL
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formul\u00e1rio de Detalhes do Servi\u00e7o WSDL
+FORM_TITLE_WSDL_BINDING_DETAILS=Formul\u00e1rio de Detalhes da Liga\u00e7\u00e3o WSDL
+FORM_TITLE_INVOKE_WSDL_OPERATION=Formul\u00e1rio da Opera\u00e7\u00e3o WSDL
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=Digite o URL de um documento WSDL e clique em <strong>Ir</strong> para explorar.
+FORM_LABEL_SERVICES=Servi\u00e7os
+FORM_LABEL_BINDINGS=Liga\u00e7\u00f5es
+FORM_LABEL_OPERATIONS=Opera\u00e7\u00f5es
+FORM_LABEL_BINDING_TYPE=Tipo
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=N\u00e3o Suportado
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME= Nome
+FORM_LABEL_DOCUMENTATION=Documenta\u00e7\u00e3o
+FORM_LABEL_ENDPOINT=N\u00f3 de extremidade
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=Digite os par\u00e2metros dessa opera\u00e7\u00e3o WSDL e clique em <strong>Ir</Strong> para chamar.
+FORM_LINK_ADD=Incluir
+FORM_LINK_REMOVE=Remover
+FORM_LABEL_VALUES=Valores
+FORM_LABEL_ENABLE_DISABLE_GROUP=Ativar/Desativar grupo
+FORM_LABEL_UNION_TYPE=Tipos de uni\u00e3o
+FORM_LABEL_LANGUAGE=Idioma
+FORM_LABEL_XSD_APPLICATION_INFORMATION=Informa\u00e7\u00f5es sobre o Aplicativo
+FORM_LABEL_XSD_DOCUMENTATION=Documenta\u00e7\u00e3o
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=Envelope de Pedido do SOAP:
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=Envelope de Resposta do SOAP:
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=Mover elemento para cima
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=Mover elemento para baixo
+FORM_LABEL_BASE_TYPE=Tipo base
+FORM_LABEL_UNBOUNDED=N\u00e3o ligado
+FORM_LABEL_LENGTH=Comprimento
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=Padr\u00e3o
+FORM_LABEL_WHITESPACE=Espa\u00e7o em Branco
+FORM_LABEL_RANGE_OF_VALUES=Intervalo de valores
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=Total de d\u00edgitos
+FORM_LABEL_FRACTION_DIGITS=D\u00edgitos de fra\u00e7\u00e3o
+FORM_LABEL_OCCURANCE=Ocorr\u00eancia de
+FORM_LABEL_UNION_MEMBERS=Membros da Uni\u00e3o
+FORM_LABEL_LIST_ITEMS=Listar itens
+FORM_LABEL_ELEMENTS=Elementos
+FORM_LABEL_SOAP_ENC_ARRAYS=Matrizes do SOAP
+FORM_LABEL_CONTENT=Conte\u00fado
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2):
+FORM_LABEL_NULL=nulo
+FORM_LABEL_GROUP_NUMBER=Grupo %1
+FORM_LABEL_CHOICES=Op\u00e7\u00f5es
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=N\u00e3o h\u00e1 nada para ser exibido na visualiza\u00e7\u00e3o do formul\u00e1rio. Mude para a visualiza\u00e7\u00e3o de origem para o pedido e resposta do SOAP.
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=A resposta do SOAP falhou na valida\u00e7\u00e3o do esquema. Mude para a visualiza\u00e7\u00e3o de origem para a resposta do SOAP no formato XML.
+FORM_LABEL_END_POINTS=N\u00f3s de Extremidade
+
+# Source/Form views
+FORM_LINK_FORM=Formul\u00e1rio
+ALT_SWITCH_TO_FORM_VIEW=Mudar para visualiza\u00e7\u00e3o do formul\u00e1rio
+FORM_LINK_SOURCE=Origem
+ALT_SWITCH_TO_SOURCE_VIEW=Alternar para visualiza\u00e7\u00e3o de origem
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=Corpo do Soap:
+BUTTON_LABEL_LOAD=Carregar
+BUTTON_LABEL_SAVE_AS=Salvar Como...
+MSG_QUESTION_SYNC_VIEWS=O formato do conte\u00fado de origem poder\u00e1 ser alterado como um resultado da mudan\u00e7a da visualiza\u00e7\u00e3o do formul\u00e1rio. Deseja processar?
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=O conte\u00fado da visualiza\u00e7\u00e3o de origem falhou na valida\u00e7\u00e3o do esquema. Sincronizar de qualquer maneira? (O conte\u00fado da visualiza\u00e7\u00e3o de origem poder\u00e1 ser modificado)
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=Ativar/Desativar grupo
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=Selecionar elemento no grupo
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=Selecionar tipo de uni\u00e3o
+FORM_CONTROL_TITLE_SOAP_FILE=Arquivo de dados do SOAP
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=Di\u00e1logo Informa\u00e7\u00f5es sobre o XSD
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E Selecione pelo menos um item.
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E O m\u00e1ximo de ocorr\u00eancias foi atingido.
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E O m\u00ednimo de ocorr\u00eancias foi atingido.
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E O elemento selecionado j\u00e1 \u00e9 o primeiro no grupo.
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E O elemento selecionado j\u00e1 \u00e9 o \u00faltimo no grupo.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_CN.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_CN.properties
new file mode 100644
index 000000000..d851a425b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_CN.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL \u4e3b\u8981
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5bfc\u822a\u5668\u5bb9\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5bfc\u822a\u5668\u5de5\u5177\u680f
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5bfc\u822a\u5668\u5185\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u64cd\u4f5c\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5c5e\u6027\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5c5e\u6027\u5de5\u5177\u680f
+FRAME_TITLE_PROPERTIES_CONTENT=\u5c5e\u6027\u5185\u5bb9
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6001\u5bb9\u5668
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6001\u5de5\u5177\u680f
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6001\u5185\u5bb9
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL \u9875\u9762\u5185\u5bb9
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=XSD \u4fe1\u606f\u5bf9\u8bdd\u6846\u5de5\u5177\u680f
+FRAME_TITLE_XSD_INFORMATION_CONTENT=XSD \u4fe1\u606f\u5bf9\u8bdd\u6846\u5185\u5bb9
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=\u6253\u5f00 WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E \u8f93\u5165\u6709\u6548\u7684 WSDL URL\u3002
+MSG_ERROR_OPEN_WSDL=IWAB0379E \u65e0\u6cd5\u6253\u5f00 %1\u3002
+MSG_ERROR_XSD_VALIDATION=IWAB0380E \u9a8c\u8bc1 XML \u6a21\u5f0f\u65f6\u9047\u5230\u9519\u8bef\u3002
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I \u5df2\u6210\u529f\u6253\u5f00 %1\u3002
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL \u8be6\u7ec6\u4fe1\u606f
+FORM_LABEL_WSDL_DETAILS_DESC=\u4ee5\u4e0b\u663e\u793a\u7684\u662f\u6b64 WSDL \u6587\u6863\u7684\u8be6\u7ec6\u4fe1\u606f\u3002\u5355\u51fb\u670d\u52a1\u6216\u7ed1\u5b9a\u4ee5\u67e5\u770b\u5176\u8be6\u7ec6\u4fe1\u606f\u3002
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f
+FORM_LABEL_SERVICE_DETAILS_DESC=\u4ee5\u4e0b\u663e\u793a\u7684\u662f\u6b64 &lt;\u670d\u52a1&gt; \u5143\u7d20\u7684\u8be6\u7ec6\u4fe1\u606f\u3002\u5355\u51fb\u7ed1\u5b9a\u4ee5\u67e5\u770b\u5176\u64cd\u4f5c\u3002
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL \u7ed1\u5b9a\u8be6\u7ec6\u4fe1\u606f
+FORM_LABEL_BINDING_DETAILS_DESC=\u4ee5\u4e0b\u663e\u793a\u7684\u662f\u6b64 <strong>%1</strong> &lt;\u7ed1\u5b9a&gt; \u5143\u7d20\u7684\u8be6\u7ec6\u4fe1\u606f\u3002\u5355\u51fb\u64cd\u4f5c\u4ee5\u586b\u5145\u5176\u53c2\u6570\u5e76\u8c03\u7528\u5b83\u6216\u6307\u5b9a\u5176\u5b83\u7aef\u70b9\u3002
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=\u8c03\u7528 WSDL \u64cd\u4f5c
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E \u65e0\u6cd5\u8fde\u63a5\u81f3 %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E \u9a8c\u8bc1 %1 \u65f6\u51fa\u9519
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=\u5c06 WSDL \u6dfb\u52a0\u5230\u6536\u85cf\u5939
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E \u6536\u85cf\u5939\u4e2d\u5df2\u5b58\u5728 %1\u3002
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E \u65e0\u6cd5\u5c06 %1 \u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I \u5df2\u5c06 %1 \u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6536\u85cf\u9879\u5df2\u5b58\u5728\u3002\u60f3\u8981\u8986\u76d6\u5417\uff1f
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I \u5df2\u5237\u65b0 %1\u3002
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 \u4e0d\u518d\u53ef\u89e3\u6790\u3002\u60f3\u8981\u6e05\u9664\u5b83\u5417\uff1f
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I \u5df2\u6210\u529f\u66f4\u65b0\u7aef\u70b9\u3002
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=\u6253\u5f00 WSDL \u8868\u5355
+FORM_TITLE_WSDL_DETAILS=WSDL \u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSDL_BINDING_DETAILS=WSDL \u7ed1\u5b9a\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_INVOKE_WSDL_OPERATION=WSDL \u64cd\u4f5c\u8868\u5355
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=\u8f93\u5165 WSDL \u6587\u6863\u7684 URL \u5e76\u5355\u51fb<strong>\u6267\u884c</strong>\u8fdb\u884c\u63a2\u7d22\u3002
+FORM_LABEL_SERVICES=\u670d\u52a1
+FORM_LABEL_BINDINGS=\u7ed1\u5b9a
+FORM_LABEL_OPERATIONS=\u64cd\u4f5c
+FORM_LABEL_BINDING_TYPE=\u7c7b\u578b
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=\u4e0d\u53d7\u652f\u6301
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=\u540d\u79f0
+FORM_LABEL_DOCUMENTATION=\u6587\u6863
+FORM_LABEL_ENDPOINT=\u7aef\u70b9
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=\u8f93\u5165\u6b64 WSDL \u64cd\u4f5c\u7684\u53c2\u6570\u5e76\u5355\u51fb<strong>\u6267\u884c</Strong>\u4ee5\u8c03\u7528\u3002
+FORM_LINK_ADD=\u6dfb\u52a0
+FORM_LINK_REMOVE=\u9664\u53bb
+FORM_LABEL_VALUES=\u503c
+FORM_LABEL_ENABLE_DISABLE_GROUP=\u542f\u7528\uff0f\u7981\u7528\u7ec4
+FORM_LABEL_UNION_TYPE=\u8054\u5408\u7c7b\u578b
+FORM_LABEL_LANGUAGE=\u8bed\u8a00
+FORM_LABEL_XSD_APPLICATION_INFORMATION=\u5e94\u7528\u7a0b\u5e8f\u4fe1\u606f
+FORM_LABEL_XSD_DOCUMENTATION=\u6587\u6863
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP \u8bf7\u6c42\u5305\u7edc\uff1a
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP \u54cd\u5e94\u5305\u7edc\uff1a
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=\u4e0a\u79fb\u5143\u7d20
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=\u4e0b\u79fb\u5143\u7d20
+FORM_LABEL_BASE_TYPE=\u57fa\u672c\u7c7b\u578b
+FORM_LABEL_UNBOUNDED=\u53d6\u6d88\u7ed1\u5b9a\u7684
+FORM_LABEL_LENGTH=\u957f\u5ea6
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=\u6a21\u5f0f
+FORM_LABEL_WHITESPACE=\u7a7a\u683c
+FORM_LABEL_RANGE_OF_VALUES=\u503c\u8303\u56f4
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=\u603b\u4f4d\u6570
+FORM_LABEL_FRACTION_DIGITS=\u5c0f\u6570\u4f4d\u6570
+FORM_LABEL_OCCURANCE=\u51fa\u73b0
+FORM_LABEL_UNION_MEMBERS=\u8054\u5408\u6210\u5458
+FORM_LABEL_LIST_ITEMS=\u5217\u8868\u9879
+FORM_LABEL_ELEMENTS=\u5143\u7d20
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP \u6570\u7ec4
+FORM_LABEL_CONTENT=\u5185\u5bb9
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2)\uff1a
+FORM_LABEL_NULL=\u7a7a
+FORM_LABEL_GROUP_NUMBER=\u7ec4 %1
+FORM_LABEL_CHOICES=\u9009\u9879
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=\u8868\u5355\u89c6\u56fe\u4e2d\u6ca1\u6709\u8981\u663e\u793a\u7684\u5185\u5bb9\u3002\u6709\u5173 SOAP \u8bf7\u6c42\u548c\u54cd\u5e94\uff0c\u8bf7\u5207\u6362\u81f3\u201c\u6e90\u4ee3\u7801\u201d\u89c6\u56fe\u3002
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=SOAP \u54cd\u5e94\u5bfc\u81f4\u6a21\u5f0f\u9a8c\u8bc1\u5931\u8d25\u3002\u6709\u5173 XML \u683c\u5f0f\u7684 SOAP \u54cd\u5e94\uff0c\u8bf7\u5207\u6362\u81f3\u201c\u6e90\u4ee3\u7801\u201d\u89c6\u56fe\u3002
+FORM_LABEL_END_POINTS=\u7aef\u70b9
+
+# Source/Form views
+FORM_LINK_FORM=\u8868\u5355
+ALT_SWITCH_TO_FORM_VIEW=\u5207\u6362\u81f3\u8868\u5355\u89c6\u56fe
+FORM_LINK_SOURCE=\u6e90\u4ee3\u7801
+ALT_SWITCH_TO_SOURCE_VIEW=\u5207\u6362\u81f3\u201c\u6e90\u4ee3\u7801\u201d\u89c6\u56fe
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=SOAP \u4e3b\u4f53\uff1a
+BUTTON_LABEL_LOAD=\u88c5\u5165
+BUTTON_LABEL_SAVE_AS=\u53e6\u5b58\u4e3a...
+MSG_QUESTION_SYNC_VIEWS=\u6e90\u4ee3\u7801\u5185\u5bb9\u7684\u683c\u5f0f\u53ef\u80fd\u4f1a\u56e0\u4e3a\u5207\u6362\u81f3\u8868\u5355\u89c6\u56fe\u800c\u6539\u53d8\u3002\u60f3\u8981\u5904\u7406\u5417\uff1f
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=\u201c\u6e90\u4ee3\u7801\u201d\u89c6\u56fe\u7684\u5185\u5bb9\u6a21\u5f0f\u9a8c\u8bc1\u5931\u8d25\u3002\u4e00\u5b9a\u8981\u540c\u6b65\u5417\uff1f\uff08\u53ef\u4fee\u6539\u201c\u6e90\u4ee3\u7801\u201d\u89c6\u56fe\u7684\u5185\u5bb9\uff09
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=\u542f\u7528\uff0f\u7981\u7528\u7ec4
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=\u9009\u62e9\u7ec4\u4e2d\u7684\u5143\u7d20
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=\u9009\u62e9\u8054\u5408\u7c7b\u578b
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP \u6570\u636e\u6587\u4ef6
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD \u4fe1\u606f\u5bf9\u8bdd\u6846
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E \u81f3\u5c11\u9009\u62e9\u4e00\u9879\u3002
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E \u8fbe\u5230\u6700\u5927\u51fa\u73b0\u6b21\u6570\u3002
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E \u8fbe\u5230\u6700\u5c0f\u51fa\u73b0\u6b21\u6570\u3002
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E \u9009\u62e9\u7684\u5143\u7d20\u5df2\u662f\u7ec4\u4e2d\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u3002
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E \u9009\u62e9\u7684\u5143\u7d20\u5df2\u662f\u7ec4\u4e2d\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u3002
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_TW.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_TW.properties
new file mode 100644
index 000000000..336e60636
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsdl_zh_TW.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSDL
+
+# Nodes
+NODE_NAME_WSDL_MAIN=WSDL \u4e3b\u8981
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5c0e\u89bd\u5668\u5132\u5b58\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5c0e\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5c0e\u89bd\u5668\u5167\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u52d5\u4f5c\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5167\u5bb9\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5167\u5bb9\u5de5\u5177\u5217
+FRAME_TITLE_PROPERTIES_CONTENT=\u5167\u5bb9\u5167\u6587
+FRAME_TITLE_STATUS_CONTAINER=\u72c0\u614b\u5132\u5b58\u5668
+FRAME_TITLE_STATUS_TOOLBAR=\u72c0\u614b\u5de5\u5177\u5217
+FRAME_TITLE_STATUS_CONTENT=\u72c0\u614b\u5167\u5bb9
+FRAME_TITLE_WSDL_PERSPECTIVE_CONTENT=WSDL \u9801\u9762\u5167\u5bb9
+FRAME_TITLE_XSD_INFORMATION_TOOLBAR=XSD \u8cc7\u8a0a\u5c0d\u8a71\u6846\u5de5\u5177\u5217
+FRAME_TITLE_XSD_INFORMATION_CONTENT=XSD \u8cc7\u8a0a\u5c0d\u8a71\u6846\u5167\u5bb9
+
+# OpenWSDLAction
+ALT_OPEN_WSDL=\u958b\u555f WSDL
+MSG_ERROR_INVALID_WSDL_URL=IWAB0378E \u8acb\u8f38\u5165\u6709\u6548\u7684 WSDL URL\u3002
+MSG_ERROR_OPEN_WSDL=IWAB0379E \u7121\u6cd5\u958b\u555f %1\u3002
+MSG_ERROR_XSD_VALIDATION=IWAB0380E \u7576\u9a57\u8b49 XML \u7db1\u76ee\u6642\uff0c\u767c\u751f\u932f\u8aa4\u3002
+MSG_INFO_OPEN_WSDL_SUCCESSFUL=IWAB0381I \u5df2\u9806\u5229\u958b\u555f %1\u3002
+
+# WSDL Element details
+ALT_WSDL_DETAILS=WSDL \u8a73\u7d30\u8cc7\u6599
+FORM_LABEL_WSDL_DETAILS_DESC=\u4ee5\u4e0b\u986f\u793a\u9019\u4efd WSDL \u6587\u4ef6\u7684\u8a73\u7d30\u8cc7\u6599\u3002\u8acb\u6309\u4e00\u4e0b\u670d\u52d9\u6216\u9023\u7d50\u4f86\u67e5\u770b\u5b83\u7684\u8a73\u7d30\u8cc7\u6599\u3002
+
+# WSDL Service Element details
+ALT_WSDL_SERVICE_DETAILS=WSDL \u670d\u52d9\u8a73\u7d30\u8cc7\u6599
+FORM_LABEL_SERVICE_DETAILS_DESC=\u4ee5\u4e0b\u986f\u793a\u9019\u500b &lt;service&gt; \u5143\u7d20\u7684\u8a73\u7d30\u8cc7\u6599\u3002\u8acb\u6309\u4e00\u4e0b\u9023\u7d50\u4f86\u67e5\u770b\u5b83\u7684\u4f5c\u696d\u3002
+
+# WSDL Binding Element details
+ALT_WSDL_BINDING_DETAILS=WSDL \u9023\u7d50\u8a73\u7d30\u8cc7\u6599
+FORM_LABEL_BINDING_DETAILS_DESC=\u4ee5\u4e0b\u986f\u793a\u9019\u500b <strong>%1</strong> &lt;binding&gt; \u5143\u7d20\u7684\u8a73\u7d30\u8cc7\u6599\u3002\u8acb\u6309\u4e00\u4e0b\u67d0\u9805\u4f5c\u696d\u4f86\u586b\u5165\u5b83\u7684\u53c3\u6578\u53ca\u547c\u53eb\u5b83\uff0c\u6216\u6307\u5b9a\u5176\u4ed6\u7aef\u9ede\u3002
+
+# InvokeWSDLOperationAction
+ALT_INVOKE_WSDL_OPERATION=\u547c\u53eb WSDL \u4f5c\u696d
+MSG_ERROR_UNABLE_TO_CONNECT=IWAB0382E \u7121\u6cd5\u9023\u63a5\u5230 %1
+MSG_ERROR_VALIDATING_PARAMETER=IWAB0383E \u9a57\u8b49 %1 \u6642\uff0c\u767c\u751f\u932f\u8aa4
+
+# WSDLAddToFavoritesAction
+ALT_ADD_WSDL_TO_FAVORITES=\u5c07 WSDL \u52a0\u5230\u6211\u7684\u6700\u611b
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0384E %1 \u5df2\u5728\u6211\u7684\u6700\u611b\u4e2d\u3002
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0385E \u7121\u6cd5\u5c07 %1 \u52a0\u5230\u6211\u7684\u6700\u611b\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0386I %1 \u5df2\u52a0\u5230\u6211\u7684\u6700\u611b\u4e2d\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6211\u7684\u6700\u611b\u5df2\u5b58\u5728\u3002\u60a8\u8981\u6539\u5beb\u55ce\uff1f
+
+# RefreshWSDLAction
+MSG_INFO_REFRESH_WSDL_SUCCESSFUL=IWAB0387I \u5df2\u91cd\u65b0\u6574\u7406 %1\u3002
+MSG_QUESTION_REMOVE_WSDL_NODE=%1 \u5df2\u7121\u6cd5\u89e3\u6790\u3002\u60a8\u8981\u6e05\u9664\u5b83\u55ce\uff1f
+
+# UpdateWSDLBindingAction
+MSG_INFO_UPDATE_WSDL_BINDING_SUCCESSFUL=IWAB0388I \u5df2\u9806\u5229\u66f4\u65b0\u7aef\u9ede\u3002
+
+# Form titles
+FORM_TITLE_OPEN_WSDL=\u958b\u555f WSDL \u8868\u55ae
+FORM_TITLE_WSDL_DETAILS=WSDL \u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u670d\u52d9\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSDL_BINDING_DETAILS=WSDL \u9023\u7d50\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_INVOKE_WSDL_OPERATION=WSDL \u4f5c\u696d\u8868\u55ae
+
+# Form Labels
+FORM_LABEL_OPEN_WSDL_DESC=\u8acb\u8f38\u5165 WSDL \u6587\u4ef6\u7684 URL\uff0c\u518d\u6309\u4e00\u4e0b<strong>\u57f7\u884c</strong>\u4f86\u9032\u884c\u63a2\u7d22\u3002
+FORM_LABEL_SERVICES=\u670d\u52d9
+FORM_LABEL_BINDINGS=\u9023\u7d50
+FORM_LABEL_OPERATIONS=\u4f5c\u696d
+FORM_LABEL_BINDING_TYPE=\u985e\u578b
+FORM_LABEL_BINDING_TYPE_UNSUPPORTED=\u4e0d\u652f\u63f4
+FORM_LABEL_BINDING_TYPE_SOAP=SOAP
+FORM_LABEL_BINDING_TYPE_HTTP_GET=HTTP GET
+FORM_LABEL_BINDING_TYPE_HTTP_POST=HTTP POST
+FORM_LABEL_NAME=\u540d\u7a31
+FORM_LABEL_DOCUMENTATION=\u6587\u4ef6
+FORM_LABEL_ENDPOINT=\u7aef\u9ede
+FORM_LABEL_INVOKE_WSDL_OPERATION_DESC=\u8acb\u8f38\u5165\u9019\u500b WSDL \u4f5c\u696d\u7684\u53c3\u6578\uff0c\u518d\u6309\u4e00\u4e0b<strong>\u57f7\u884c</Strong>\u4f86\u9032\u884c\u547c\u53eb\u3002
+FORM_LINK_ADD=\u65b0\u589e
+FORM_LINK_REMOVE=\u79fb\u9664
+FORM_LABEL_VALUES=\u503c
+FORM_LABEL_ENABLE_DISABLE_GROUP=\u555f\u7528/\u505c\u7528\u7fa4\u7d44
+FORM_LABEL_UNION_TYPE=\u806f\u96c6\u985e\u578b
+FORM_LABEL_LANGUAGE=\u8a9e\u8a00
+FORM_LABEL_XSD_APPLICATION_INFORMATION=\u61c9\u7528\u7a0b\u5f0f\u8cc7\u8a0a
+FORM_LABEL_XSD_DOCUMENTATION=\u6587\u4ef6
+FORM_LABEL_SOAP_REQUEST_ENVELOPE=SOAP \u8981\u6c42\u5c01\u5957\uff1a
+FORM_LABEL_SOAP_RESPONSE_ENVELOPE=SOAP \u56de\u61c9\u5c01\u5957\uff1a
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP=\u5c07\u5143\u7d20\u5411\u4e0a\u79fb\u52d5
+FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN=\u5c07\u5143\u7d20\u5411\u4e0b\u79fb\u52d5
+FORM_LABEL_BASE_TYPE=\u57fa\u672c\u985e\u578b
+FORM_LABEL_UNBOUNDED=\u7121\u754c\u9650
+FORM_LABEL_LENGTH=\u9577\u5ea6
+FORM_LABEL_LENGTH_VALUE=[%1..%2]
+FORM_LABEL_PATTERN=\u578b\u6a23
+FORM_LABEL_WHITESPACE=\u7a7a\u767d
+FORM_LABEL_RANGE_OF_VALUES=\u503c\u7bc4\u570d
+FORM_LABEL_MIN_EXCLUSIVE=(%1..
+FORM_LABEL_MIN_INCLUSIVE=[%1..
+FORM_LABEL_MAX_EXCLUSIVE=%1)
+FORM_LABEL_MAX_INCLUSIVE=%1]
+FORM_LABEL_TOTAL_DIGITS=\u7e3d\u4f4d\u6578
+FORM_LABEL_FRACTION_DIGITS=\u5c0f\u6578\u4f4d\u6578
+FORM_LABEL_OCCURANCE=\u51fa\u73fe\u9805\u76ee
+FORM_LABEL_UNION_MEMBERS=\u806f\u96c6\u6210\u54e1
+FORM_LABEL_LIST_ITEMS=\u6e05\u55ae\u9805\u76ee
+FORM_LABEL_ELEMENTS=\u5143\u7d20
+FORM_LABEL_SOAP_ENC_ARRAYS=SOAP \u9663\u5217
+FORM_LABEL_CONTENT=\u5167\u5bb9
+FORM_LABEL_ATOMIC_NAME_TYPE=%1 (%2)\uff1a
+FORM_LABEL_NULL=\u7a7a\u503c
+FORM_LABEL_GROUP_NUMBER=%1 \u7fa4\u7d44
+FORM_LABEL_CHOICES=\u9078\u9805
+FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW=\u6c92\u6709\u8868\u55ae\u8996\u5716\u6240\u8981\u986f\u793a\u7684\u9805\u76ee\u3002\u8acb\u5207\u63db\u81f3 SOAP \u8981\u6c42\u548c\u56de\u61c9\u7684\u7a0b\u5f0f\u78bc\u8996\u5716\u3002
+FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW=SOAP \u56de\u61c9\u4f7f\u7db1\u76ee\u9a57\u8b49\u5931\u6557\u3002\u8acb\u5207\u63db\u81f3 XML \u683c\u5f0f\u7684 SOAP \u56de\u61c9\u7a0b\u5f0f\u78bc\u8996\u5716\u3002
+FORM_LABEL_END_POINTS=\u7aef\u9ede
+
+# Source/Form views
+FORM_LINK_FORM=\u8868\u55ae
+ALT_SWITCH_TO_FORM_VIEW=\u5207\u63db\u81f3\u8868\u55ae\u8996\u5716
+FORM_LINK_SOURCE=\u7a0b\u5f0f\u78bc
+ALT_SWITCH_TO_SOURCE_VIEW=\u5207\u63db\u81f3\u7a0b\u5f0f\u78bc\u8996\u5716
+FORM_LABEL_FRAGMENT_SOAP_VIEW_CONTENT=SOAP \u4e3b\u9ad4\uff1a
+BUTTON_LABEL_LOAD=\u8f09\u5165
+BUTTON_LABEL_SAVE_AS=\u53e6\u5b58\u65b0\u6a94...
+MSG_QUESTION_SYNC_VIEWS=\u53ef\u80fd\u6703\u56e0\u70ba\u5207\u63db\u81f3\u8868\u55ae\u8996\u5716\u800c\u6539\u8b8a\u7a0b\u5f0f\u78bc\u5167\u5bb9\u7684\u683c\u5f0f\u3002\u60a8\u8981\u7e7c\u7e8c\u55ce\uff1f
+MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT=\u7a0b\u5f0f\u78bc\u8996\u5716\u7684\u5167\u5bb9\u4f7f\u7db1\u76ee\u9a57\u8b49\u5931\u6557\u3002\u4ecd\u8981\u540c\u6b65\u5316\u55ce\uff1f\uff08\u53ef\u4ee5\u4fee\u6539\u7a0b\u5f0f\u78bc\u8996\u5716\u7684\u5167\u5bb9\uff09
+
+# Form control titles
+FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP=\u555f\u7528/\u505c\u7528\u7fa4\u7d44
+FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP=\u9078\u53d6\u7fa4\u7d44\u4e2d\u7684\u5143\u7d20
+FORM_CONTROL_TITLE_SELECT_UNION_TYPE=\u9078\u53d6\u806f\u96c6\u985e\u578b
+FORM_CONTROL_TITLE_SOAP_FILE=SOAP \u8cc7\u6599\u6a94
+
+# XSD Information Dialog
+TITLE_XSD_INFORMATION_DIALOG=XSD \u8cc7\u8a0a\u5c0d\u8a71\u6846
+
+# Error messages
+MSG_ERROR_NOTHING_SELECTED=IWAB0389E \u8acb\u9078\u53d6\u81f3\u5c11\u4e00\u500b\u9805\u76ee\u3002
+MSG_ERROR_MAX_OCCURS_VIOLATION=IWAB0390E \u5df2\u5230\u9054\u767c\u751f\u6b21\u6578\u4e0a\u9650\u3002
+MSG_ERROR_MIN_OCCURS_VIOLATION=IWAB0391E \u5df2\u5230\u9054\u767c\u751f\u6b21\u6578\u4e0b\u9650\u3002
+MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP=IWAB0392E \u6240\u9078\u5143\u7d20\u5df2\u662f\u7fa4\u7d44\u4e2d\u7684\u7b2c\u4e00\u500b\u3002
+MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN=IWAB0393E \u6240\u9078\u5143\u7d20\u5df2\u662f\u7fa4\u7d44\u4e2d\u7684\u6700\u5f8c\u4e00\u500b\u3002
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil.properties
new file mode 100644
index 000000000..b64c5b731
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL Main
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Item #
+FORM_LABEL_UDDI_BUSINESS_NAME=UDDI Business Name
+FORM_LABEL_UDDI_SERVICE_NAME=UDDI Service Name
+FORM_LABEL_LANGUAGE=Language
+FORM_LABEL_ABSTRACT=Abstract
+FORM_LABEL_NAME=Name
+FORM_LABEL_WSDL_BINDINGS=WSDL Bindings
+FORM_LABEL_NAMESPACE_URI=Namespace URI
+FORM_LABEL_LOCAL_NAME=Local Name
+FORM_LABEL_INQUIRY_API=Inquiry API
+FORM_LABEL_SERVICE_KEY=Service Key
+FORM_LABEL_BUSINESS_KEY=Business Key
+FORM_LABEL_DISCOVERY_URL=Discovery URL
+FORM_LABEL_WSIL=WSIL Details
+FORM_LABEL_WSIL_LINKS=WSIL Links
+FORM_LABEL_WSDL_SERVICE=WSDL Services
+FORM_LABEL_UDDI_SERVICE=UDDI Services
+FORM_LABEL_UDDI_BUSINESS=UDDI Businesses
+FORM_LABEL_ADD_TO_NAVIGATOR=Add To Navigator
+FORM_LABEL_ADD_TO_FAVORITES=Add To Favorites
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=Add To UDDI Page
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=Add To WSDL Page
+FORM_LABEL_REFRESH=Refresh
+FORM_LABEL_NA=N/A
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Service Unavailable:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=Business Unavailable:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=Choose the type of objects to inspect:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E Select at least one item.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=Open WSIL
+FORM_LABEL_OPEN_WSIL_DESC=Enter the URL of a WSIL document or a HTML document and click <strong>Go</strong> to open inspect.
+WSIL_URL=URL to document:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 is not a valid WSIL URL or HTML URL.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 is already opened in the navigator.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 was successfully opened.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=Open WSIL Link
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 is already opened in the navigator
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 was successfully opened.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL Details
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSIL Service Details
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI Business Details
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL Link Details
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=List All WSDL Services
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=Select a set of WSDL services and click <strong>Add to Favorites</strong> to add these to the list of favorites.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=List All UDDI Services
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=Select a set of UDDI services and click <strong>Add to Favorites</strong> to add these to the list of favorites. Click <strong>Add to UDDI Page</strong> to add the selections to the UDDI Page. Click <strong>Refresh</strong> to refresh the selections.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=List All UDDI Businesses
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=Select a set of UDDI businesses and click <strong>Add to Favorites</strong> to add these to the list of favorites. Click <strong>Add to UDDI Page</strong> to add these to the UDDI Page. Click <strong>Refresh</strong> to refresh the selections.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=List All WSIL Links
+FORM_LABEL_LIST_WSIL_LINKS=Select a set of WSIL links and press <strong>Add to Navigator</strong> to open them in the navigator.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=Clear WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=Refresh WSIL
+ALT_REFRESH_UDDI_BUSINESS=Refresh UDDI Business
+ALT_REFRESH_UDDI_SERVICE=Refresh UDDI Service
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E WSIL %1 could not be loaded.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E Business %1 could not be found in the registry.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E Service %1 could not be found in the registry.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 is refreshed.
+MSG_CONFIRM_REMOVE_NODE=%1 is no longer resolvable. Do you wish to clear it?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=Add Business To UDDI Page
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=Add Service To UDDI Page
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 is added to UDDI Page.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E Unable to add %1 to UDDI Page.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E Business %1 could not be found in the registry.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E Service %1 could not be found in the registry.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Add WSDL To WSDL Page
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 is added to WSDL Page.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 could not be loaded.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=Add WSIL To Favorites
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E Unable to add %1 to favorites.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 already exists in favorites.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 is added to favorites.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorite already exists. Do you wish to overwrite?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=Add WSDL To Favorites
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=Add UDDI Business To Favorites
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=Add UDDI Service To Favorites
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=Import WSIL To Workbench
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=Select a workbench project to save the WSIL file into. You may also change the name of the WSIL file.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Import WSIL To File System
+ALT_WSDL_IMPORT_TO_FS=Import WSDL To File System
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator Toolbar
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator Content
+FRAME_TITLE_ACTIONS_CONTAINER=Actions Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Properties Container
+FRAME_TITLE_PROPERTIES_CONTENT=Properties Content
+FRAME_TITLE_PROPERTIES_TOOLBAR=Properties Toolbar
+FRAME_TITLE_STATUS_CONTAINER=Status Container
+FRAME_TITLE_STATUS_CONTENT=Status Content
+FRAME_TITLE_STATUS_TOOLBAR=Status Toolbar
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=Open WSIL Form
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI Business Details Form
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI Service Details Form
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL Service Details Form
+FORM_TITLE_WSIL_DETAILS=WSIL Details Form
+FORM_TITLE_WSIL_LINK_DETAILS=WSIL Link Details Form
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=UDDI Businesses View
+VIEW_TITLE_UDDI_SERVICES=UDDI Services View
+VIEW_TITLE_WSDL_SERVICES=WSDL Services View
+VIEW_TITLE_WSIL_LINKS=WSIL Links View
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_de.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_de.properties
new file mode 100644
index 000000000..9731fb536
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_de.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL - Haupt
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Eintrag #
+FORM_LABEL_UDDI_BUSINESS_NAME=Name des UDDI-Gesch\u00e4fts
+FORM_LABEL_UDDI_SERVICE_NAME=Name des UDDI-Services
+FORM_LABEL_LANGUAGE=Sprache
+FORM_LABEL_ABSTRACT=Kurzdarstellung
+FORM_LABEL_NAME=Name
+FORM_LABEL_WSDL_BINDINGS=WSDL-Bindings
+FORM_LABEL_NAMESPACE_URI=Namensbereichs-URI
+FORM_LABEL_LOCAL_NAME=Lokaler Name
+FORM_LABEL_INQUIRY_API=Abfrage-API
+FORM_LABEL_SERVICE_KEY=Serviceschl\u00fcssel
+FORM_LABEL_BUSINESS_KEY=Gesch\u00e4ftsschl\u00fcssel
+FORM_LABEL_DISCOVERY_URL=Erkennungs-URL
+FORM_LABEL_WSIL=WSIL - Details
+FORM_LABEL_WSIL_LINKS=WSIL-Links
+FORM_LABEL_WSDL_SERVICE=WSDL-Services
+FORM_LABEL_UDDI_SERVICE=UDDI-Services
+FORM_LABEL_UDDI_BUSINESS=UDDI-Gesch\u00e4fte
+FORM_LABEL_ADD_TO_NAVIGATOR=Zu Navigator hinzuf\u00fcgen
+FORM_LABEL_ADD_TO_FAVORITES=Zu Favoriten hinzuf\u00fcgen
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=Zu UDDI-Seite hinzuf\u00fcgen
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=Zu WSDL-Seite hinzuf\u00fcgen
+FORM_LABEL_REFRESH=Aktualisieren
+FORM_LABEL_NA=n/v
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Service nicht verf\u00fcgbar:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=Gesch\u00e4ft nicht verf\u00fcgbar:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=W\u00e4hlen Sie den Typ der zu untersuchenden Objekte aus:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E W\u00e4hlen Sie mindestens einen Eintrag aus.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=WSIL \u00f6ffnen
+FORM_LABEL_OPEN_WSIL_DESC=Geben Sie die URL eines WSIL-Dokuments oder eines HTML-Dokuments ein, und klicken Sie <strong>Los</strong> an, um mit der Untersuchung zu beginnen.
+WSIL_URL=URL zum Dokument:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 ist keine g\u00fcltige WSIL-URL oder HTML-URL.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 ist bereits im Navigator ge\u00f6ffnet.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 wurde erfolgreich ge\u00f6ffnet
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=WSIL-Link \u00f6ffnen
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 ist bereits im Navigator ge\u00f6ffnet.
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 wurde erfolgreich ge\u00f6ffnet.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL - Details
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSDL-Service - Details
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI-Gesch\u00e4ft - Details
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL-Link - Details
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=Alle WSDL-Services auflisten
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=W\u00e4hlen Sie eine Gruppe von WSDL-Services aus, und klicken Sie <strong>Zu Favoriten hinzuf\u00fcgen</strong> an, um sie zur Liste der Favoriten hinzuzuf\u00fcgen.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=Alle UDDI-Services auflisten
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=W\u00e4hlen Sie eine Gruppe von UDDI-Services aus, und klicken Sie <strong>Zu Favoriten hinzuf\u00fcgen</strong> an, um sie zur Liste der Favoriten hinzuzuf\u00fcgen. Klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um die Auswahl zur UDDI-Seite hinzuzuf\u00fcgen. Klicken Sie <strong>Aktualisieren</strong> an, um die Auswahl zu aktualisieren.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=Alle UDDI-Gesch\u00e4fte auflisten
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=W\u00e4hlen Sie eine Gruppe von UDDI-Gesch\u00e4ften aus, und klicken Sie <strong>Zu Favoriten hinzuf\u00fcgen</strong> an, um sie zur Liste der Favoriten hinzuzuf\u00fcgen. Klicken Sie <strong>Zu UDDI-Seite hinzuf\u00fcgen</strong> an, um sie zur UDDI-Seite hinzuzuf\u00fcgen. Klicken Sie <strong>Aktualisieren</strong> an, um die Auswahl zu aktualisieren.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=Alle WSIL-Links auflisten
+FORM_LABEL_LIST_WSIL_LINKS=W\u00e4hlen Sie eine Gruppe von WSIL-Links aus, und klicken Sie <strong>Zu Navigator hinzuf\u00fcgen</strong> an, um sie im Navigator zu \u00f6ffnen.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=WSIL l\u00f6schen
+
+# RefreshAction
+ALT_REFRESH_WSIL=WSIL aktualisieren
+ALT_REFRESH_UDDI_BUSINESS=UDDI-Gesch\u00e4fte aktualisieren
+ALT_REFRESH_UDDI_SERVICE=UDDI-Service aktualisieren
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E WSIL %1 konnte nicht geladen werden.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E Gesch\u00e4ft %1 konnte in der Registrierung nicht gefunden werden.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E Service %1 konnte in der Registrierung nicht gefunden werden.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 wurde aktualisiert.
+MSG_CONFIRM_REMOVE_NODE=%1 kann nicht mehr aufgel\u00f6st werden. Soll der Knoten gel\u00f6scht werden?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=Gesch\u00e4ft zu UDDI-Seite hinzuf\u00fcgen
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=Service zu UDDI-Seite hinzuf\u00fcgen
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 wurde zu UDDI-Seite hinzugef\u00fcgt.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E %1 kann nicht zu UDDI-Seite hinzugef\u00fcgt werden.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E Gesch\u00e4ft %1 konnte in der Registrierung nicht gefunden werden.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E Service %1 konnte in der Registrierung nicht gefunden werden.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=WSDL zu WSDL-Seite hinzuf\u00fcgen
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 wurde zu WSDL-Seite hinzugef\u00fcgt.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 konnte nicht geladen werden.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=WSIL zu Favoriten hinzuf\u00fcgen
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E %1 kann nicht zu Favoriten hinzugef\u00fcgt werden.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 ist bereits in den Favoriten vorhanden.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 wurde zu den Favoriten hinzugef\u00fcgt.
+MSG_QUESTION_OVERWRITE_FAVORITES=Favorit bereits vorhanden. \u00dcberschreiben?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=WSDL zu Favoriten hinzuf\u00fcgen
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=UDDI-Gesch\u00e4ft zu Favoriten hinzuf\u00fcgen
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=UDDI-Service zu Favoriten hinzuf\u00fcgen
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=WSIL in Workbench importieren
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=W\u00e4hlen Sie ein Workbench-Projekt aus, in dem die WSIL-Datei gespeichert werden soll. Sie k\u00f6nnen auch den Namen der WSIL-Datei \u00e4ndern.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=WSIL in Dateisystem importieren
+ALT_WSDL_IMPORT_TO_FS=WSDL in Dateisystem importieren
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigator - Container
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigator - Symbolleiste
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigator - Inhalt
+FRAME_TITLE_ACTIONS_CONTAINER=Aktionen - Container
+FRAME_TITLE_PROPERTIES_CONTAINER=Eigenschaften - Container
+FRAME_TITLE_PROPERTIES_CONTENT=Eigenschaften - Inhalt
+FRAME_TITLE_PROPERTIES_TOOLBAR=Eigenschaften - Symbolleiste
+FRAME_TITLE_STATUS_CONTAINER=Status - Container
+FRAME_TITLE_STATUS_CONTENT=Status - Inhalt
+FRAME_TITLE_STATUS_TOOLBAR=Status - Symbolleiste
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=WSIL-Formular \u00f6ffnen
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formular f\u00fcr UDDI-Gesch\u00e4ftsdetails
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formular f\u00fcr UDDI-Servicedetails
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formular f\u00fcr WSDL-Servicedetails
+FORM_TITLE_WSIL_DETAILS=Formular f\u00fcr WSIL-Details
+FORM_TITLE_WSIL_LINK_DETAILS=Formular f\u00fcr WSIL-Linkdetails
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=Sicht f\u00fcr UDDI-Gesch\u00e4fte
+VIEW_TITLE_UDDI_SERVICES=Sicht f\u00fcr UDDI-Services
+VIEW_TITLE_WSDL_SERVICES=Sicht f\u00fcr WSDL-Services
+VIEW_TITLE_WSIL_LINKS=Sicht f\u00fcr WSIL-Links
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_es.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_es.properties
new file mode 100644
index 000000000..9e63ce4c5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_es.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL - Principal
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Elemento #
+FORM_LABEL_UDDI_BUSINESS_NAME=Nombre de empresa UDDI
+FORM_LABEL_UDDI_SERVICE_NAME=Nombre de servicio UDDI
+FORM_LABEL_LANGUAGE=Lenguaje
+FORM_LABEL_ABSTRACT=Abstracto
+FORM_LABEL_NAME=Nombre
+FORM_LABEL_WSDL_BINDINGS=Enlaces WSDL
+FORM_LABEL_NAMESPACE_URI=URI de espacio de nombres
+FORM_LABEL_LOCAL_NAME=Nombre local
+FORM_LABEL_INQUIRY_API=API de consulta
+FORM_LABEL_SERVICE_KEY=Clave de servicio
+FORM_LABEL_BUSINESS_KEY=Clave de empresa
+FORM_LABEL_DISCOVERY_URL=URL de descubrimiento
+FORM_LABEL_WSIL=Detalles de WSIL
+FORM_LABEL_WSIL_LINKS=Enlaces WSIL
+FORM_LABEL_WSDL_SERVICE=Servicios WSDL
+FORM_LABEL_UDDI_SERVICE=Servicios UDDI
+FORM_LABEL_UDDI_BUSINESS=Empresas UDDI
+FORM_LABEL_ADD_TO_NAVIGATOR=A\u00f1adir a navegador
+FORM_LABEL_ADD_TO_FAVORITES=A\u00f1adir a favoritos
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=A\u00f1adir a p\u00e1gina UDDI
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSDL
+FORM_LABEL_REFRESH=Renovar
+FORM_LABEL_NA=N/D
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Servicio no disponible:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=Empresa no disponible:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=Elija el tipo de objetos que desea inspeccionar:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E Seleccione como m\u00ednimo un elemento.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=Abrir WSIL
+FORM_LABEL_OPEN_WSIL_DESC=Entre el URL de un documento WSIL o un documento HTML y pulse <strong>Ir</strong> para abrir la inspecci\u00f3n.
+WSIL_URL=URL para documento:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 no es un URL WSIL ni un URL HTML v\u00e1lido.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 ya est\u00e1 abierto en el navegador.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 se ha abierto satisfactoriamente.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=Abrir enlace WSIL
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 ya est\u00e1 abierto en el navegador
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 se ha abierto satisfactoriamente.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=Detalles de WSIL
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=Detalles de servicio WSIL
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=Detalles de empresa UDDI
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=Detalles de enlace WSIL
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=Listar todos los servicios WSDL
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=Seleccione un conjunto de servicios WSDL y pulse <strong>A\u00f1adir a favoritos</strong> para a\u00f1adirlos a la lista de favoritos.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=Listar todos los servicios UDDI
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=Seleccione un conjunto de servicios UDDI y pulse <strong>A\u00f1adir a favoritos</strong> para a\u00f1adirlos a la lista de favoritos. Pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para a\u00f1adir las selecciones a la P\u00e1gina UDDI. Pulse <strong>Renovar</strong> para renovar las selecciones.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=Listar todas las empresas UDDI
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=Seleccione un conjunto de empresas UDDI y pulse <strong>A\u00f1adir a favoritos</strong> para a\u00f1adirlas a la lista de favoritos. Pulse <strong>A\u00f1adir a p\u00e1gina UDDI</strong> para a\u00f1adirlas a la P\u00e1gina UDDI. Pulse <strong>Renovar</strong> para renovar las selecciones.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=Listar todos los enlaces WSIL
+FORM_LABEL_LIST_WSIL_LINKS=Seleccione un conjunto de enlaces WSIL y pulse <strong>A\u00f1adir a navegador</strong> para abrirlos en el navegador.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=Borrar WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=Renovar WSIL
+ALT_REFRESH_UDDI_BUSINESS=Renovar empresa UDDI
+ALT_REFRESH_UDDI_SERVICE=Renovar servicio UDDI
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E No se ha podido cargar WSIL %1.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E La empresa %1 no se ha podido encontrar en el registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E El servicio %1 no se ha podido encontrar en el registro.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 se ha renovado.
+MSG_CONFIRM_REMOVE_NODE=%1 ya no puede resolverse. \u00bfDesea borrarlo?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=A\u00f1adir empresa a p\u00e1gina UDDI
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=A\u00f1adir servicio a p\u00e1gina UDDI
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 se a\u00f1ade a la p\u00e1gina UDDI.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E No se puede a\u00f1adir %1 a la p\u00e1gina UDDI.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E La empresa %1 no se ha podido encontrar en el registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E El servicio %1 no se ha podido encontrar en el registro.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=A\u00f1adir WSDL a p\u00e1gina WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 se a\u00f1ade a la p\u00e1gina WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 no se ha podido cargar.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=A\u00f1adir WSIL a favoritos
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E No se puede a\u00f1adir %1 a los favoritos.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 ya existe en los favoritos.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 se a\u00f1ade a los favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=El favorito ya existe. \u00bfDesea sobrescribirlo?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=A\u00f1adir WSDL a favoritos
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=A\u00f1adir empresa UDDI a favoritos
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=A\u00f1adir servicio UDDI a favoritos
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=Importar WSIL al entorno de trabajo
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=Seleccione un proyecto en el que guardar el archivo WSIL. Tambi\u00e9n puede cambiar el nombre del archivo WSIL.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importar WSIL al sistema de archivos
+ALT_WSDL_IMPORT_TO_FS=Importar WSDL al sistema de archivos
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenedor del navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de herramientas del navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenido del navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Contenedor de acciones
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenedor de propiedades
+FRAME_TITLE_PROPERTIES_CONTENT=Contenido de propiedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de herramientas de propiedades
+FRAME_TITLE_STATUS_CONTAINER=Contenedor de estado
+FRAME_TITLE_STATUS_CONTENT=Contenido de estado
+FRAME_TITLE_STATUS_TOOLBAR=Barra de herramientas de estado
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=Abrir formulario WSIL
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formulario de detalles de empresa UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formulario de detalles de servicio UDDI
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formulario Detalles de servicio WSDL
+FORM_TITLE_WSIL_DETAILS=Formulario de detalles de WSIL
+FORM_TITLE_WSIL_LINK_DETAILS=Formulario de detalles de enlace de WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=Vista de empresas UDDI
+VIEW_TITLE_UDDI_SERVICES=Vista de servicios UDDI
+VIEW_TITLE_WSDL_SERVICES=Vista de servicios WSDL
+VIEW_TITLE_WSIL_LINKS=Vista de enlaces WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_fr.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_fr.properties
new file mode 100644
index 000000000..90c9cee73
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_fr.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL - Page principale
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=N\u00b0 de l'\u00e9l\u00e9ment
+FORM_LABEL_UDDI_BUSINESS_NAME=Nom du m\u00e9tier UDDI
+FORM_LABEL_UDDI_SERVICE_NAME=Nom du service UDDI
+FORM_LABEL_LANGUAGE=Langue
+FORM_LABEL_ABSTRACT=R\u00e9sum\u00e9
+FORM_LABEL_NAME=Nom
+FORM_LABEL_WSDL_BINDINGS=Liaisons WSDL
+FORM_LABEL_NAMESPACE_URI=URI de l'espace de nom
+FORM_LABEL_LOCAL_NAME=Nom local
+FORM_LABEL_INQUIRY_API=API d'interrogation
+FORM_LABEL_SERVICE_KEY=Cl\u00e9 du service
+FORM_LABEL_BUSINESS_KEY=Cl\u00e9 du m\u00e9tier
+FORM_LABEL_DISCOVERY_URL=URL de recherche
+FORM_LABEL_WSIL=Informations sur le fichier WSIL
+FORM_LABEL_WSIL_LINKS=Liens WSIL
+FORM_LABEL_WSDL_SERVICE=Services WSDL
+FORM_LABEL_UDDI_SERVICE=Services UDDI
+FORM_LABEL_UDDI_BUSINESS=M\u00e9tiers UDDI
+FORM_LABEL_ADD_TO_NAVIGATOR=Ajouter au navigateur
+FORM_LABEL_ADD_TO_FAVORITES=Ajouter aux favoris
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=Ajouter \u00e0 la page UDDI
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=Ajouter \u00e0 la page WSDL
+FORM_LABEL_REFRESH=R\u00e9g\u00e9n\u00e9ration
+FORM_LABEL_NA=Non disponible
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Service non disponible :
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=M\u00e9tier non disponible :
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=Choisissez le type des objets \u00e0 inspecter :
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E S\u00e9lectionnez au moins un \u00e9l\u00e9ment.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=Ouvrir un fichier WSIL
+FORM_LABEL_OPEN_WSIL_DESC=Indiquez l'URL d'un document WSIL ou d'un document HTML et cliquez sur <strong>OK</strong> pour lancer l'inspection.
+WSIL_URL=URL du document :
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 n'est pas une URL WSIL ou HTML valide.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 est d\u00e9j\u00e0 ouvert dans le navigateur.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 a \u00e9t\u00e9 ouvert.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=Ouvrir un lien WSIL
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 est d\u00e9j\u00e0 ouvert dans le navigateur
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 a \u00e9t\u00e9 ouvert.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=Informations sur le fichier WSIL
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=Informations sur les services WSIL
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=Caract\u00e9ristiques des m\u00e9tiers UDDI
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=Caract\u00e9ristiques des liens WSIL
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=R\u00e9pertorier tous les services WSDL
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=S\u00e9lectionnez un groupe de services WSDL et cliquez sur <strong>Ajouter aux favoris</strong> pour les ajouter \u00e0 la liste des favoris.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=R\u00e9pertorier tous les services UDDI
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=S\u00e9lectionnez un groupe de services UDDI et cliquez sur <strong>Ajouter aux favoris</strong> pour les ajouter \u00e0 la liste des favoris. Cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour ajouter les s\u00e9lections \u00e0 la page UDDI. Cliquez sur <strong>R\u00e9g\u00e9n\u00e9rer</strong> pour r\u00e9g\u00e9n\u00e9rer les s\u00e9lections.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=R\u00e9pertorier tous les m\u00e9tiers UDDI
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=S\u00e9lectionnez un groupe de m\u00e9tiers UDDI et cliquez sur <strong>Ajouter aux favoris</strong> pour les ajouter \u00e0 la liste des favoris. Cliquez sur <strong>Ajouter \u00e0 la page UDDI</strong> pour les ajouter \u00e0 la page UDDI. Cliquez sur <strong>R\u00e9g\u00e9n\u00e9rer</strong> pour r\u00e9g\u00e9n\u00e9rer les s\u00e9lections.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=R\u00e9pertorier tous les liens WSIL
+FORM_LABEL_LIST_WSIL_LINKS=S\u00e9lectionnez un groupe de liens WSIL et cliquez sur <strong>Ajouter au navigateur</strong> pour ouvrir ces liens dans le navigateur.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=Effacer les documents WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=R\u00e9g\u00e9n\u00e9rer les documents WSIL
+ALT_REFRESH_UDDI_BUSINESS=R\u00e9g\u00e9n\u00e9rer le m\u00e9tier UDDI
+ALT_REFRESH_UDDI_SERVICE=R\u00e9g\u00e9n\u00e9rer le service UDDI
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E Le document WSIL %1 n'a pas pu \u00eatre charg\u00e9.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E Le m\u00e9tier %1 est introuvable dans le registre.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E Le service %1 est introuvable dans le registre.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 est r\u00e9g\u00e9n\u00e9r\u00e9.
+MSG_CONFIRM_REMOVE_NODE=%1 ne peut plus \u00eatre r\u00e9solu. Voulez-vous l'effacer ?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=Ajouter le m\u00e9tier \u00e0 la page UDDI
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=Ajouter le service \u00e0 la page UDDI
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 est ajout\u00e9 \u00e0 la page UDDI.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E Impossible d'ajouter %1 \u00e0 la page UDDI.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E Le m\u00e9tier %1 est introuvable dans le registre.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E Le service %1 est introuvable dans le registre.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Ajouter le document WSDL \u00e0 la page WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 est ajout\u00e9 \u00e0 la page WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 n'a pas pu \u00eatre charg\u00e9.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=Ajouter le document WSIL aux favoris
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E Impossible d'ajouter %1 aux favoris.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 existe d\u00e9j\u00e0 dans les favoris.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 est ajout\u00e9 aux favoris.
+MSG_QUESTION_OVERWRITE_FAVORITES=Le favori existe d\u00e9j\u00e0. Voulez-vous le remplacer ?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=Ajouter le document WSDL aux favoris
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=Ajouter le m\u00e9tier UDDI aux favoris
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=Ajouter le service UDDI aux favoris
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=Importer un fichier WSIL dans le plan de travail
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=S\u00e9lectionnez un projet du plan de travail pour y sauvegarder le fichier WSIL. Vous pouvez aussi changer le nom du fichier WSIL.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importer un fichier WSIL dans le syst\u00e8me de fichiers
+ALT_WSDL_IMPORT_TO_FS=Importer un document WSDL dans le syst\u00e8me de fichiers
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Navigateur - Conteneur
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Navigateur - Barre d'outils
+FRAME_TITLE_NAVIGATOR_CONTENT=Navigateur - Contenu
+FRAME_TITLE_ACTIONS_CONTAINER=Conteneur d'actions
+FRAME_TITLE_PROPERTIES_CONTAINER=Conteneur de propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_CONTENT=Contenu des propri\u00e9t\u00e9s
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barre d'outils des propri\u00e9t\u00e9s
+FRAME_TITLE_STATUS_CONTAINER=Conteneur de statuts
+FRAME_TITLE_STATUS_CONTENT=Contenu des statuts
+FRAME_TITLE_STATUS_TOOLBAR=Barre d'outils des statuts
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=Formulaire Ouverture d'un fichier WSIL
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formulaire Informations sur le m\u00e9tier UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formulaire Informations sur le service UDDI
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formulaire Informations sur le service WSDL
+FORM_TITLE_WSIL_DETAILS=Formulaire Informations sur le fichier WSIL
+FORM_TITLE_WSIL_LINK_DETAILS=Formulaire Informations sur le lien WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=Vue des m\u00e9tiers UDDI
+VIEW_TITLE_UDDI_SERVICES=Vue des services UDDI
+VIEW_TITLE_WSDL_SERVICES=Vue des services WSDL
+VIEW_TITLE_WSIL_LINKS=Vue des liens WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_it.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_it.properties
new file mode 100644
index 000000000..630e02787
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_it.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL principale
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=Elemento n.
+FORM_LABEL_UDDI_BUSINESS_NAME=Nome business UDDI
+FORM_LABEL_UDDI_SERVICE_NAME=Nome servizio UDDI
+FORM_LABEL_LANGUAGE=Lingua
+FORM_LABEL_ABSTRACT=Astratta
+FORM_LABEL_NAME=Nome
+FORM_LABEL_WSDL_BINDINGS=Binding WSDL
+FORM_LABEL_NAMESPACE_URI=URI spazio dei nomi
+FORM_LABEL_LOCAL_NAME=Nome locale
+FORM_LABEL_INQUIRY_API=API di richiesta
+FORM_LABEL_SERVICE_KEY=Chiave servizio
+FORM_LABEL_BUSINESS_KEY=Chiave business
+FORM_LABEL_DISCOVERY_URL=URL di rilevamento
+FORM_LABEL_WSIL=Dettagli WSIL
+FORM_LABEL_WSIL_LINKS=Collegamenti WSIL
+FORM_LABEL_WSDL_SERVICE=Servizi WSDL
+FORM_LABEL_UDDI_SERVICE=Servizi UDDI
+FORM_LABEL_UDDI_BUSINESS=Business UDDI
+FORM_LABEL_ADD_TO_NAVIGATOR=Aggiungi alla pagina Selezione
+FORM_LABEL_ADD_TO_FAVORITES=Aggiungi alla pagina Preferiti
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=Aggiungi alla pagina UDDI
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=Aggiungi alla pagina WSDL
+FORM_LABEL_REFRESH=Aggiorna
+FORM_LABEL_NA=N/D
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Servizio non disponibile:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=Business non disponibile:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=Scegliere il tipo di oggetti da esaminare:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E Selezionare almeno un elemento.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=Apri WSIL
+FORM_LABEL_OPEN_WSIL_DESC=Immettere l'URL di un documento WSIL o di un documento HTML e fare clic su <strong>Vai</strong> per iniziare l'esame.
+WSIL_URL=URL per il documento:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 non \u00e8 un URL WSIL o un URL HTML valido.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 \u00e8 gi\u00e0 aperto nella pagina di selezione.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 \u00e8 stato aperto correttamente.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=Apri collegamento WSIL
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 \u00e8 gi\u00e0 aperto nella pagina di selezione.
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 \u00e8 stato aperto correttamente.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=Dettagli WSIL
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=Dettagli servizio WSIL
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=Dettagli business UDDI
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=Dettagli collegamento WSIL
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=Visualizza tutti i servizi WSDL
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=Selezionare un insieme di servizi WSDL e fare clic su <strong>Aaggiungi a preferiti</strong> per aggiungere i servizi all'elenco di preferiti.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=Visualizza tutti i servizi UDDI
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=Selezionare un insieme di servizi UDDI e fare clic su <strong>Aaggiungi a preferiti</strong> per aggiungere i servizi all'elenco di preferiti. Fare clic su <strong>Aggiungi alla pagina UDDI</strong> per aggiungere le selezioni alla pagina UDDI. Fare clic su <strong>Aggiorna</strong> per aggiornare le selezioni.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=Visualizza tutti i business UDDI
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=Selezionare un insieme di business UDDI e fare clic su <strong>Aaggiungi a preferiti</strong> per aggiungere i business all'elenco di preferiti. Fare clic su <strong>Aggiungi alla pagina UDDI</strong> per aggiungere i business alla pagina UDDI. Fare clic su <strong>Aggiorna</strong> per aggiornare le selezioni.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=Visualizza tutti i collegamenti WSIL
+FORM_LABEL_LIST_WSIL_LINKS=Selezionare un insieme di collegamenti WSIL e premere <strong>Aggiungi alla pagina Selezione</strong> per aprire i collegamenti nella pagina di selezione.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=Cancella WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=Aggiorna WSIL
+ALT_REFRESH_UDDI_BUSINESS=Aggiorna business UDDI
+ALT_REFRESH_UDDI_SERVICE=Aggiorna servizio UDDI
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E \u00c8 possibile che WSIL %1 non sia stato caricato.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E \u00c8 possibile che il business %1 non sia stato trovato nel registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E \u00c8 possibile che il servizio %1 non sia stato trovato nel registro.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 viene aggiornato.
+MSG_CONFIRM_REMOVE_NODE=%1 non \u00e8 pi\u00f9 risolvibile. Cancellarlo?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=Aggiungi business alla pagina UDDI
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=Aggiungi servizio alla pagina UDDI
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 viene aggiunto alla pagina UDDI.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E Impossibile aggiungere %1 alla pagina UDDI.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E \u00c8 possibile che il business %1 non sia stato trovato nel registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E \u00c8 possibile che il servizio %1 non sia stato trovato nel registro.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Aggiungi WSDL alla pagina WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 viene aggiunto alla pagina WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E \u00c8 possibile che %1 non sia stato caricato.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=Aggiungi WSIL ai preferiti
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E Impossibile aggiungere %1 ai preferiti.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 esiste gi\u00e0 nei preferiti.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 viene aggiunto ai preferiti.
+MSG_QUESTION_OVERWRITE_FAVORITES=I preferiti esistono gi\u00e0. Sovrascriverli?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=Aggiungi WSDL ai preferiti
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=Aggiungi business UDDI ai preferiti
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=Aggiungi servizio UDDI ai preferiti
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=Importa WSIL nel workbench
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=Selezionare un progetto del workbench in cui salvare il file WSDL. \u00c8 possibile anche modificare il nome del file WSIL.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importa WSIL nel filesystem
+ALT_WSDL_IMPORT_TO_FS=Importa WSDL nel filesystem
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Contenitore Selezione
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra degli strumenti Selezione
+FRAME_TITLE_NAVIGATOR_CONTENT=Contenuto Selezione
+FRAME_TITLE_ACTIONS_CONTAINER=Contenitore azioni
+FRAME_TITLE_PROPERTIES_CONTAINER=Contenitore propriet\u00e0
+FRAME_TITLE_PROPERTIES_CONTENT=Contenuto propriet\u00e0
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra degli strumenti propriet\u00e0
+FRAME_TITLE_STATUS_CONTAINER=Contenitore stato
+FRAME_TITLE_STATUS_CONTENT=Contenuto stato
+FRAME_TITLE_STATUS_TOOLBAR=Barra degli strumenti stato
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=Apri modulo WSIL
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Modulo dettagli business UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Modulo dettagli servizio UDDI
+FORM_TITLE_WSDL_SERVICE_DETAILS=Modulo dettagli servizio WSDL
+FORM_TITLE_WSIL_DETAILS=Modulo dettagli WSIL
+FORM_TITLE_WSIL_LINK_DETAILS=Modulo dettagli collegamento WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=Vista Business UDDI
+VIEW_TITLE_UDDI_SERVICES=Vista Servizi UDDI
+VIEW_TITLE_WSDL_SERVICES=Vista Servizi WSDL
+VIEW_TITLE_WSIL_LINKS=Vista Collegamenti WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ja.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ja.properties
new file mode 100644
index 000000000..b72b0f8e5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ja.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL \u30e1\u30a4\u30f3
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u9805\u76ee\u756a\u53f7
+FORM_LABEL_UDDI_BUSINESS_NAME=UDDI \u30d3\u30b8\u30cd\u30b9\u540d
+FORM_LABEL_UDDI_SERVICE_NAME=UDDI \u30b5\u30fc\u30d3\u30b9\u540d
+FORM_LABEL_LANGUAGE=\u8a00\u8a9e
+FORM_LABEL_ABSTRACT=\u8981\u7d04
+FORM_LABEL_NAME=\u540d\u524d
+FORM_LABEL_WSDL_BINDINGS=WSDL \u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0
+FORM_LABEL_NAMESPACE_URI=\u540d\u524d\u7a7a\u9593 URI
+FORM_LABEL_LOCAL_NAME=\u30ed\u30fc\u30ab\u30eb\u540d
+FORM_LABEL_INQUIRY_API=\u7167\u4f1a API
+FORM_LABEL_SERVICE_KEY=\u30b5\u30fc\u30d3\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_BUSINESS_KEY=\u30d3\u30b8\u30cd\u30b9\u30fb\u30ad\u30fc
+FORM_LABEL_DISCOVERY_URL=\u30c7\u30a3\u30b9\u30ab\u30d0\u30ea\u30fc URL
+FORM_LABEL_WSIL=WSIL \u8a73\u7d30
+FORM_LABEL_WSIL_LINKS=WSIL \u30ea\u30f3\u30af
+FORM_LABEL_WSDL_SERVICE=WSDL \u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_UDDI_SERVICE=UDDI \u30b5\u30fc\u30d3\u30b9
+FORM_LABEL_UDDI_BUSINESS=UDDI \u30d3\u30b8\u30cd\u30b9
+FORM_LABEL_ADD_TO_NAVIGATOR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u306b\u8ffd\u52a0
+FORM_LABEL_ADD_TO_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+FORM_LABEL_REFRESH=\u66f4\u65b0
+FORM_LABEL_NA=N/A
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=\u4f7f\u7528\u4e0d\u53ef\u306e\u30b5\u30fc\u30d3\u30b9:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=\u4f7f\u7528\u4e0d\u53ef\u306e\u30d3\u30b8\u30cd\u30b9:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=\u30a4\u30f3\u30b9\u30da\u30af\u30b7\u30e7\u30f3\u3059\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30bf\u30a4\u30d7\u306e\u9078\u629e:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E \u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+# OpenWSILAction
+ALT_OPEN_WSIL=WSIL \u3092\u958b\u304f
+FORM_LABEL_OPEN_WSIL_DESC=WSIL \u6587\u66f8\u307e\u305f\u306f HTML \u6587\u66f8\u306e URL \u3092\u5165\u529b\u3057\u3001\u300c<strong>\u5b9f\u884c</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30a4\u30f3\u30b9\u30da\u30af\u30b7\u30e7\u30f3\u3092\u958b\u304d\u307e\u3059\u3002
+WSIL_URL=\u6587\u66f8\u306e URL:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 \u306f\u6709\u52b9\u306a WSIL URL \u307e\u305f\u306f HTML URL \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 \u306f\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u3059\u3067\u306b\u958b\u3044\u3066\u3044\u307e\u3059\u3002
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 \u304c\u6b63\u5e38\u306b\u958b\u304d\u307e\u3057\u305f\u3002
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=WSIL \u30ea\u30f3\u30af\u3092\u958b\u304f
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 \u306f\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u3059\u3067\u306b\u958b\u3044\u3066\u3044\u307e\u3059\u3002
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 \u304c\u6b63\u5e38\u306b\u958b\u304d\u307e\u3057\u305f\u3002
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL \u8a73\u7d30
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSIL \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI \u30d3\u30b8\u30cd\u30b9\u8a73\u7d30
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL \u30ea\u30f3\u30af\u8a73\u7d30
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=\u3059\u3079\u3066\u306e WSDL \u30b5\u30fc\u30d3\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=WSDL \u30b5\u30fc\u30d3\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3053\u308c\u3089\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u304a\u6c17\u306b\u5165\u308a\u306e\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=\u3059\u3079\u3066\u306e UDDI \u30b5\u30fc\u30d3\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=UDDI \u30b5\u30fc\u30d3\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3053\u308c\u3089\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u304a\u6c17\u306b\u5165\u308a\u306e\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u9078\u629e\u3092 UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>\u66f4\u65b0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u9078\u629e\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=\u3059\u3079\u3066\u306e UDDI \u30d3\u30b8\u30cd\u30b9\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=UDDI \u30d3\u30b8\u30cd\u30b9\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3053\u308c\u3089\u306e\u30d3\u30b8\u30cd\u30b9\u3092\u304a\u6c17\u306b\u5165\u308a\u306e\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3053\u308c\u3089\u306e\u30d3\u30b8\u30cd\u30b9\u3092 UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u300c<strong>\u66f4\u65b0</strong>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u9078\u629e\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=\u3059\u3079\u3066\u306e WSIL \u30ea\u30f3\u30af\u3092\u30ea\u30b9\u30c8
+FORM_LABEL_LIST_WSIL_LINKS=WSIL \u30ea\u30f3\u30af\u306e\u30bb\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u300c<strong>\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u306b\u8ffd\u52a0</strong>\u300d\u3092\u62bc\u3057\u3066\u305d\u308c\u3089\u306e\u30ea\u30f3\u30af\u3092\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u3067\u958b\u304d\u307e\u3059\u3002
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=WSIL \u306e\u30af\u30ea\u30a2
+
+# RefreshAction
+ALT_REFRESH_WSIL=WSIL \u306e\u66f4\u65b0
+ALT_REFRESH_UDDI_BUSINESS=UDDI \u30d3\u30b8\u30cd\u30b9\u306e\u66f4\u65b0
+ALT_REFRESH_UDDI_SERVICE=UDDI \u30b5\u30fc\u30d3\u30b9\u306e\u66f4\u65b0
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E WSIL %1 \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E \u30d3\u30b8\u30cd\u30b9 %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E \u30b5\u30fc\u30d3\u30b9 %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 \u304c\u6700\u65b0\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+MSG_CONFIRM_REMOVE_NODE=%1 \u306f\u89e3\u6c7a\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002 \u30af\u30ea\u30a2\u3057\u307e\u3059\u304b?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8\u306b\u30d3\u30b8\u30cd\u30b9\u3092\u8ffd\u52a0
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=UDDI \u30da\u30fc\u30b8\u306b\u30b5\u30fc\u30d3\u30b9\u3092\u8ffd\u52a0
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 \u304c UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E %1 \u3092 UDDI \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E \u30d3\u30b8\u30cd\u30b9 %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E \u30b5\u30fc\u30d3\u30b9 %1 \u304c\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=WSDL \u3092 WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 \u304c WSDL \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=WSIL \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E %1 \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 \u306f\u304a\u6c17\u306b\u5165\u308a\u306b\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 \u304c\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u304a\u6c17\u306b\u5165\u308a\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 \u4e0a\u66f8\u304d\u3057\u307e\u3059\u304b?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=WSDL \u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=UDDI \u30d3\u30b8\u30cd\u30b9\u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=UDDI \u30b5\u30fc\u30d3\u30b9\u3092\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=WSIL \u3092\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u306b\u30a4\u30f3\u30dd\u30fc\u30c8
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=WSIL \u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u7ba1\u3059\u308b\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e\u3057\u307e\u3059\u3002 WSIL \u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u30d5\u30a1\u30a4\u30eb\u30fb\u30b7\u30b9\u30c6\u30e0\u3078\u306e WSIL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+ALT_WSDL_IMPORT_TO_FS=\u30d5\u30a1\u30a4\u30eb\u30fb\u30b7\u30b9\u30c6\u30e0\u3078\u306e WSDL \u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_NAVIGATOR_CONTENT=\u30ca\u30d3\u30b2\u30fc\u30bf\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_ACTIONS_CONTAINER=\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTAINER=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_PROPERTIES_CONTENT=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30c4\u30fc\u30eb\u30d0\u30fc
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30ca\u30fc
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6cc1\u30b3\u30f3\u30c6\u30f3\u30c4
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6cc1\u30c4\u30fc\u30eb\u30d0\u30fc
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=WSIL \u66f8\u5f0f\u3092\u958b\u304f
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u30d3\u30b8\u30cd\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u30b5\u30fc\u30d3\u30b9\u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_WSIL_DETAILS=WSIL \u8a73\u7d30\u66f8\u5f0f
+FORM_TITLE_WSIL_LINK_DETAILS=WSIL \u30ea\u30f3\u30af\u8a73\u7d30\u66f8\u5f0f
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=UDDI \u30d3\u30b8\u30cd\u30b9\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_UDDI_SERVICES=UDDI \u30b5\u30fc\u30d3\u30b9\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_WSDL_SERVICES=WSDL \u30b5\u30fc\u30d3\u30b9\u30fb\u30d3\u30e5\u30fc
+VIEW_TITLE_WSIL_LINKS=WSIL \u30ea\u30f3\u30af\u30fb\u30d3\u30e5\u30fc
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ko.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ko.properties
new file mode 100644
index 000000000..466aa4ac8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_ko.properties
@@ -0,0 +1,162 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL \uae30\ubcf8
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\ud56d\ubaa9 #
+FORM_LABEL_UDDI_BUSINESS_NAME=UDDI \ube44\uc988\ub2c8\uc2a4 \uc774\ub984
+FORM_LABEL_UDDI_SERVICE_NAME=UDDI \uc11c\ube44\uc2a4 \uc774\ub984
+FORM_LABEL_LANGUAGE=\uc5b8\uc5b4
+FORM_LABEL_ABSTRACT=\uac1c\uc694
+FORM_LABEL_NAME=\uc774\ub984
+FORM_LABEL_WSDL_BINDINGS=WSDL \ubc14\uc778\ub529
+FORM_LABEL_NAMESPACE_URI=\uc774\ub984 \uacf5\uac04 URI
+FORM_LABEL_LOCAL_NAME=\ub85c\uceec \uc774\ub984
+FORM_LABEL_INQUIRY_API=API \uc870\ud68c
+FORM_LABEL_SERVICE_KEY=\uc11c\ube44\uc2a4 \ud0a4
+FORM_LABEL_BUSINESS_KEY=\ube44\uc988\ub2c8\uc2a4 \ud0a4
+FORM_LABEL_DISCOVERY_URL=URL \ubc1c\uacac
+FORM_LABEL_WSIL=WSIL \uc138\ubd80\uc0ac\ud56d
+FORM_LABEL_WSIL_LINKS=WSIL \ub9c1\ud06c
+FORM_LABEL_WSDL_SERVICE=WSDL \uc11c\ube44\uc2a4
+FORM_LABEL_UDDI_SERVICE=UDDI \uc11c\ube44\uc2a4
+FORM_LABEL_UDDI_BUSINESS=UDDI \ube44\uc988\ub2c8\uc2a4
+FORM_LABEL_ADD_TO_NAVIGATOR=\ub124\ube44\uac8c\uc774\ud130\uc5d0 \ucd94\uac00
+FORM_LABEL_ADD_TO_FAVORITES=\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+FORM_LABEL_REFRESH=\uc0c8\ub85c \uace0\uce58\uae30
+FORM_LABEL_NA=N/A
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=\uc0ac\uc6a9 \ubd88\uac00\ub2a5\ud55c \uc11c\ube44\uc2a4:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=\uc0ac\uc6a9 \ubd88\uac00\ub2a5\ud55c \uc11c\ube44\uc2a4:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=\uac80\uc0ac\ud560 \uc624\ube0c\uc81d\ud2b8 \uc720\ud615 \uc120\ud0dd:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud56d\ubaa9\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=WSIL \uc5f4\uae30
+FORM_LABEL_OPEN_WSIL_DESC=WSIL \ubb38\uc11c \ub610\ub294 HTML \ubb38\uc11c\uc758 URL\uc744 \uc785\ub825\ud558\uace0 <strong>\uc774\ub3d9</strong>\uc744 \ud074\ub9ad\ud558\uc5ec \uac80\uc0ac\ud558\uc2ed\uc2dc\uc624.
+WSIL_URL=\ubb38\uc11c\uc5d0 \ub300\ud55c URL:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1\uc774(\uac00) \uc62c\ubc14\ub978 WSIL URL \ub610\ub294 HTML URL\uc774 \uc544\ub2d9\ub2c8\ub2e4.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1\uc774(\uac00) \uc774\ubbf8 \ub124\ube44\uac8c\uc774\ud130\uc5d0 \uc5f4\ub824\uc788\uc2b5\ub2c8\ub2e4.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1\uc774(\uac00) \uc5f4\ub838\uc2b5\ub2c8\ub2e4.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=WSIL \ub9c1\ud06c \uc5f4\uae30
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1\uc774(\uac00) \uc774\ubbf8 \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5f4\ub838\uc2b5\ub2c8\ub2e4.
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1\uc774(\uac00) \uc5f4\ub838\uc2b5\ub2c8\ub2e4.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL \uc138\ubd80\uc0ac\ud56d
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSIL \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL \ub9c1\ud06c \uc138\ubd80\uc0ac\ud56d
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=\ubaa8\ub4e0 WSDL \uc11c\ube44\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=WSDL \uc11c\ube44\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc990\uaca8\ucc3e\uae30 \ubaa9\ub85d\uc5d0 \ucd94\uac00\ud558\uc2ed\uc2dc\uc624.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=\ubaa8\ub4e0 UDDI \uc11c\ube44\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=UDDI \uc11c\ube44\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc990\uaca8\ucc3e\uae30 \ubaa9\ub85d\uc5d0 \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc120\ud0dd\uc0ac\ud56d\uc744 UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc0c8\ub85c \uace0\uce58\ub824\uba74 <strong>\uc0c8\ub85c \uace0\uce58\uae30</strong>\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=\ubaa8\ub4e0 UDDI \ube44\uc988\ub2c8\uc2a4 \ub098\uc5f4
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>\uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \uc990\uaca8\ucc3e\uae30 \ubaa9\ub85d\uc5d0 \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. <strong>UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ud558\uc2ed\uc2dc\uc624. \uc120\ud0dd\uc0ac\ud56d\uc744 \uc0c8\ub85c \uace0\uce58\ub824\uba74 <strong>\uc0c8\ub85c \uace0\uce58\uae30</strong>\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=\ubaa8\ub4e0 WSIL \ub9c1\ud06c \ub098\uc5f4
+FORM_LABEL_LIST_WSIL_LINKS=WSIL \ub9c1\ud06c \uc138\ud2b8\ub97c \uc120\ud0dd\ud558\uace0 <strong>\ub124\ube44\uac8c\uc774\ud130\uc5d0 \ucd94\uac00</strong>\ub97c \ud074\ub9ad\ud558\uc5ec \ub124\ube44\uac8c\uc774\ud130\uc5d0\uc11c \uc5ec\uc2ed\uc2dc\uc624.
+# ClearWSILAction
+ALT_CLEAR_WSIL=WSIL \uc9c0\uc6b0\uae30
+
+# RefreshAction
+ALT_REFRESH_WSIL=WSIL \uc0c8\ub85c \uace0\uce58\uae30
+ALT_REFRESH_UDDI_BUSINESS=UDDI \ube44\uc988\ub2c8\uc2a4 \uc0c8\ub85c \uace0\uce58\uae30
+ALT_REFRESH_UDDI_SERVICE=UDDI \uc11c\ube44\uc2a4 \uc0c8\ub85c \uace0\uce58\uae30
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E WSIL %1\uc744(\ub97c) \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E \ube44\uc988\ub2c8\uc2a4 %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E \uc11c\ube44\uc2a4 %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1\uc744(\ub97c) \uc0c8\ub85c \uace0\ucce4\uc2b5\ub2c8\ub2e4.
+MSG_CONFIRM_REMOVE_NODE=%1\uc744(\ub97c) \ub354 \uc774\uc0c1 \ud574\uc11d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=\ube44\uc988\ub2c8\uc2a4\ub97c UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=\uc11c\ube44\uc2a4\ub97c UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1\uc774(\uac00) UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E %1\uc774(\uac00) UDDI \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E \ube44\uc988\ub2c8\uc2a4 %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E \uc11c\ube44\uc2a4 %1\uc744(\ub97c) \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=WSDL\uc744 WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1\uc774(\uac00) WSDL \ud398\uc774\uc9c0\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1\uc744(\ub97c) \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=WSIL\uc744 \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E %1\uc744(\ub97c) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1\uc774(\uac00) \uc774\ubbf8 \uc990\uaca8\ucc3e\uae30\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1\uc774(\uac00) \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+MSG_QUESTION_OVERWRITE_FAVORITES=\uc990\uaca8\ucc3e\uae30\uac00 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uacb9\uccd0\uc4f0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=WSDL\uc744 \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=UDDI \ube44\uc988\ub2c8\uc2a4\ub97c \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=UDDI \uc11c\ube44\uc2a4\ub97c \uc990\uaca8\ucc3e\uae30\uc5d0 \ucd94\uac00
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=WSIL\uc744 Workbench\uc5d0 \uac00\uc838\uc624\uae30
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=WSIL \ud30c\uc77c\uc744 \uc800\uc7a5\ud558\ub824\uba74 Workbench \ud504\ub85c\uc81d\ud2b8\ub97c \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624. WSIL \ud30c\uc77c\uc758 \uc774\ub984\uc744 \ubcc0\uacbd\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=WSIL\uc744 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc73c\ub85c \uac00\uc838\uc624\uae30
+ALT_WSDL_IMPORT_TO_FS=WSDL\uc744 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc73c\ub85c \uac00\uc838\uc624\uae30
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\ub124\ube44\uac8c\uc774\ud130 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_NAVIGATOR_CONTENT=\ub124\ube44\uac8c\uc774\ud130 \ucee8\ud150\uce20
+FRAME_TITLE_ACTIONS_CONTAINER=\uc870\uce58 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTAINER=\ud2b9\uc131 \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_PROPERTIES_CONTENT=\ud2b9\uc131 \ucee8\ud150\uce20
+FRAME_TITLE_PROPERTIES_TOOLBAR=\ud2b9\uc131 \ub3c4\uad6c \ubaa8\uc74c
+FRAME_TITLE_STATUS_CONTAINER=\uc0c1\ud0dc \ucee8\ud14c\uc774\ub108
+FRAME_TITLE_STATUS_CONTENT=\uc0c1\ud0dc \ucee8\ud150\uce20
+FRAME_TITLE_STATUS_TOOLBAR=\uc0c1\ud0dc \ub3c4\uad6c \ubaa8\uc74c
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=WSIL \uc591\uc2dd \uc5f4\uae30
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \ube44\uc988\ub2c8\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \uc11c\ube44\uc2a4 \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSIL_DETAILS=WSIL \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+FORM_TITLE_WSIL_LINK_DETAILS=WSIL \ub9c1\ud06c \uc138\ubd80\uc0ac\ud56d \uc591\uc2dd
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=UDDI \ube44\uc988\ub2c8\uc2a4 \ubcf4\uae30
+VIEW_TITLE_UDDI_SERVICES=UDDI \uc11c\ube44\uc2a4 \ubcf4\uae30
+VIEW_TITLE_WSDL_SERVICES=WSDL \uc11c\ube44\uc2a4 \ubcf4\uae30
+VIEW_TITLE_WSIL_LINKS=WSIL \ub9c1\ud06c \ubcf4\uae30
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_pt_BR.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_pt_BR.properties
new file mode 100644
index 000000000..de87c9ad4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_pt_BR.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=Principal do WSIL
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=N\u00ba do Item
+FORM_LABEL_UDDI_BUSINESS_NAME=Nome do Neg\u00f3cio UDDI
+FORM_LABEL_UDDI_SERVICE_NAME=Nome do Servi\u00e7o UDDI
+FORM_LABEL_LANGUAGE=Idioma
+FORM_LABEL_ABSTRACT=Abstrato
+FORM_LABEL_NAME= Nome
+FORM_LABEL_WSDL_BINDINGS=Liga\u00e7\u00f5es do WSDL
+FORM_LABEL_NAMESPACE_URI=URI do Espa\u00e7o de Nomes
+FORM_LABEL_LOCAL_NAME=Nome Local
+FORM_LABEL_INQUIRY_API=API de Consulta
+FORM_LABEL_SERVICE_KEY=Chave de Servi\u00e7o
+FORM_LABEL_BUSINESS_KEY=Chave de Neg\u00f3cios
+FORM_LABEL_DISCOVERY_URL=URL do Discovery
+FORM_LABEL_WSIL=Detalhes do WSIL
+FORM_LABEL_WSIL_LINKS=Links WSIL
+FORM_LABEL_WSDL_SERVICE=Servi\u00e7os WSDL
+FORM_LABEL_UDDI_SERVICE=Servi\u00e7os UDDI
+FORM_LABEL_UDDI_BUSINESS=Neg\u00f3cios UDDI
+FORM_LABEL_ADD_TO_NAVIGATOR=Incluir no Navegador
+FORM_LABEL_ADD_TO_FAVORITES=Incluir em Favoritos
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=Incluir na P\u00e1gina do UDDI
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=Incluir na P\u00e1gina do WSDL
+FORM_LABEL_REFRESH=Atualizar
+FORM_LABEL_NA=N/D
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=Servi\u00e7o Indispon\u00edvel:
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=Neg\u00f3cio Indispon\u00edvel:
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=Escolha o tipo de objetos a inspecionar:
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E Selecione pelo menos um item.
+
+# OpenWSILAction
+ALT_OPEN_WSIL=Abrir WSIL
+FORM_LABEL_OPEN_WSIL_DESC=Digite o URL de um documento WSIL ou documento HTML e clique em <strong>Ir</strong> para abrir a inspe\u00e7\u00e3o.
+WSIL_URL=URL a documentar:
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 n\u00e3o \u00e9 um URL v\u00e1lido do WSIL ou do HTML.
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 j\u00e1 est\u00e1 aberto no navegador.
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 foi aberto com \u00eaxito.
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=Abrir Link WSIL
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 j\u00e1 est\u00e1 aberto no navegador.
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 foi aberto com \u00eaxito.
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=Detalhes do WSIL
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=Detalhes do Servi\u00e7o WSIL
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=Detalhes do Neg\u00f3cio UDDI
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=Detalhes de Links WSIL
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=Listar Todos os Servi\u00e7os WSDL
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=Selecione um conjunto de servi\u00e7os WSDL e clique em <strong>Incluir em Favoritos</strong> para inclu\u00ed-los na lista de favoritos.
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=Listar Todos os Servi\u00e7os UDDI
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=Selecione um conjunto de servi\u00e7os UDDI e clique em <strong>Incluir em Favoritos</strong> para inclu\u00ed-los na lista de favoritos. Clique em <strong>Incluir na P\u00e1gina do UDDI</strong> para incluir as sele\u00e7\u00f5es na P\u00e1gina do UDDI. Clique em <strong>Atualizar</strong> para atualizar as sele\u00e7\u00f5es.
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=Listar Todos os Neg\u00f3cios UDDI
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=Selecione um conjunto de neg\u00f3cios UDDI e clique em <strong>Incluir em Favoritos</strong> para inclu\u00ed-los na lista de favoritos. Clique em <strong>Incluir na P\u00e1gina do UDDI</strong> para inclu\u00ed-los na P\u00e1gina do UDDI. Clique em <strong>Atualizar</strong> para atualizar as sele\u00e7\u00f5es.
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=Listar Todos os Links WSIL
+FORM_LABEL_LIST_WSIL_LINKS=Selecione um conjunto de links WSIL e pressione <strong>Incluir no Navegador</strong> para abri-los no navegador.
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=Limpar WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=Atualizar WSIL
+ALT_REFRESH_UDDI_BUSINESS=Atualizar Neg\u00f3cios UDDI
+ALT_REFRESH_UDDI_SERVICE=Atualizar Servi\u00e7o UDDI
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E WSIL %1 n\u00e3o p\u00f4de ser carregado
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E O neg\u00f3cio %1 n\u00e3o p\u00f4de ser localizado no registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E O servi\u00e7o %1 n\u00e3o p\u00f4de ser localizado no registro.
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I %1 foi atualizado.
+MSG_CONFIRM_REMOVE_NODE=%1 n\u00e3o tem mais solu\u00e7\u00e3o. Deseja limp\u00e1-lo?
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=Incluir Neg\u00f3cio na P\u00e1gina do UDDI
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=Incluir Servi\u00e7o na P\u00e1gina do UDDI
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 foi inclu\u00eddo na P\u00e1gina do UDDI.
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E Imposs\u00edvel incluir %1 na P\u00e1gina do UDDI.
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E O neg\u00f3cio %1 n\u00e3o p\u00f4de ser localizado no registro.
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E O servi\u00e7o %1 n\u00e3o p\u00f4de ser localizado no registro.
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=Incluir WSDL na P\u00e1gina do WSDL
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 foi inclu\u00eddo na P\u00e1gina do WSDL.
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E %1 n\u00e3o p\u00f4de ser carregado
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=Incluir WSIL em Favoritos
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E Imposs\u00edvel incluir %1 em favoritos.
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 j\u00e1 existe em favoritos.
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 foi inclu\u00eddo em favoritos.
+MSG_QUESTION_OVERWRITE_FAVORITES=Esse favorito j\u00e1 existe. Deseja substituir?
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=Incluir WSDL em Favoritos
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=Incluir Neg\u00f3cios UDDI em Favoritos
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=Incluir Servi\u00e7o UDDI em Favoritos
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=Importar WSIL Para o Workbench
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=Selecione um projeto do workbench no qual ir\u00e1 salvar o arquivo WSIL. Voc\u00ea tamb\u00e9m poder\u00e1 alterar o nome do arquivo WSIL.
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=Importar WSIL Para o Sistema de Arquivos
+ALT_WSDL_IMPORT_TO_FS=Importar WSDL para o Sistema de Arquivos
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=Cont\u00eainer do Navegador
+FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de Ferramentas do Navegador
+FRAME_TITLE_NAVIGATOR_CONTENT=Conte\u00fado do Navegador
+FRAME_TITLE_ACTIONS_CONTAINER=Cont\u00eainer de A\u00e7\u00f5es
+FRAME_TITLE_PROPERTIES_CONTAINER=Cont\u00eainer de Propriedades
+FRAME_TITLE_PROPERTIES_CONTENT=Conte\u00fado das Propriedades
+FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de Ferramentas de Propriedades
+FRAME_TITLE_STATUS_CONTAINER=Cont\u00eainer de Status
+FRAME_TITLE_STATUS_CONTENT=Conte\u00fado do Status
+FRAME_TITLE_STATUS_TOOLBAR=Barra de Ferramentas de Status
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=Abrir Formul\u00e1rio do WSIL
+FORM_TITLE_UDDI_BUSINESS_DETAILS=Formul\u00e1rio de Detalhes do Neg\u00f3cio UDDI
+FORM_TITLE_UDDI_SERVICE_DETAILS=Formul\u00e1rio de Detalhes do Servi\u00e7o UDDI
+FORM_TITLE_WSDL_SERVICE_DETAILS=Formul\u00e1rio de Detalhes do Servi\u00e7o WSDL
+FORM_TITLE_WSIL_DETAILS=Formul\u00e1rio de Detalhes do WSIL
+FORM_TITLE_WSIL_LINK_DETAILS=Formul\u00e1rio de Detalhes do Link WSIL
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=Visualiza\u00e7\u00e3o de Neg\u00f3cios UDDI
+VIEW_TITLE_UDDI_SERVICES=Visualiza\u00e7\u00e3o de Servi\u00e7os UDDI
+VIEW_TITLE_WSDL_SERVICES=Visualiza\u00e7\u00e3o de Servi\u00e7os WSDL
+VIEW_TITLE_WSIL_LINKS=Visualiza\u00e7\u00e3o de Links WSIL
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_CN.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_CN.properties
new file mode 100644
index 000000000..05d32bd36
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_CN.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL \u4e3b\u8981
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u7f16\u53f7
+FORM_LABEL_UDDI_BUSINESS_NAME=UDDI \u4e1a\u52a1\u540d\u79f0
+FORM_LABEL_UDDI_SERVICE_NAME=UDDI \u670d\u52a1\u540d\u79f0
+FORM_LABEL_LANGUAGE=\u8bed\u8a00
+FORM_LABEL_ABSTRACT=\u62bd\u8c61
+FORM_LABEL_NAME=\u540d\u79f0
+FORM_LABEL_WSDL_BINDINGS=WSDL \u7ed1\u5b9a
+FORM_LABEL_NAMESPACE_URI=\u540d\u79f0\u7a7a\u95f4 URI
+FORM_LABEL_LOCAL_NAME=\u672c\u5730\u540d\u79f0
+FORM_LABEL_INQUIRY_API=\u67e5\u8be2 API
+FORM_LABEL_SERVICE_KEY=\u670d\u52a1\u5bc6\u94a5
+FORM_LABEL_BUSINESS_KEY=\u4e1a\u52a1\u5bc6\u94a5
+FORM_LABEL_DISCOVERY_URL=\u53d1\u73b0 URL
+FORM_LABEL_WSIL=WSIL \u8be6\u7ec6\u4fe1\u606f
+FORM_LABEL_WSIL_LINKS=WSIL \u94fe\u63a5
+FORM_LABEL_WSDL_SERVICE=WSDL \u670d\u52a1
+FORM_LABEL_UDDI_SERVICE=UDDI \u670d\u52a1
+FORM_LABEL_UDDI_BUSINESS=UDDI \u4e1a\u52a1
+FORM_LABEL_ADD_TO_NAVIGATOR=\u6dfb\u52a0\u5230\u5bfc\u822a\u5668
+FORM_LABEL_ADD_TO_FAVORITES=\u6dfb\u52a0\u5230\u6536\u85cf\u5939
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=\u6dfb\u52a0\u5230 UDDI \u9875\u9762
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=\u6dfb\u52a0\u5230 WSDL \u9875\u9762
+FORM_LABEL_REFRESH=\u5237\u65b0
+FORM_LABEL_NA=\u4e0d\u9002\u7528
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=\u670d\u52a1\u4e0d\u53ef\u7528\uff1a
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=\u4e1a\u52a1\u4e0d\u53ef\u7528\uff1a
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=\u9009\u62e9\u8981\u68c0\u67e5\u7684\u5bf9\u8c61\u7c7b\u578b\uff1a
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E \u81f3\u5c11\u9009\u62e9\u4e00\u9879\u3002
+
+# OpenWSILAction
+ALT_OPEN_WSIL=\u6253\u5f00 WSIL
+FORM_LABEL_OPEN_WSIL_DESC=\u8f93\u5165 WSIL \u6587\u6863\u6216 HTML \u6587\u6863\u7684 URL \u5e76\u5355\u51fb<strong>\u6267\u884c</strong>\u4ee5\u6253\u5f00\u68c0\u67e5\u3002
+WSIL_URL=\u6307\u5411\u6587\u6863\u7684 URL\uff1a
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 \u4e0d\u662f\u6709\u6548\u7684 WSIL URL \u6216 HTML URL\u3002
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E \u5df2\u5728\u5bfc\u822a\u5668\u4e2d\u6253\u5f00 %1\u3002
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I \u5df2\u6210\u529f\u6253\u5f00 %1\u3002
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=\u6253\u5f00 WSIL \u94fe\u63a5
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E \u5df2\u5728\u5bfc\u822a\u5668\u4e2d\u6253\u5f00 %1
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I \u5df2\u6210\u529f\u6253\u5f00 %1\u3002
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL \u8be6\u7ec6\u4fe1\u606f
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSIL \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI \u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL \u94fe\u63a5\u8be6\u7ec6\u4fe1\u606f
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=\u5217\u793a\u6240\u6709 WSDL \u670d\u52a1
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=\u9009\u62e9\u4e00\u7ec4 WSDL \u670d\u52a1\u5e76\u5355\u51fb<strong>\u6dfb\u52a0\u5230\u6536\u85cf\u5939</strong>\u4ee5\u5c06\u8fd9\u4e9b\u670d\u52a1\u6dfb\u52a0\u5230\u6536\u85cf\u5939\u5217\u8868\u3002
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=\u5217\u793a\u6240\u6709 UDDI \u670d\u52a1
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=\u9009\u62e9\u4e00\u7ec4 UDDI \u670d\u52a1\u5e76\u5355\u51fb<strong>\u6dfb\u52a0\u5230\u6536\u85cf\u5939</strong>\u4ee5\u5c06\u8fd9\u4e9b\u670d\u52a1\u6dfb\u52a0\u5230\u6536\u85cf\u5939\u5217\u8868\u3002\u5355\u51fb<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5c06\u6240\u9009\u5185\u5bb9\u6dfb\u52a0\u5230 UDDI \u9875\u9762\u3002\u5355\u51fb<strong>\u5237\u65b0</strong>\u4ee5\u5237\u65b0\u6240\u9009\u5185\u5bb9\u3002
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=\u5217\u793a\u6240\u6709 UDDI \u4e1a\u52a1
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=\u9009\u62e9\u4e00\u7ec4 UDDI \u4e1a\u52a1\u5e76\u5355\u51fb<strong>\u6dfb\u52a0\u5230\u6536\u85cf\u5939</strong>\u4ee5\u5c06\u8fd9\u4e9b\u4e1a\u52a1\u6dfb\u52a0\u5230\u6536\u85cf\u5939\u5217\u8868\u3002\u5355\u51fb<strong>\u6dfb\u52a0\u5230 UDDI \u9875\u9762</strong>\u4ee5\u5c06\u8fd9\u4e9b\u4e1a\u52a1\u6dfb\u52a0\u5230 UDDI \u9875\u9762\u3002\u5355\u51fb<strong>\u5237\u65b0</strong>\u4ee5\u5237\u65b0\u6240\u9009\u5185\u5bb9\u3002
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=\u5217\u793a\u6240\u6709 WSIL \u94fe\u63a5
+FORM_LABEL_LIST_WSIL_LINKS=\u9009\u62e9\u4e00\u7ec4 WSIL \u94fe\u63a5\u5e76\u6309<strong>\u6dfb\u52a0\u81f3\u5bfc\u822a\u5668</strong>\u4ee5\u5728\u5bfc\u822a\u5668\u4e2d\u6253\u5f00\u5b83\u4eec\u3002
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=\u6e05\u9664 WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=\u5237\u65b0 WSIL
+ALT_REFRESH_UDDI_BUSINESS=\u5237\u65b0 UDDI \u4e1a\u52a1
+ALT_REFRESH_UDDI_SERVICE=\u5237\u65b0 UDDI \u670d\u52a1
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E \u672a\u80fd\u88c5\u5165 WSIL %1\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u4e1a\u52a1 %1\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u670d\u52a1 %1\u3002
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I \u5df2\u5237\u65b0 %1\u3002
+MSG_CONFIRM_REMOVE_NODE=%1 \u4e0d\u518d\u53ef\u89e3\u6790\u3002\u60f3\u8981\u6e05\u9664\u5b83\u5417\uff1f
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=\u5c06\u4e1a\u52a1\u6dfb\u52a0\u5230 UDDI \u9875\u9762
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=\u5c06\u670d\u52a1\u6dfb\u52a0\u5230 UDDI \u9875\u9762
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I \u5df2\u5c06 %1 \u6dfb\u52a0\u5230 UDDI \u9875\u9762\u3002
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E \u65e0\u6cd5\u5c06 %1 \u6dfb\u52a0\u5230 UDDI \u9875\u9762\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u4e1a\u52a1 %1\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E \u5728\u6ce8\u518c\u4e2d\u5fc3\u4e2d\u627e\u4e0d\u5230\u670d\u52a1 %1\u3002
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=\u5c06 WSDL \u6dfb\u52a0\u5230 WSDL \u9875\u9762
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I \u5df2\u5c06 %1 \u6dfb\u52a0\u5230 WSDL \u9875\u9762\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E \u672a\u80fd\u88c5\u5165 %1\u3002
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=\u5c06 WSIL \u6dfb\u52a0\u5230\u6536\u85cf\u5939
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E \u65e0\u6cd5\u5c06 %1 \u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E \u6536\u85cf\u5939\u4e2d\u5df2\u5b58\u5728 %1\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I \u5df2\u5c06 %1 \u6dfb\u52a0\u5230\u6536\u85cf\u5939\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6536\u85cf\u9879\u5df2\u5b58\u5728\u3002\u60f3\u8981\u8986\u76d6\u5417\uff1f
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=\u5c06 WSDL \u6dfb\u52a0\u5230\u6536\u85cf\u5939
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=\u5c06 UDDI \u4e1a\u52a1\u6dfb\u52a0\u5230\u6536\u85cf\u5939
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=\u5c06 UDDI \u670d\u52a1\u6dfb\u52a0\u5230\u6536\u85cf\u5939
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=\u5c06 WSIL \u5bfc\u5165\u81f3\u5de5\u4f5c\u53f0
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=\u9009\u62e9\u8981\u5c06 WSIL \u6587\u4ef6\u4fdd\u5b58\u81f3\u5176\u4e2d\u7684\u5de5\u4f5c\u53f0\u9879\u76ee\u3002\u8fd8\u53ef\u4ee5\u66f4\u6539 WSIL \u6587\u4ef6\u7684\u540d\u79f0\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u5c06 WSIL \u5bfc\u5165\u81f3\u6587\u4ef6\u7cfb\u7edf
+ALT_WSDL_IMPORT_TO_FS=\u5c06 WSDL \u5bfc\u5165\u81f3\u6587\u4ef6\u7cfb\u7edf
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5bfc\u822a\u5668\u5bb9\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5bfc\u822a\u5668\u5de5\u5177\u680f
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5bfc\u822a\u5668\u5185\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u64cd\u4f5c\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5c5e\u6027\u5bb9\u5668
+FRAME_TITLE_PROPERTIES_CONTENT=\u5c5e\u6027\u5185\u5bb9
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5c5e\u6027\u5de5\u5177\u680f
+FRAME_TITLE_STATUS_CONTAINER=\u72b6\u6001\u5bb9\u5668
+FRAME_TITLE_STATUS_CONTENT=\u72b6\u6001\u5185\u5bb9
+FRAME_TITLE_STATUS_TOOLBAR=\u72b6\u6001\u5de5\u5177\u680f
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=\u6253\u5f00 WSIL \u8868\u5355
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u4e1a\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u670d\u52a1\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSIL_DETAILS=WSIL \u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+FORM_TITLE_WSIL_LINK_DETAILS=WSIL \u94fe\u63a5\u8be6\u7ec6\u4fe1\u606f\u8868\u5355
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=UDDI \u4e1a\u52a1\u89c6\u56fe
+VIEW_TITLE_UDDI_SERVICES=UDDI \u670d\u52a1\u89c6\u56fe
+VIEW_TITLE_WSDL_SERVICES=WSDL \u670d\u52a1\u89c6\u56fe
+VIEW_TITLE_WSIL_LINKS=WSIL \u94fe\u63a5\u89c6\u56fe
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_TW.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_TW.properties
new file mode 100644
index 000000000..405c127a6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/classes/wsil_zh_TW.properties
@@ -0,0 +1,163 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
+
+title=WSIL
+
+# Navigator
+WSIL_MAIN_NODE=WSIL \u4e3b\u8981
+
+# Forms
+FORM_LABEL_URL=URL
+FORM_LABEL_ITEM_NUMBER=\u9805\u76ee #
+FORM_LABEL_UDDI_BUSINESS_NAME=UDDI \u5546\u696d\u540d\u7a31
+FORM_LABEL_UDDI_SERVICE_NAME=UDDI \u670d\u52d9\u540d\u7a31
+FORM_LABEL_LANGUAGE=\u8a9e\u8a00
+FORM_LABEL_ABSTRACT=\u62bd\u8c61
+FORM_LABEL_NAME=\u540d\u7a31
+FORM_LABEL_WSDL_BINDINGS=WSDL \u9023\u7d50
+FORM_LABEL_NAMESPACE_URI=\u540d\u7a31\u7a7a\u9593 URI
+FORM_LABEL_LOCAL_NAME=\u672c\u7aef\u540d\u7a31
+FORM_LABEL_INQUIRY_API=\u67e5\u8a62 API
+FORM_LABEL_SERVICE_KEY=\u670d\u52d9\u91d1\u9470
+FORM_LABEL_BUSINESS_KEY=\u5546\u696d\u91d1\u9470
+FORM_LABEL_DISCOVERY_URL=\u63a2\u7d22 URL
+FORM_LABEL_WSIL=WSIL \u8a73\u7d30\u8cc7\u6599
+FORM_LABEL_WSIL_LINKS=WSIL \u93c8\u7d50
+FORM_LABEL_WSDL_SERVICE=WSDL \u670d\u52d9
+FORM_LABEL_UDDI_SERVICE=UDDI \u670d\u52d9
+FORM_LABEL_UDDI_BUSINESS=UDDI \u5546\u696d
+FORM_LABEL_ADD_TO_NAVIGATOR=\u52a0\u5230\u5c0e\u89bd\u5668
+FORM_LABEL_ADD_TO_FAVORITES=\u52a0\u5230\u6211\u7684\u6700\u611b
+FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE=\u52a0\u5230 UDDI \u9801\u9762
+FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE=\u52a0\u5230 WSDL \u9801\u9762
+FORM_LABEL_REFRESH=\u91cd\u65b0\u6574\u7406
+FORM_LABEL_NA=N/A
+FORM_LABEL_UNAVAILABLE_UDDI_SERVICE=\u670d\u52d9\u7121\u6cd5\u4f7f\u7528\uff1a
+FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS=\u5546\u696d\u7121\u6cd5\u4f7f\u7528\uff1a
+FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE=\u9078\u64c7\u8981\u8996\u5bdf\u7684\u7269\u4ef6\u985e\u578b\uff1a
+MSG_ERROR_NOTHING_SELECTED=IWAB0328E \u8acb\u9078\u64c7\u81f3\u5c11\u4e00\u500b\u9805\u76ee\u3002
+
+# OpenWSILAction
+ALT_OPEN_WSIL=\u958b\u555f WSIL
+FORM_LABEL_OPEN_WSIL_DESC=\u8acb\u8f38\u5165 WSIL \u6587\u4ef6\u6216 HTML \u6587\u4ef6\u7684 URL\uff0c\u518d\u6309\u4e00\u4e0b<strong>\u57f7\u884c</strong>\u4f86\u958b\u555f\u8996\u5bdf\u3002
+WSIL_URL=\u6587\u4ef6 URL\uff1a
+MSG_ERROR_INVALID_WSIL_URL=IWAB0394E %1 \u4e0d\u662f\u6709\u6548\u7684 WSIL URL \u6216 HTML URL\u3002
+MSG_ERROR_WSIL_ALREADY_OPENED=IWAB0329E %1 \u5df2\u958b\u5728\u5c0e\u89bd\u5668\u4e2d\u3002
+MSG_INFO_OPEN_WSIL_SUCCESSFUL=IWAB0330I %1 \u5df2\u9806\u5229\u958b\u555f\u3002
+
+# OpenWSILLinkAction
+ALT_OPEN_WSIL_LINK=\u958b\u555f WSIL \u93c8\u7d50
+MSG_ERROR_WSIL_LINK_ALREADY_OPENED=IWAB0331E %1 \u5df2\u958b\u5728\u5c0e\u89bd\u5668\u4e2d
+MSG_INFO_OPEN_WSIL_LINK_SUCCESSFUL=IWAB0332I %1 \u5df2\u9806\u5229\u958b\u555f\u3002
+
+# WsilDetailsAction
+ALT_WSIL_DETAILS=WSIL \u8a73\u7d30\u8cc7\u6599
+
+# WsilServiceDetailsAction
+ALT_WSIL_SERVICE_DETAILS=WSIL \u670d\u52d9\u8a73\u7d30\u8cc7\u6599
+
+# UddiLinkDetailsAction
+ALT_UDDI_LINK_DETAILS=UDDI \u5546\u696d\u8a73\u7d30\u8cc7\u6599
+
+# WsilLinkDetailsAction
+ALT_WSIL_LINK_DETAILS=WSIL \u93c8\u7d50\u8a73\u7d30\u8cc7\u6599
+
+# ListWSDLServicesAction
+ALT_LIST_WSDL_SERVICES=\u5217\u51fa\u6240\u6709 WSDL \u670d\u52d9
+FORM_LABEL_LIST_WSDL_SERVICES_DESC=\u8acb\u9078\u53d6\u4e00\u7d44 WSDL \u670d\u52d9\uff0c\u6309\u4e00\u4e0b<strong>\u52a0\u5230\u6211\u7684\u6700\u611b</strong>\uff0c\u5c07\u9019\u4e9b\u52a0\u5230\u6211\u7684\u6700\u611b\u6e05\u55ae\u4e2d\u3002
+
+# ListUDDIServicesAction
+ALT_LIST_UDDI_SERVICES=\u5217\u51fa\u6240\u6709 UDDI \u670d\u52d9
+FORM_LABEL_LIST_UDDI_SERVICES_DESC=\u8acb\u9078\u53d6\u4e00\u7d44 UDDI \u670d\u52d9\uff0c\u6309\u4e00\u4e0b<strong>\u52a0\u5230\u6211\u7684\u6700\u611b</strong>\uff0c\u5c07\u9019\u4e9b\u52a0\u5230\u6211\u7684\u6700\u611b\u6e05\u55ae\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u9078\u9805\u52a0\u5230 UDDI \u9801\u9762\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u91cd\u65b0\u6574\u7406</strong>\u4f86\u91cd\u65b0\u6574\u7406\u9078\u9805\u3002
+
+# ListUDDIBusinessesAction
+ALT_LIST_UDDI_LINKS=\u5217\u51fa\u6240\u6709 UDDI \u5546\u696d
+FORM_LABEL_LIST_UDDI_BUSINESSES_DESC=\u8acb\u9078\u53d6\u4e00\u7d44 UDDI \u5546\u696d\uff0c\u6309\u4e00\u4e0b<strong>\u52a0\u5230\u6211\u7684\u6700\u611b</strong>\uff0c\u5c07\u9019\u4e9b\u52a0\u5230\u6211\u7684\u6700\u611b\u6e05\u55ae\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u52a0\u5230 UDDI \u9801\u9762</strong>\uff0c\u5c07\u9019\u4e9b\u52a0\u5230 UDDI \u9801\u9762\u4e2d\u3002 \u8acb\u6309\u4e00\u4e0b<strong>\u91cd\u65b0\u6574\u7406</strong>\u4f86\u91cd\u65b0\u6574\u7406\u9078\u9805\u3002
+
+# ListWSILLinksAction
+ALT_LIST_WSIL_LINKS=\u5217\u51fa\u6240\u6709 WSIL \u93c8\u7d50
+FORM_LABEL_LIST_WSIL_LINKS=\u8acb\u9078\u53d6\u4e00\u7d44 WSIL \u93c8\u7d50\uff0c\u518d\u6309<strong>\u52a0\u5230\u5c0e\u89bd\u5668</strong>\uff0c\u5c07\u5b83\u5011\u958b\u5728\u5c0e\u89bd\u5668\u4e2d\u3002
+
+# ClearWSILAction
+ALT_CLEAR_WSIL=\u6e05\u9664 WSIL
+
+# RefreshAction
+ALT_REFRESH_WSIL=\u91cd\u65b0\u6574\u7406 WSIL
+ALT_REFRESH_UDDI_BUSINESS=\u91cd\u65b0\u6574\u7406 UDDI \u5546\u696d
+ALT_REFRESH_UDDI_SERVICE=\u91cd\u65b0\u6574\u7406 UDDI \u670d\u52d9
+MSG_ERROR_WSIL_NOT_FOUND=IWAB0333E \u7121\u6cd5\u8f09\u5165 WSIL %1\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0334E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1 \u5546\u696d\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0335E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1 \u670d\u52d9\u3002
+MSG_INFO_REFRESH_SUCCESSFUL=IWAB0336I \u5df2\u91cd\u65b0\u6574\u7406 %1\u3002
+MSG_CONFIRM_REMOVE_NODE=%1 \u5df2\u7121\u6cd5\u89e3\u6790\u3002\u60a8\u8981\u6e05\u9664\u5b83\u55ce\uff1f
+
+# AddToUDDIPerspectiveAction
+ALT_ADD_BUSINESS_TO_UDDI_PERSPECTIVE=\u5c07\u5546\u696d\u52a0\u5230 UDDI \u9801\u9762
+ALT_ADD_SERVICE_TO_UDDI_PERSPECTIVE=\u5c07\u670d\u52d9\u52a0\u5230 UDDI \u9801\u9762
+MSG_INFO_ADD_TO_UDDI_PERSPECTIVE_SUCCESSFUL=IWAB0337I %1 \u5df2\u52a0\u5230 UDDI \u9801\u9762\u4e2d\u3002
+MSG_ERROR_ADD_TO_UDDI_PERSPECTIVE=IWAB0338E \u7121\u6cd5\u5c07 %1 \u52a0\u5230 UDDI \u9801\u9762\u4e2d\u3002
+MSG_ERROR_BUSINESS_NOT_FOUND=IWAB0339E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1 \u5546\u696d\u3002
+MSG_ERROR_SERVICE_NOT_FOUND=IWAB0340E \u5728\u767b\u9304\u4e2d\u627e\u4e0d\u5230 %1 \u670d\u52d9\u3002
+
+# WsilAddToWSDLPerspectiveAction
+ALT_ADD_WSDL_TO_WSDL_PERSPECTIVE=\u5c07 WSDL \u52a0\u5230 WSDL \u9801\u9762
+MSG_INFO_ADD_WSDL_TO_WSDL_PERSPECTIVE_SUCCESSFUL=IWAB0395I %1 \u5df2\u52a0\u5230 WSDL \u9801\u9762\u4e2d\u3002
+MSG_ERROR_ADD_WSDL_TO_WSDL_PERSPECTIVE=IWAB0396E \u7121\u6cd5\u8f09\u5165 %1\u3002
+
+# AddWSILToFavoritesAction
+ALT_ADD_WSIL_TO_FAVORITES=\u5c07 WSIL \u52a0\u5230\u6211\u7684\u6700\u611b
+MSG_ERROR_ADD_TO_FAVORITES=IWAB0341E \u7121\u6cd5\u5c07 %1 \u52a0\u5230\u6211\u7684\u6700\u611b\u3002
+MSG_ERROR_FAVORITES_ALREADY_EXISTS=IWAB0342E %1 \u5df2\u5728\u6211\u7684\u6700\u611b\u4e2d\u3002
+MSG_INFO_ADD_TO_FAVORITES_SUCCESSFUL=IWAB0343I %1 \u5df2\u52a0\u5230\u6211\u7684\u6700\u611b\u4e2d\u3002
+MSG_QUESTION_OVERWRITE_FAVORITES=\u6211\u7684\u6700\u611b\u5df2\u5b58\u5728\u3002\u60a8\u8981\u6539\u5beb\u55ce\uff1f
+
+# AddWSDLServiceToFavoritesAction
+ALT_ADD_WSDL_SERVICE_TO_FAVORITES=\u5c07 WSDL \u52a0\u5230\u6211\u7684\u6700\u611b
+
+# AddBusinessToFavoritesAction
+ALT_ADD_UDDI_BUSINESS_TO_FAVORITES=\u5c07 UDDI \u5546\u696d\u52a0\u5230\u6211\u7684\u6700\u611b
+
+# AddServiceToFavoritesAction
+ALT_ADD_SERVICE_TO_FAVORITES=\u5c07 UDDI \u670d\u52d9\u52a0\u5230\u6211\u7684\u6700\u611b
+
+# WSILImportWSILToWorkbench
+ATL_IMPORT_WSIL_TO_WORKBENCH=\u5c07 WSIL \u532f\u5165\u5de5\u4f5c\u53f0
+FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC=\u8acb\u9078\u53d6\u7528\u4f86\u5132\u5b58 WSIL \u6a94\u7684\u5de5\u4f5c\u53f0\u5c08\u6848\u3002\u60a8\u4e5f\u53ef\u80fd\u8b8a\u66f4 WSIL \u6a94\u7684\u540d\u7a31\u3002
+
+# ImportToFileSystemAction
+ALT_WSIL_IMPORT_TO_FS=\u5c07 WSIL \u532f\u5165\u6a94\u6848\u7cfb\u7d71\u4e2d
+ALT_WSDL_IMPORT_TO_FS=\u5c07 WSDL \u532f\u5165\u6a94\u6848\u7cfb\u7d71\u4e2d
+
+# Frame titles
+FRAME_TITLE_NAVIGATOR_CONTAINER=\u5c0e\u89bd\u5668\u5132\u5b58\u5668
+FRAME_TITLE_NAVIGATOR_TOOLBAR=\u5c0e\u89bd\u5668\u5de5\u5177\u5217
+FRAME_TITLE_NAVIGATOR_CONTENT=\u5c0e\u89bd\u5668\u5167\u5bb9
+FRAME_TITLE_ACTIONS_CONTAINER=\u52d5\u4f5c\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTAINER=\u5167\u5bb9\u5132\u5b58\u5668
+FRAME_TITLE_PROPERTIES_CONTENT=\u5167\u5bb9\u5167\u6587
+FRAME_TITLE_PROPERTIES_TOOLBAR=\u5167\u5bb9\u5de5\u5177\u5217
+FRAME_TITLE_STATUS_CONTAINER=\u72c0\u614b\u5132\u5b58\u5668
+FRAME_TITLE_STATUS_CONTENT=\u72c0\u614b\u5167\u5bb9
+FRAME_TITLE_STATUS_TOOLBAR=\u72c0\u614b\u5de5\u5177\u5217
+
+# Form titles
+FORM_TITLE_OPEN_WSIL=\u958b\u555f WSIL \u8868\u55ae
+FORM_TITLE_UDDI_BUSINESS_DETAILS=UDDI \u5546\u696d\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_UDDI_SERVICE_DETAILS=UDDI \u670d\u52d9\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSDL_SERVICE_DETAILS=WSDL \u670d\u52d9\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSIL_DETAILS=WSIL \u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+FORM_TITLE_WSIL_LINK_DETAILS=WSIL \u93c8\u7d50\u8a73\u7d30\u8cc7\u6599\u8868\u55ae
+
+# View titles
+VIEW_TITLE_UDDI_BUSINESSES=UDDI \u5546\u696d\u8996\u5716
+VIEW_TITLE_UDDI_SERVICES=UDDI \u670d\u52d9\u8996\u5716
+VIEW_TITLE_WSDL_SERVICES=WSDL \u670d\u52d9\u8996\u5716
+VIEW_TITLE_WSIL_LINKS=WSIL \u93c8\u7d50\u8996\u5716
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/lib/.cvsignore b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/lib/.cvsignore
new file mode 100644
index 000000000..d392f0e82
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/lib/.cvsignore
@@ -0,0 +1 @@
+*.jar
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/web.xml b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/web.xml
new file mode 100644
index 000000000..5802e33b5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/WEB-INF/web.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+ PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+</web-app>
+
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine.jsp
new file mode 100644
index 000000000..a90b044fc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine.jsp
@@ -0,0 +1,91 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2003, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.ActionEngine,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.ActionDataParser,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.data.ScenarioDescriptor,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.data.TransactionDescriptor,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.data.ActionDescriptor,
+ org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils,
+ org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser,
+ java.util.List,
+ java.util.Iterator" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+String mode = request.getParameter(ActionInputs.ACTION_ENGINE_MODE);
+String scenario = null;
+try
+{
+ MultipartFormDataParser parser = new MultipartFormDataParser();
+ parser.parseRequest(request, HTMLUtils.UTF8_ENCODING);
+ scenario = parser.getParameter(ActionInputs.ACTION_ENGINE_SCENARIO);
+}
+catch (Throwable t)
+{
+}
+ActionEngine actionEngine = controller.getActionEngine();
+if (mode != null)
+{
+ actionEngine.setMode(ActionEngine.MODE_DISABLED);
+ try
+ {
+ actionEngine.setMode(Byte.parseByte(mode));
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+}
+if (scenario != null && scenario.length() > 0)
+{
+ ScenarioDescriptor scenarioDescriptor = null;
+ try
+ {
+ ActionDataParser parser = new ActionDataParser();
+ scenarioDescriptor = parser.parseScenario(XMLUtils.stringToElement(scenario));
+ actionEngine.executeScenario(scenarioDescriptor);
+ }
+ catch (Throwable t)
+ {
+ }
+ if (scenarioDescriptor != null)
+ {
+ TransactionDescriptor[] transactionDescriptors = scenarioDescriptor.getTransactionDescriptors();
+ for (int i = 0; i < transactionDescriptors.length; i++)
+ {
+ ActionDescriptor[] actionDescriptors = transactionDescriptors[i].getActionDescriptors();
+ for (int j = 0; j < actionDescriptors.length; j++)
+ {
+ %>
+ <!--
+ <%=actionDescriptors[j].getId()%>
+ <%=actionDescriptors[j].getStatusId()%>
+ <%
+ List status = actionDescriptors[j].getStatus();
+ if (status != null)
+ {
+ for (Iterator it = status.iterator(); it.hasNext();)
+ {
+ %>
+ <%=it.next().toString()%>
+ <%
+ }
+ }
+ %>
+ -->
+ <%
+ }
+ }
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine_container.jsp
new file mode 100644
index 000000000..f199792ef
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actionengine_container.jsp
@@ -0,0 +1,137 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2003, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.ActionEngine,
+ java.net.*" %>
+<%
+String sessionId = request.getParameter(ActionInputs.SESSIONID);
+HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+Controller controller = (Controller)currentSession.getAttribute("controller");
+ActionEngine actionEngine = controller.getActionEngine();
+String modeString = request.getParameter(ActionInputs.ACTION_ENGINE_MODE);
+if (modeString != null && modeString.length() > 0)
+{
+ try
+ {
+ byte mode = Byte.parseByte(modeString);
+ actionEngine.setMode(mode);
+ }
+ catch (Throwable t)
+ {
+ }
+}
+String playFileId = "playFileId";
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("TITLE_ACTION_RECORDER")%></title>
+ <script language="javascript">
+ function setMode(mode)
+ {
+ <%
+ StringBuffer formAction = new StringBuffer(response.encodeURL(controller.getPathWithContext("actionengine_container.jsp?")));
+ formAction.append(ActionInputs.SESSIONID);
+ formAction.append("=");
+ formAction.append(sessionId);
+ formAction.append("&");
+ formAction.append(ActionInputs.ACTION_ENGINE_MODE);
+ formAction.append("=");
+ %>
+ var form = document.forms[0];
+ form.action = '<%=formAction.toString()%>' + mode;
+ form.target = "_self";
+ form.submit();
+ }
+
+ function play()
+ {
+ var playFile = document.getElementById("<%=playFileId%>");
+ if (playFile.value != null && playFile.value.length > 0)
+ {
+ var form = document.forms[0];
+ form.action = '<%=response.encodeURL(controller.getPathWithContext("wsexplorer.jsp"))%>';
+ form.target = "<%=FrameNames.WINDOW_NAME_WSEXPLORER_JSP%>";
+ form.enctype = "multipart/form-data";
+ // for backward compatibility
+ form.encoding = "multipart/form-data";
+ form.submit();
+ setMode('<%=ActionEngine.MODE_PLAY%>');
+ }
+ else
+ alert('<%=controller.getMessage("MSG_ERROR_INVALID_PLAY_FILE")%>');
+ }
+
+ function save()
+ {
+ var form = document.forms[0];
+ form.action = '<%=response.encodeURL(controller.getPathWithContext("actions/SaveActionEngineScenario.jsp"))%>';
+ form.target = "_self";
+ form.submit();
+ }
+ </script>
+</head>
+<body>
+ <form method="post">
+ <%
+ String labelModePlay = controller.getMessage("FORM_LABEL_MODE_PLAY");
+ String labelModeStop = controller.getMessage("FORM_LABEL_MODE_STOP");
+ String labelModeRecord = controller.getMessage("FORM_LABEL_MODE_RECORD");
+ String labelSave = controller.getMessage("FORM_LABEL_SAVE");
+ byte mode = actionEngine.getMode();
+ String imgPlay = (mode == ActionEngine.MODE_PLAY) ? "images/elcl16/actionengine_play.gif" : "images/dlcl16/actionengine_play.gif";
+ String imgStop = (mode == ActionEngine.MODE_STOP) ? "images/elcl16/actionengine_stop.gif" : "images/dlcl16/actionengine_stop.gif";
+ String imgRecord = (mode == ActionEngine.MODE_RECORD) ? "images/elcl16/actionengine_record.gif" : "images/dlcl16/actionengine_record.gif";
+ String imgSave = "images/dlcl16/actionengine_save.gif";
+ %>
+ <table border=0 cellpadding=3 cellspacing=3>
+ <tr>
+ <td valign="middle" align="left" class="labels" nowrap>
+ <a href="javascript:play()">
+ <img class="normal" border=0 alt="<%=labelModePlay%>" title="<%=labelModePlay%>" src="<%=response.encodeURL(controller.getPathWithContext(imgPlay))%>">
+ <%=controller.getMessage("FORM_LABEL_MODE_PLAY")%>
+ </a>
+ </td>
+ <td valign="middle" align="left" class="labels" nowrap>
+ <a href="javascript:setMode('<%=String.valueOf(ActionEngine.MODE_STOP)%>')">
+ <img class="normal" border=0 alt="<%=labelModeStop%>" title="<%=labelModeStop%>" src="<%=response.encodeURL(controller.getPathWithContext(imgStop))%>">
+ <%=controller.getMessage("FORM_LABEL_MODE_STOP")%>
+ </a>
+ </td>
+ <td valign="middle" align="left" class="labels" nowrap>
+ <a href="javascript:setMode('<%=String.valueOf(ActionEngine.MODE_RECORD)%>')">
+ <img class="normal" border=0 alt="<%=labelModeRecord%>" title="<%=labelModeRecord%>" src="<%=response.encodeURL(controller.getPathWithContext(imgRecord))%>">
+ <%=controller.getMessage("FORM_LABEL_MODE_RECORD")%>
+ </a>
+ </td>
+ <td valign="middle" align="left" class="labels" nowrap>
+ <a href="javascript:save()">
+ <img class="normal" border=0 alt="<%=labelSave%>" title="<%=labelSave%>" src="<%=response.encodeURL(controller.getPathWithContext(imgSave))%>">
+ <%=controller.getMessage("FORM_LABEL_SAVE")%>
+ </a>
+ </td>
+ </tr>
+ </table>
+ <table border=0 cellpadding=3 cellspacing=3>
+ <tr>
+ <td valign="center" align="left" class="labels" nowrap><%=controller.getMessage("FORM_LABEL_PLAY_FILE")%></td>
+ <td valign="center" align="left" class="labels">
+ <input type="file" id="<%=playFileId%>" name="<%=ActionInputs.ACTION_ENGINE_SCENARIO%>">
+ </td>
+ </tr>
+ </table>
+ </form>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/CheckWorkbenchFileReadOnlyActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/CheckWorkbenchFileReadOnlyActionJSP.jsp
new file mode 100644
index 000000000..6f8c0061f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/CheckWorkbenchFileReadOnlyActionJSP.jsp
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+<%
+ ImportToWorkbenchAction action = (ImportToWorkbenchAction)session.getAttribute(ActionInputs.IMPORT_ACTION);
+ if (action.isTargetFileResourceReadOnly())
+ {
+%>
+ var proceed = true;
+<%
+ if (!action.isCheckoutFilesEnabled())
+ {
+%>
+ proceed = confirm("<%=HTMLUtils.JSMangle(action.getWebServicePluginFileMessage("MSG_ERROR_FILE_CHECKOUT_DISABLED"))%>");
+<%
+ }
+%>
+ if (proceed)
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ValidateEditAction.getActionLink()))%>";
+<%
+ }
+ else
+ {
+%>
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(WriteWSDLToWorkbenchAction.getActionLink()))%>";
+<%
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearNodeAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearNodeAction.inc
new file mode 100644
index 000000000..ae4f97244
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearNodeAction.inc
@@ -0,0 +1,59 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(currentPerspective.getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+<%
+ String treeContentVar = action.getTreeContentVar();
+ if (treeContentVar != null)
+ {
+%>
+ <%=treeContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContentPage()))%>";
+<%
+ }
+ String propertiesContainerVar = action.getPropertiesContainerVar();
+ if (propertiesContainerVar != null)
+ {
+%>
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+<%
+ }
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+<%
+ }
+%>
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext(currentPerspective.getPerspectiveContentPage()))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearViewElementAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearViewElementAction.inc
new file mode 100644
index 000000000..a212411b2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ClearViewElementAction.inc
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(currentPerspective.getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+<head>
+<body>
+<script language="javascript">
+<%
+ String propertiesContainerVar = action.getPropertiesContainerVar();
+ if (propertiesContainerVar != null)
+ {
+%>
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+<%
+ }
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+<%
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToFileSystemAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToFileSystemAction.inc
new file mode 100644
index 000000000..d8e077780
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToFileSystemAction.inc
@@ -0,0 +1,57 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // run the action
+ boolean actionResult = action.run();
+ boolean written = false;
+
+ if (actionResult)
+ {
+ // write to file system
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition","attachment;filename="+action.getDefaultFileName());
+ action.write(response.getOutputStream());
+ written = true;
+ }
+
+ if (!written)
+ {
+%>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<%
+ if (action.getStatusContentVar() != null)
+ {
+%>
+<script language="javascript">
+ <%=action.getStatusContentVar()%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+</script>
+<%
+ }
+%>
+</body>
+</html>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToWorkbenchAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToWorkbenchAction.inc
new file mode 100644
index 000000000..bce578142
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ImportToWorkbenchAction.inc
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+<%
+ //Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+ if (!inputsValid)
+ {
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+<%
+ }
+ }
+ else
+ {
+ session.setAttribute(ActionInputs.IMPORT_ACTION,action);
+ if (action.fileExists())
+ {
+%>
+ var proceed = true;
+<%
+ if (!action.isOverwriteFilesEnabled())
+ {
+%>
+ proceed = confirm("<%=HTMLUtils.JSMangle(action.getWebServicePluginFileMessage("MSG_ERROR_FILE_OVERWRITE_DISABLED"))%>");
+<%
+ }
+%>
+ if (proceed)
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(CheckWorkbenchFileReadOnlyAction.getActionLink()))%>";
+<%
+ }
+ else
+ {
+%>
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(WriteWSDLToWorkbenchAction.getActionLink()))%>";
+<%
+ }
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/LaunchWebServiceWizardAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/LaunchWebServiceWizardAction.inc
new file mode 100644
index 000000000..9c149a7ca
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/LaunchWebServiceWizardAction.inc
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ //Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.run();
+%>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<%
+ if (!actionResult)
+ {
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+<script language="javascript">
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+</script>
+<%
+ }
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/RetrieveHistoryActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/RetrieveHistoryActionJSP.jsp
new file mode 100644
index 000000000..a7e51a610
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/RetrieveHistoryActionJSP.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ RetrieveHistoryAction action = new RetrieveHistoryAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.run();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; UTF-8">
+ <jsp:include page="/scripts/panes.jsp" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+<%
+ BreadCrumb b = action.getBreadCrumb();
+ if (b != null)
+ {
+ int breadCrumbPerspectiveId = b.getPerspectiveId();
+ if (breadCrumbPerspectiveId != controller.getCurrentPerspective().getPerspectiveId())
+ {
+ // Switch the perspective.
+%>
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(breadCrumbPerspectiveId,true)))%>";
+<%
+ }
+ else
+ {
+ // Jump to the page retrieved from history.
+%>
+ perspectiveWorkArea.location="<%=response.encodeURL(controller.getPathWithContext(b.getURL()))%>";
+<%
+ }
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SaveActionEngineScenario.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SaveActionEngineScenario.jsp
new file mode 100644
index 000000000..700b9d73b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SaveActionEngineScenario.jsp
@@ -0,0 +1,29 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.engine.data.ScenarioDescriptor,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.ActionDataParser,
+ org.eclipse.wst.ws.internal.explorer.platform.util.XMLUtils,
+ java.io.PrintWriter,
+ org.w3c.dom.Element"%>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+response.setContentType("application/octet-stream");
+response.setHeader("Content-Disposition","attachment;filename=scenario.xml");
+ScenarioDescriptor scenarioDescriptor = controller.getActionEngine().getScenario();
+ActionDataParser parser = new ActionDataParser();
+Element scenario = parser.toElement(scenarioDescriptor);
+if (scenario != null)
+{
+ try
+ {
+ String scenarioString = XMLUtils.serialize(scenario, false);
+ if (scenarioString != null)
+ {
+ PrintWriter pw = new PrintWriter(response.getOutputStream());
+ pw.println(scenarioString);
+ pw.close();
+ }
+ }
+ catch (Throwable t)
+ {
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeAction.inc
new file mode 100644
index 000000000..8bf86fc91
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeAction.inc
@@ -0,0 +1,108 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(currentPerspective.getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (!actionResult)
+ {
+ if (action.isStaleBreadCrumb())
+ {
+%>
+<script language="javascript">
+ // Rerun the history action to get the next available item.
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(action.getNextHistoryActionLink()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ String treeContentVar = action.getTreeContentVar();
+ String propertiesContainerVar = action.getPropertiesContainerVar();
+ if (action.requiresTreeViewRefresh())
+ {
+ if (treeContentVar != null)
+ {
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ // Update the treeview.
+ <%=treeContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContentPage()))%>";
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext(currentPerspective.getPerspectiveContentPage()))%>";
+</script>
+<%
+ }
+ if (propertiesContainerVar != null)
+ {
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ Node selectedNode = action.getSelectedNode();
+ NodeManager nodeManager = selectedNode.getNodeManager();
+ Node previousSelectedNode = nodeManager.getPreviousSelectedNode();
+ int selectedNodeId = selectedNode.getNodeId();
+ if (treeContentVar != null)
+ {
+%>
+<script language="javascript">
+ // Update the perspective.
+<%
+ if (previousSelectedNode != null && previousSelectedNode.isVisible())
+ {
+%>
+ <%=treeContentVar%>.alterImage('<%=previousSelectedNode.getAnchorName()%>','<%=response.encodeURL(controller.getPathWithContext(previousSelectedNode.getClosedImagePath()))%>');
+<%
+ }
+ String selectedNodeAnchorName = selectedNode.getAnchorName();
+%>
+ <%=treeContentVar%>.selectNode('<%=selectedNodeAnchorName%>','<%=response.encodeURL(controller.getPathWithContext(selectedNode.getOpenImagePath()))%>');
+ <%=treeContentVar%>.location.hash = '#<%=selectedNodeAnchorName%>';
+<%
+ }
+ if (propertiesContainerVar != null)
+ {
+%>
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+<%
+ }
+%>
+</script>
+<%
+ }
+ }
+%>
+</body>
+<html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeToolAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeToolAction.inc
new file mode 100644
index 000000000..4b4cfad28
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/SelectNodeToolAction.inc
@@ -0,0 +1,182 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(currentPerspective.getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (!actionResult)
+ {
+ if (action.isStaleBreadCrumb())
+ {
+%>
+<script language="javascript">
+ // Rerun the history action to get the next available item.
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(action.getNextHistoryActionLink()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ if (action.requiresStatusUpdate())
+ {
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+<script language="javascript">
+ // Update the status content with any messages arising from this action.
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+</script>
+<%
+ }
+ }
+
+ String treeContentVar = action.getTreeContentVar();
+ String propertiesContainerVar = action.getPropertiesContainerVar();
+ if (action.requiresTreeViewRefresh())
+ {
+%>
+<script language="javascript">
+<%
+ if (treeContentVar != null)
+ {
+%>
+ if (isMicrosoftInternetExplorer())
+ {
+ // Reload the navigator tree view to show the structural change.
+ <%=treeContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContentPage()))%>";
+ }
+ else
+ {
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext(currentPerspective.getPerspectiveContentPage()))%>";
+ }
+<%
+ }
+ if (propertiesContainerVar != null)
+ {
+%>
+ if (isMicrosoftInternetExplorer())
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+<%
+ }
+%>
+</script>
+<%
+ }
+ else if (action.requiresNodeSelection())
+ {
+ Node selectedNode = action.getSelectedNode();
+ NodeManager nodeManager = selectedNode.getNodeManager();
+ Node previousSelectedNode = nodeManager.getPreviousSelectedNode();
+ int selectedNodeId = selectedNode.getNodeId();
+%>
+<script language="javascript">
+<%
+ if (treeContentVar != null)
+ {
+%>
+ // Update the navigator tree to show the selection.
+<%
+ if (previousSelectedNode != null)
+ {
+%>
+ <%=treeContentVar%>.alterImage('<%=previousSelectedNode.getAnchorName()%>','<%=response.encodeURL(controller.getPathWithContext(previousSelectedNode.getClosedImagePath()))%>');
+<%
+ }
+ String selectedNodeAnchorName = selectedNode.getAnchorName();
+%>
+ <%=treeContentVar%>.selectNode('<%=selectedNodeAnchorName%>','<%=response.encodeURL(controller.getPathWithContext(selectedNode.getOpenImagePath()))%>');
+ <%=treeContentVar%>.location.hash = '#<%=selectedNodeAnchorName%>';
+<%
+ }
+ if (propertiesContainerVar != null)
+ {
+%>
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+<%
+ }
+%>
+</script>
+<%
+ }
+ else if (action.requiresViewSelection())
+ {
+ if (propertiesContainerVar != null)
+ {
+%>
+<script language="javascript">
+ // Update the properties container to show the view.
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ String propertiesContentVar = action.getPropertiesContentVar();
+ Tool tool = action.getSelectedViewTool();
+ if (tool == null)
+ tool = action.getSelectedTool();
+ if (tool.getToolType() != ToolTypes.ACTION)
+ {
+ if (propertiesContentVar != null)
+ {
+%>
+<script language="javascript">
+ // Update the properties content with the tool's form.
+ <%=propertiesContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(tool.getFormLink()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ if (!action.isHistoryAction())
+ {
+%>
+<script language="javascript">
+ // Run the tool's action only if it is not from the history.
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(tool.getActionLink()))%>";
+</script>
+<%
+ }
+ else
+ {
+ if (propertiesContentVar != null)
+ {
+%>
+<script language="javascript">
+ <%=propertiesContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContentPage()))%>";
+</script>
+<%
+ }
+ }
+ }
+ }
+ }
+%>
+</body>
+<html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ShowPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ShowPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..ba1ed37da
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ShowPerspectiveActionJSP.jsp
@@ -0,0 +1,70 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+ StringBuffer framesetsFile = new StringBuffer("/");
+ framesetsFile.append(currentPerspective.getFramesetsFile());
+
+ StringBuffer framesetsForm = new StringBuffer("/");
+ framesetsForm.append(currentPerspective.getProcessFramesetsForm());
+
+ int targetPerspectiveId;
+ boolean isHistory;
+ try
+ {
+ targetPerspectiveId = Integer.parseInt(request.getParameter(ActionInputs.PERSPECTIVE));
+ isHistory = ("1".equals(request.getParameter(ActionInputs.ISHISTORY)));
+ }
+ catch (NumberFormatException e)
+ {
+ targetPerspectiveId = ActionInputs.PERSPECTIVE_UDDI;
+ isHistory = false;
+ }
+
+ if (controller.isPerspectiveContentBlank())
+ {
+ controller.enablePerspectiveContentBlank(false);
+ controller.addToHistory(currentPerspective.getPerspectiveId(),ShowPerspectiveAction.getActionLink(targetPerspectiveId,true));
+%>
+<jsp:include page="/scripts/switchperspective.jsp" flush="true"/>
+<%
+ }
+ else
+ {
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <jsp:include page="<%=framesetsFile.toString()%>" flush="true"/>
+</head>
+<body>
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append(currentPerspective.getSwitchPerspectiveFormActionLink(targetPerspectiveId,isHistory));
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request"/>
+<jsp:include page="<%=framesetsForm.toString()%>" flush="true"/>
+<script language="javascript">
+ processFramesetSizes(document.forms[0]);
+</script>
+</body>
+</html>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ToggleNodeAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ToggleNodeAction.inc
new file mode 100644
index 000000000..5db4f3575
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ToggleNodeAction.inc
@@ -0,0 +1,77 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ Perspective currentPerspective = controller.getCurrentPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(currentPerspective.getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (!actionResult)
+ {
+ if (action.isStaleBreadCrumb())
+ {
+%>
+<script language="javascript">
+ // Rerun the history action to get the next available item.
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(action.getNextHistoryActionLink()))%>";
+</script>
+<%
+ }
+ }
+ else
+ {
+ String treeContentVar = action.getTreeContentVar();
+ if (treeContentVar != null)
+ {
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ // Update the perspective.
+ <%=treeContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContentPage()))%>";
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext(currentPerspective.getPerspectiveContentPage()))%>";
+</script>
+<%
+ }
+ if (action.requiresNodeSelection())
+ {
+ String propertiesContainerVar = action.getPropertiesContainerVar();
+ if (propertiesContainerVar != null)
+ {
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ // Update the properties container.
+ <%=propertiesContainerVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getPropertiesContainerPage()))%>";
+ }
+</script>
+<%
+ }
+ }
+ }
+%>
+</body>
+<html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ValidateEditActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ValidateEditActionJSP.jsp
new file mode 100644
index 000000000..c27dd8ea9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/ValidateEditActionJSP.jsp
@@ -0,0 +1,48 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<%
+ ImportToWorkbenchAction action = (ImportToWorkbenchAction)session.getAttribute(ActionInputs.IMPORT_ACTION);
+ boolean result = action.validateEdit();
+%>
+<script language="javascript">
+ if (<%=result%>)
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(WriteWSDLToWorkbenchAction.getActionLink()))%>";
+ else
+ {
+<%
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+<%
+ }
+%>
+ }
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/WriteWSDLToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/WriteWSDLToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..8e7eb5747
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/actions/WriteWSDLToWorkbenchActionJSP.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<%
+ StringBuffer panesFile = new StringBuffer("/");
+ panesFile.append(controller.getCurrentPerspective().getPanesFile());
+%>
+<jsp:include page="<%=panesFile.toString()%>" flush="true"/>
+</head>
+<body>
+<%
+ ImportToWorkbenchAction action = (ImportToWorkbenchAction)session.getAttribute(ActionInputs.IMPORT_ACTION);
+ action.run();
+ String statusContentVar = action.getStatusContentVar();
+ if (statusContentVar != null)
+ {
+%>
+<script language="javascript">
+ <%=statusContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getStatusContentPage()))%>";
+</script>
+<%
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_browser.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_browser.jsp
new file mode 100644
index 000000000..a5c1e8881
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_browser.jsp
@@ -0,0 +1,44 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.net.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>
+ <%=controller.getMessage("TITLE_CALENDAR_BROWSER")%>
+ </title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+<%
+ StringBuffer link = new StringBuffer("calendar_toolbar.jsp?");
+ link.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+%>
+ <frame name="<%=FrameNames.CALENDAR_TOOLBAR%>" title="<%=controller.getMessage("FRAME_TITLE_CALENDAR_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext(link.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+<%
+ link.setLength(0);
+ link.append("calendar_content.jsp?");
+ link.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ link.append('&').append(ActionInputs.CALENDAR_TYPE).append('=').append(request.getParameter(ActionInputs.CALENDAR_TYPE));
+%>
+ <frame name="<%=FrameNames.CALENDAR_CONTENT%>" title="<%=controller.getMessage("FRAME_TITLE_CALENDAR_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext(link.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_content.jsp
new file mode 100644
index 000000000..36c6cd488
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_content.jsp
@@ -0,0 +1,626 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ int calendarType = Integer.parseInt(request.getParameter(ActionInputs.CALENDAR_TYPE));
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title><%=controller.getMessage("FRAME_TITLE_CALENDAR_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/calendar.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript">
+ var days = new Array("<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_SUNDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_MONDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_TUESDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_WEDNESDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_THURSDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_FRIDAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SH_SATURDAY"))%>");
+ var months = new Array("<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_JANUARY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_FEBRUARY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_MARCH"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_APRIL"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_MAY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_JUNE"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_JULY"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_AUGUST"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_SEPTEMBER"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_OCTOBER"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_NOVEMBER"))%>","<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LABEL_DECEMBER"))%>");
+ var engMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
+ var currentDate;
+ var calendarBodySet = false;
+ var calendarBody;
+ var savedYearTextValue = "";
+
+<%
+ // Regular expressions
+ // time - HH:MM:SS[.SSS]
+ // year - Y*
+ // date - YYYY+-MM-DD
+ // dateTime - YYYY+-MM-DDTHH:MM:SS[.SSS]Z
+ // gYearMonth - YYYY+-MM
+ // gDay - ---DD
+ // gMonthDay - --MM-DD
+%>
+ var timeRegExp = /^(\d{2}):(\d{2}):(\d{2})(\.\d{3})?$/;
+ var yearRegExp = /^(\d*)$/;
+ var dateRegExp = /^(\d{4,})-(\d{2})-(\d{2})$/;
+ var dateTimeRegExp = /^(\d{4,})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d{3})?Z$/;
+ var gYearMonthRegExp = /^(\d{4,})-(\d{2})$/;
+ var gDayRegExp = /^-{3}(\d{2})$/;
+ var gMonthDayRegExp = /^-{2}(\d{2})-(\d{2})$/;
+
+ function validateYearString(yearString)
+ {
+ return yearRegExp.test(yearString);
+ }
+
+ function getTimeParameters(timeString)
+ {
+ return timeRegExp.exec(timeString);
+ }
+
+ function getDateParameters(dateString)
+ {
+ return dateRegExp.exec(dateString);
+ }
+
+ function getDateTimeParameters(dateTimeString)
+ {
+ return dateTimeRegExp.exec(dateTimeString);
+ }
+
+ function getGYearMonthParameters(gYearMonthString)
+ {
+ return gYearMonthRegExp.exec(gYearMonthString);
+ }
+
+ function getGDayParameters(gDayString)
+ {
+ return gDayRegExp.exec(gDayString);
+ }
+
+ function getGMonthDayParameters(gMonthDayString)
+ {
+ return gMonthDayRegExp.exec(gMonthDayString);
+ }
+
+<%
+ // HH:MM:SS[.SSS]
+%>
+ function serializeTime(hours,minutes,seconds,milliseconds)
+ {
+ var timeString = "";
+ if (hours < 10)
+ timeString += "0";
+ timeString += hours + ":";
+ if (minutes < 10)
+ timeString += "0";
+ timeString += minutes + ":";
+ if (seconds < 10)
+ timeString += "0";
+ timeString += seconds;
+ if (milliseconds > 0)
+ {
+ timeString += ".";
+ if (milliseconds < 100)
+ {
+ if (milliseconds < 10)
+ timeString += "00";
+ else
+ timeString += "0";
+ }
+ timeString += milliseconds;
+ }
+ return timeString;
+ }
+
+<%
+ // YYYY+-MM
+%>
+ function serializeGYearMonth(fullYear,month)
+ {
+ var gYearMonthString = "";
+ if (fullYear < 1000)
+ {
+ if (fullYear < 100)
+ {
+ if (fullYear < 10)
+ gYearMonthString += "000";
+ else
+ gYearMonthString += "00";
+ }
+ else
+ gYearMonthString += "0";
+ }
+ gYearMonthString += fullYear+"-";
+ if (month < 10)
+ gYearMonthString += "0";
+ gYearMonthString += month;
+ return gYearMonthString;
+ }
+
+<%
+ // YYYY+-MM-DD
+%>
+ function serializeDate(fullYear,month,date)
+ {
+ var dateString = serializeGYearMonth(fullYear,month) + "-";
+ if (date < 10)
+ dateString += "0";
+ dateString += date;
+ return dateString;
+ }
+
+ function serializeGDay(date)
+ {
+ var gDayString = "---";
+ if (date < 10)
+ gDayString += "0";
+ gDayString += date;
+ return gDayString;
+ }
+
+ function serializeGMonthDay(month,date)
+ {
+ var gMonthDayString = "--";
+ if (month < 10)
+ gMonthDayString += "0";
+ gMonthDayString += month+"-";
+ if (date < 10)
+ gMonthDayString += "0";
+ gMonthDayString += date;
+ return gMonthDayString;
+ }
+
+ function setDateUsingGDayParameters(gDayParameters,dateObj)
+ {
+ if (gDayParameters != null)
+ dateObj.setDate(gDayParameters[1]);
+ }
+
+ function setDateUsingGMonthDayParameters(gMonthDayParameters,dateObj)
+ {
+ if (gMonthDayParameters != null)
+ {
+ dateObj.setMonth(gMonthDayParameters[1]-1);
+ dateObj.setDate(gMonthDayParameters[2]);
+ }
+ }
+
+ function setDateUsingGYearMonthParameters(gYearMonthParameters,dateObj)
+ {
+ if (gYearMonthParameters != null)
+ {
+ dateObj.setFullYear(gYearMonthParameters[1]);
+ dateObj.setMonth(gYearMonthParameters[2]-1);
+ }
+ }
+
+ function setDateUsingDateParameters(dateParameters,dateObj)
+ {
+ if (dateParameters != null)
+ {
+ setDateUsingGYearMonthParameters(dateParameters,dateObj);
+ dateObj.setDate(dateParameters[3]);
+ }
+ }
+
+ function setDateUsingDateTimeParameters(dateTimeParameters,dateObj)
+ {
+ if (dateTimeParameters != null)
+ {
+ setDateUsingDateParameters(dateTimeParameters,dateObj);
+ dateObj.setUTCHours(dateTimeParameters[4]);
+ dateObj.setUTCMinutes(dateTimeParameters[5]);
+ dateObj.setUTCSeconds(dateTimeParameters[6]);
+ var milliseconds = dateTimeParameters[7];
+ if (milliseconds.length > 0)
+<%
+ // Eliminate the decimal point
+%>
+ dateObj.setUTCMilliseconds(milliseconds.substr(1));
+ else
+ dateObj.setUTCMilliseconds(0);
+ }
+ }
+
+ function setDateUsingTimeParameters(timeParameters,dateObj)
+ {
+ if (timeParameters != null)
+ {
+ dateObj.setHours(timeParameters[1]);
+ dateObj.setMinutes(timeParameters[2]);
+ dateObj.setSeconds(timeParameters[3]);
+ var milliseconds = timeParameters[4];
+ if (milliseconds.length > 0)
+<%
+ // Eliminate the decimal point
+%>
+ dateObj.setMilliseconds(milliseconds.substr(1));
+ else
+ dateObj.setMilliseconds(0);
+ }
+ }
+
+ function init()
+ {
+ var d = new Date();
+<%
+ switch (calendarType)
+ {
+ case ActionInputs.CALENDAR_TYPE_DATE:
+%>
+ setDateUsingDateParameters(getDateParameters(top.opener.calendarTarget.value),d);
+<%
+ break;
+ case ActionInputs.CALENDAR_TYPE_DATETIME:
+%>
+ setDateUsingDateTimeParameters(getDateTimeParameters(top.opener.calendarTarget.value),d);
+<%
+ break;
+ case ActionInputs.CALENDAR_TYPE_GYEARMONTH:
+%>
+ setDateUsingGYearMonthParameters(getGYearMonthParameters(top.opener.calendarTarget.value),d);
+<%
+ case ActionInputs.CALENDAR_TYPE_GDAY:
+%>
+ setDateUsingGDayParameters(getGDayParameters(top.opener.calendarTarget.value),d);
+<%
+ case ActionInputs.CALENDAR_TYPE_GMONTHDAY:
+%>
+ setDateUsingGMonthDayParameters(getGMonthDayParameters(top.opener.calendarTarget.value),d);
+<%
+ default:
+ break;
+ }
+%>
+ generateCalendar(d);
+ var monthSelector = document.getElementById("monthSelector");
+ for (var i=0;i<months.length;i++)
+ monthSelector.options[i] = new Option(months[i],i);
+ generateCalendar(d);
+ }
+
+ function initCalendarHeader(table)
+ {
+ calendarBody = document.createElement("TBODY");
+ var headerRow = document.createElement("tr");
+ for (var i=0;i<days.length;i++)
+ {
+ var header = document.createElement("th");
+ header.appendChild(document.createTextNode(days[i]));
+ header.className="headercolor";
+ headerRow.appendChild(header);
+ }
+ calendarBody.appendChild(headerRow);
+ table.appendChild(calendarBody);
+ calendarBodySet = true;
+ }
+
+ function generateCalendar(date)
+ {
+ var table = document.getElementById("calendar");
+ var dateDate = date.getDate();
+ var dateMonth = date.getMonth();
+ var dateFullYear = date.getFullYear();
+ var dateIterator = new Date();
+ dateIterator.setTime(Date.parse(engMonths[dateMonth]+" 1, "+dateFullYear));
+ var startingDate = dateIterator.getDate(); // 1,2,3...
+ var startingDay = dateIterator.getDay(); // Sun,Mon,Tues...
+ clearCalendar();
+ for (var rows=0;rows<6;rows++)
+ {
+ var row = document.createElement("tr");
+ for (var columns=0;columns<days.length;columns++)
+ {
+ var column = document.createElement("td");
+ var dateIteratorDate = dateIterator.getDate();
+ var dateIteratorMonth = dateIterator.getMonth();
+ var dateIteratorFullYear = dateIterator.getFullYear();
+ column.width = 24;
+ column.height = 24;
+ column.align = "center";
+ column.valign = "center";
+ column.className = "calendartablecells";
+ if ((dateIteratorDate == startingDate && columns < startingDay) || (dateIteratorMonth != dateMonth))
+ column.innerHTML = "&nbsp;";
+ else if (dateIteratorMonth == dateMonth)
+ {
+ var link = document.createElement("a");
+ switch (<%=calendarType%>)
+ {
+ case <%=ActionInputs.CALENDAR_TYPE_DATE%>:
+ link.href = "javascript:transferDate("+dateIteratorDate+")";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_DATETIME%>:
+ link.href = "javascript:transferDateTime("+dateIteratorDate+")";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GYEARMONTH%>:
+ link.href = "javascript:transferGYearMonth()";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GDAY%>:
+ link.href = "javascript:transferGDay("+dateIteratorDate+")";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GMONTHDAY%>:
+ link.href = "javascript:transferGMonthDay("+dateIteratorDate+")";
+ break;
+ }
+ link.appendChild(document.createTextNode(dateIteratorDate));
+ column.appendChild(link);
+ if (dateIteratorDate == dateDate && dateIteratorFullYear == dateFullYear)
+ column.className = "todaytablecell";
+ dateIteratorDate++;
+ dateIterator.setTime(Date.parse(engMonths[dateIteratorMonth]+" "+dateIteratorDate+", "+dateIterator.getFullYear()));
+ }
+ row.appendChild(column);
+ }
+ calendarBody.appendChild(row);
+ }
+ var monthSelector = document.getElementById("monthSelector");
+ for (var i=0;i<monthSelector.options.length;i++)
+ {
+ if (monthSelector.options[i].value == dateMonth)
+ {
+ monthSelector.selectedIndex = i;
+ break;
+ }
+ }
+ var yearText = document.getElementById("yearText");
+ yearText.value = dateFullYear;
+ savedYearTextValue = yearText.value;
+<%
+ if (calendarType == ActionInputs.CALENDAR_TYPE_DATETIME)
+ {
+%>
+ var timeText = document.getElementById("timeText");
+ timeText.value = serializeTime(date.getHours(),date.getMinutes(),date.getSeconds(),date.getMilliseconds());
+<%
+ }
+%>
+ currentDate = date;
+ }
+
+ function clearCalendar()
+ {
+ var table = document.getElementById("calendar");
+ if (!calendarBodySet)
+ initCalendarHeader(table);
+ for (var i=1;i<table.rows.length;i++)
+ {
+ table.deleteRow(i);
+ i--;
+ }
+ }
+
+ function updateCalendar(newMonth,newFullYear)
+ {
+ var d = new Date();
+ if (newMonth > months.length)
+ {
+ newFullYear++;
+ newMonth = 0;
+ }
+ else if (newMonth < 0)
+ {
+ newFullYear--;
+ newMonth = months.length-1;
+ }
+ d.setMonth(newMonth);
+ d.setFullYear(newFullYear);
+<%
+ if (calendarType == ActionInputs.CALENDAR_TYPE_DATETIME)
+ {
+%>
+ setDateUsingTimeParameters(getTimeParameters(document.getElementById("timeText").value),d);
+<%
+ }
+%>
+ generateCalendar(d);
+ }
+
+ function jumpToPreviousYear()
+ {
+ updateCalendar(currentDate.getMonth(),currentDate.getFullYear()-1)
+ }
+
+ function jumpToPreviousMonth()
+ {
+ updateCalendar(currentDate.getMonth()-1,currentDate.getFullYear());
+ }
+
+ function jumpToNextMonth()
+ {
+ updateCalendar(currentDate.getMonth()+1,currentDate.getFullYear());
+ }
+
+ function jumpToNextYear()
+ {
+ updateCalendar(currentDate.getMonth(),currentDate.getFullYear()+1);
+ }
+
+ function jumpToToday()
+ {
+ generateCalendar(new Date());
+ }
+
+ function setNewDate()
+ {
+ var monthSelector = document.getElementById("monthSelector");
+ var newMonth = monthSelector.options[monthSelector.selectedIndex].value;
+ var newFullYear = document.getElementById("yearText").value;
+<%
+ // YYYY+
+%>
+ var d = new Date();
+ if (validateYearString(newFullYear))
+ {
+ // The year string contains only digits and is hence a valid year.
+ d.setFullYear(newFullYear);
+ d.setMonth(newMonth);
+ }
+ generateCalendar(d);
+ }
+
+ function handleYearTextKeyUpEvent()
+ {
+ var currentYearTextValue = document.getElementById("yearText").value;
+ if (currentYearTextValue == savedYearTextValue)
+ return false;
+ setNewDate();
+ }
+
+<%
+ // YYYY+-MM-DD
+%>
+ function transferDate(date)
+ {
+ var fullYear = document.getElementById("yearText").value;
+ var month = document.getElementById("monthSelector").selectedIndex+1;
+ top.opener.calendarTarget.value = serializeDate(fullYear,month,date);
+ top.opener.closeCalendarBrowser();
+ }
+
+<%
+ // YYYY+-MM-DDTHH:MM:SS[.SSS]Z
+%>
+ function transferDateTime(date)
+ {
+ var fullYear = document.getElementById("yearText").value;
+ var month = document.getElementById("monthSelector").selectedIndex+1;
+ var serializedDate = serializeDate(fullYear,month,date);
+ var d = new Date();
+ setDateUsingDateParameters(getDateParameters(serializedDate),d);
+ var timeValue = document.getElementById("timeText").value;
+ var timeParameters = getTimeParameters(timeValue);
+ if (timeParameters == null)
+ {
+ if (!confirm("<%=HTMLUtils.JSMangle(controller.getMessage("MSG_ERROR_INVALID_TIME_FORMAT"))%>"))
+ return;
+ }
+ else
+ setDateUsingTimeParameters(timeParameters,d);
+ top.opener.calendarTarget.value = serializedDate + "T" + serializeTime(d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()) + "Z";
+ top.opener.closeCalendarBrowser();
+ }
+
+<%
+ // YYYY+-MM
+%>
+ function transferGYearMonth()
+ {
+ var fullYear = document.getElementById("yearText").value;
+ var month = document.getElementById("monthSelector").selectedIndex+1;
+ var serializedGYearMonth = serializeGYearMonth(fullYear,month);
+ var d = new Date();
+ setDateUsingGYearMonthParameters(getGYearMonthParameters(serializedGYearMonth),d);
+ top.opener.calendarTarget.value = serializedGYearMonth;
+ top.opener.closeCalendarBrowser();
+ }
+
+<%
+ // ---DD
+%>
+ function transferGDay(date)
+ {
+ top.opener.calendarTarget.value = serializeGDay(date);
+ top.opener.closeCalendarBrowser();
+ }
+<%
+ // --MM-DD
+%>
+ function transferGMonthDay(date)
+ {
+ var month = document.getElementById("monthSelector").selectedIndex+1;
+ top.opener.calendarTarget.value = serializeGMonthDay(month,date);
+ top.opener.closeCalendarBrowser();
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <table border=0>
+ <tr>
+ <td align="center" valign="top">
+ <table>
+ <tr>
+ <td align="left" valign="top" class="labels">
+ <label for="monthSelector"><%=controller.getMessage("FORM_LABEL_MONTH")%></label>
+ </td>
+ <td width="20%">&nbsp;</td>
+ <td align="left" valign="top" class="labels">
+ <label for="yearText"><%=controller.getMessage("FORM_LABEL_YEAR")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="center">
+ <select id="monthSelector" onChange="setNewDate()" class="selectlist">
+ </select>
+ </td>
+ <td width="20%">&nbsp;</td>
+ <td width="30%" align="left" valign="center">
+ <input id="yearText" size=6 onkeyup="handleYearTextKeyUpEvent()" class="tabletextenter">
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td align="center" valign="top">
+ <table id="calendar" border=0 cellspacing=0 cellpadding=3 class="tableborder">
+ </table>
+ </td>
+ </tr>
+<%
+ if (calendarType == ActionInputs.CALENDAR_TYPE_DATETIME)
+ {
+%>
+ <tr>
+ <td align="center" valign="top">
+ <table border=0>
+ <td align="center" valign="center" class="labels">
+ <label for="timeText"><%=controller.getMessage("FORM_LABEL_TIME")%></label>
+ </td>
+ <td align="center" valign="center" width="80%">
+ <input id="timeText" type="text" class="tabletextenter" size=12 maxlength=12>
+ </td>
+ <td width="10%">&nbsp;</td>
+ </table>
+ </td>
+ </tr>
+<%
+ }
+%>
+ <tr>
+ <td align="center" valign="top">
+ <table border=0>
+ <tr>
+ <td>
+ <a href="javascript:jumpToPreviousYear()" title="<%=controller.getMessage("ALT_PREVIOUS_YEAR")%>"><%=controller.getMessage("FORM_LINK_PREVIOUS_YEAR")%></a>
+ </td>
+ <td>
+ <a href="javascript:jumpToPreviousMonth()" title="<%=controller.getMessage("ALT_PREVIOUS_MONTH")%>"><%=controller.getMessage("FORM_LINK_PREVIOUS_MONTH")%></a>
+ </td>
+ <td>
+ <a href="javascript:jumpToToday()" title="<%=controller.getMessage("ALT_TODAY")%>"><%=controller.getMessage("FORM_LINK_TODAY")%></a>
+ </td>
+ <td>
+ <a href="javascript:jumpToNextMonth()" title="<%=controller.getMessage("ALT_NEXT_MONTH")%>"><%=controller.getMessage("FORM_LINK_NEXT_MONTH")%></a>
+ </td>
+ <td>
+ <a href="javascript:jumpToNextYear()" title="<%=controller.getMessage("ALT_NEXT_YEAR")%>"><%=controller.getMessage("FORM_LINK_NEXT_YEAR")%></a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+<script language="javascript">
+ init();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_toolbar.jsp
new file mode 100644
index 000000000..5ae79fc34
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/calendar_toolbar.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FRAME_TITLE_CALENDAR_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+</head>
+<body onUnload="top.opener.calendarBrowserClosed=true" class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar">
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/calendar.gif"))%>" width=16 height=16></td>
+ <td valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_CALENDAR_BROWSER")%></td>
+ </tr>
+ </table>
+ </div>
+</div>
+<script language="javascript">
+ top.opener.calendarBrowserClosed = false;
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/calendar.css b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/calendar.css
new file mode 100644
index 000000000..a2777a024
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/calendar.css
@@ -0,0 +1,2 @@
+.calendartablecells { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; text-align:center}
+.todaytablecell { background-color:yellow; border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; text-align:center} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/toolbar.css b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/toolbar.css
new file mode 100644
index 000000000..775b8a2f5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/toolbar.css
@@ -0,0 +1,20 @@
+#toolbar { width:100%; height:25px; background:#ECE9D8; border-color:white; border-style:solid; border-width:1 1 1 1px; border-bottom-color:#848284; border-right-color:#848284; margin:0 0 0 0px;}
+#toolbarborder { height:26px; width:100%; border-style:solid; border-width:1 0 0 1px; border-color:#848284; }
+
+/* iframe Spacing Contol */
+.toolbarbodymargin { margin: 5 5 0 5; background: #ECE9D8; }
+
+/* Toolbar Styles */
+.text {font-size:12px; font-family: Tahoma;}
+a:link {color: black;}
+
+/* JS Rollover Style */
+IMG { border-width:2px; border-style:solid;}
+.normal { border-color : #ECE9D8; border-style: solid; border-width:1px; border-left-width: 1px; border-bottom-color :#ECE9D8; border-right-color :#ECE9D8;}
+.hover { border-color : white; border-style: solid; border-width:1px; border-left-width: 1px; border-bottom-color :#8C8E8C; border-right-color :#8C8E8C; }
+.down { border-color : #8C8E8C; border-style: solid; border-width:1px; border-left-width: 1px; border-bottom-color:white; border-right-color:white;}
+
+/* GlobalToolbar */
+.gtoolbarbodymargin {margin : 0 1 3 0; background: #ECE9D8}
+#globaltoolbar{height:100%; background: #ECE9D8; border-color : white; border-style: solid; border-width:1px; border-left-width: 1px; border-bottom-color :black; border-right-width: 1px; border-right-color :#848284;}
+
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/treeview.css b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/treeview.css
new file mode 100644
index 000000000..64615e3bc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/treeview.css
@@ -0,0 +1,5 @@
+a {text-decoration: none;}
+a:hover {text-decoration: underline;}
+td {font-family: Tahoma; font-size: 12px; color: Black;}
+.unselectedTextAnchor {color:blue; background-color:document.backgroundColor}
+.selectedTextAnchor {color:white; background-color:navy}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/windows.css b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/windows.css
new file mode 100644
index 000000000..c6be23207
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/css/windows.css
@@ -0,0 +1,45 @@
+#contentborder { border-left:1px solid #848284; border-right:1px solid #848284; border-top:0px solid #848284; border-bottom:1px solid #848284; height:100%; width:100%; background:white; overflow:auto; padding-left:10px; padding-right:0; padding-top:10; padding-bottom:10}
+#treecontentborder { border-left:1px solid #848284; border-right:1px solid #848284; border-top:0px solid #848284; border-bottom:1px solid #848284; height:100%; width:100%; background:white; overflow:auto; padding-top:5px}
+
+/* iframe Spacing Contol */
+.contentbodymargin { margin: 0 5 12 5; background:#ECE9D8; }
+
+/* Document Styles */
+.labels { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; color:black; font-weight: normal;}
+
+/* fieldset+legend Styles */
+.keylinefieldset { border-color:#8080FF; border-width:1px; border-style:solid; }
+
+/* table Styles */
+.tableborder {border-left:0px solid #B8B4A3; border-right:1px solid #B8B4A3; border-top:1px solid #B8B4A3; border-bottom:0px solid #B8B4A3; }
+.tablecells { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; text-align:left}
+.checkboxcells { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color: #ECE9D8}
+th.headercolor { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-style: normal; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#4977B4; color:#FFFFFF; text-align:center}
+th.singleheadercolor { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-style: normal; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#4977B4; color:#FFFFFF; text-align:left}
+.firstcolumnerrantrowcolor { border-left:1px solid red; border-right:0px solid #B7B4A3; border-top:1px solid red; border-bottom:1px solid red; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#E6EAD8; text-align:left}
+.middleerrantrowcolor { border-left:1px solid #B7B4A3; border-right:0px solid #B7B4A3; border-top:1px solid red; border-bottom:1px solid red; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#E6EAD8; text-align:left}
+.lastcolumnerrantrowcolor { border-left:1px solid #B7B4A3; border-right:1px solid red; border-top:1px solid red; border-bottom:1px solid red; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#E6EAD8; text-align:left}
+.rowcolor { border-left:1px solid #B8B4A3; border-right:0px solid #B8B4A3; border-top:0px solid #B8B4A3; border-bottom:1px solid #B8B4A3; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; background-color:#E6EAD8; text-align:left}
+
+/* Form elements and status contents */
+td { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; }
+th { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; }
+input { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; }
+.selectlist {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; color: Black; border-style:solid; border-width : 1px; border-color:#C7C5B2;}
+select { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; }
+pre { font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 12px; }
+.smtextenter {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 14px; color: Black; border-style:solid; border-width : 1px; border-color: #C7C5B2; width:10%; }
+.textenter {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 14px; color: Black; border-style:solid; border-width : 1px; border-color: #C7C5B2; width:90%; }
+.tabletextenter {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 14px; color: Black; border-style:solid; border-width : 1px; border-color: #C7C5B2; width:100%; }
+.tablefilebrowse {width:100%; border-style:solid; border-width:1px; font-size: 14px; border-color: #C7C5B2; font-family: Tahoma, Verdana, Arial, Helvetica; }
+input.button {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; border-width : 1px; border-style:outset; height:22px;}
+input.radio {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px;}
+img.twist {border-width:0 0 0 0px; height:10px; width:11px;}
+
+/* Fragment Styles */
+.fixfragtable {width:95%; border:0px none; }
+.innerfixfragtable {width:100%; border:0px none; }
+.rangefragtable {width:95%; border-left:0px solid #B8B4A3; border-right:1px solid #B8B4A3; border-top:1px solid #B8B4A3; border-bottom:0px solid #B8B4A3;}
+.innerrangefragtable {width:100%; border-left:0px solid #B8B4A3; border-right:1px solid #B8B4A3; border-top:1px solid #B8B4A3; border-bottom:0px solid #B8B4A3;}
+.textareaenter {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 14px; color: Black; border-style:solid; border-width : 1px; border-color: #C7C5B2; width:100%; height:150px; }
+.bigtextareaenter {font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 14px; color: Black; border-style:solid; border-width : 1px; border-color: #C7C5B2; width:100%; height:300px; }
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..05244a953
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/AddWSILToWSILPerspectiveActionJSP.jsp
@@ -0,0 +1,60 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.AddWSILToWSILPerspectiveAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+ // Prepare the action.
+ AddWSILToWSILPerspectiveAction action = new AddWSILToWSILPerspectiveAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ if (actionResult) {
+%>
+ <script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSIL,false)))%>";
+ </script>
+<%
+ }
+ else {
+ if (request.getParameter(FavoritesActionInputs.MULTIPLE_LINK_ACTION) == null) {
+%>
+ <jsp:include page="/favorites/actions/RemoveFavoritesConfirmJSP.jsp" flush="true"/>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ favPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_container.jsp"))%>";
+ favStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>";
+ </script>
+<%
+ }
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..c094ee68d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToUDDIPerspectiveActionJSP.jsp
@@ -0,0 +1,61 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.AddToUDDIPerspectiveAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+ // Prepare the action.
+ AddToUDDIPerspectiveAction action = AddToUDDIPerspectiveAction.newAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ if (actionResult) {
+ controller.getUDDIPerspective().getNavigatorManager().makeSelectedNodeVisible();
+%>
+ <script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_UDDI,false)))%>";
+ </script>
+<%
+ }
+ else {
+ if (request.getParameter(FavoritesActionInputs.MULTIPLE_LINK_ACTION) == null) {
+%>
+ <jsp:include page="/favorites/actions/RemoveFavoritesConfirmJSP.jsp" flush="true"/>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ favPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_container.jsp"))%>";
+ favStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>";
+ </script>
+<%
+ }
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..7556a8ebb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesAddToWSDLPerspectiveActionJSP.jsp
@@ -0,0 +1,62 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.FavoritesActionInputs,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.ShowPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.FavoritesAddToWSDLPerspectiveAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+// Prepare the action.
+FavoritesAddToWSDLPerspectiveAction action = new FavoritesAddToWSDLPerspectiveAction(controller);
+
+// Load the parameters for the action from the servlet request.
+boolean inputsValid = action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+if (actionResult) {
+%>
+<script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSDL,false)))%>";
+</script>
+<%
+}
+else {
+ if (request.getParameter(FavoritesActionInputs.MULTIPLE_LINK_ACTION) == null) {
+%>
+ <jsp:include page="/favorites/actions/RemoveFavoritesConfirmJSP.jsp" flush="true"/>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ favPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_container.jsp"))%>";
+ favStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>";
+ </script>
+<%
+ }
+}
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToFileSystemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToFileSystemActionJSP.jsp
new file mode 100644
index 000000000..9e99421fd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToFileSystemActionJSP.jsp
@@ -0,0 +1,24 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.io.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ FavoritesImportToFileSystemAction action = new FavoritesImportToFileSystemAction(controller);
+%>
+<%@ include file="/actions/ImportToFileSystemAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..51935b4b5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesImportToWorkbenchActionJSP.jsp
@@ -0,0 +1,22 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesImportToWorkbenchAction action = new FavoritesImportToWorkbenchAction(controller);
+%>
+<%@ include file="/actions/ImportToWorkbenchAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesLaunchWebServiceWizardActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesLaunchWebServiceWizardActionJSP.jsp
new file mode 100644
index 000000000..ea033b110
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesLaunchWebServiceWizardActionJSP.jsp
@@ -0,0 +1,19 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesLaunchWebServiceWizardAction action = new FavoritesLaunchWebServiceWizardAction(controller);
+%>
+<%@ include file="/actions/LaunchWebServiceWizardAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesToggleNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesToggleNodeActionJSP.jsp
new file mode 100644
index 000000000..3e8d15645
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/FavoritesToggleNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ FavoritesToggleNodeAction action = new FavoritesToggleNodeAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/ToggleNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesActionJSP.jsp
new file mode 100644
index 000000000..0fa1b2bdd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesActionJSP.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.RemoveFavoritesAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+<%
+ // Prepare the action.
+ RemoveFavoritesAction action = new RemoveFavoritesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<%@ include file="/actions/ClearNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesConfirmJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesConfirmJSP.jsp
new file mode 100644
index 000000000..147b1a37b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RemoveFavoritesConfirmJSP.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.RemoveFavoritesAction"%>
+
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <script language="javascript">
+ if (confirm("<%=controller.getFavoritesPerspective().getMessage("MSG_CONFIRM_REMOVE_NODE", controller.getFavoritesPerspective().getNodeManager().getSelectedNode().getNodeName())%>")) {
+ <%
+ Node selectedNode = controller.getFavoritesPerspective().getNodeManager().getSelectedNode();
+ %>
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), ActionInputs.VIEWID_DEFAULT, ActionInputs.VIEWTOOLID_DEFAULT)))%>";
+ }
+ else {
+ favPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_container.jsp"))%>";
+ favStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>";
+ }
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/ResizeFavoritesFramesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/ResizeFavoritesFramesActionJSP.jsp
new file mode 100644
index 000000000..cc062a1d5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/ResizeFavoritesFramesActionJSP.jsp
@@ -0,0 +1,53 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Create the action.
+ ResizeFavoritesFramesAction action = new ResizeFavoritesFramesAction(controller);
+
+ // Populate the action with the request properties.
+ boolean result = action.populatePropertyTable(request);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/favorites/scripts/favoritesframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (result)
+ {
+ action.execute(false);
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ perspectiveContentFrameset.setAttribute("cols","<%=favPerspective.getPerspectiveContentFramesetCols()%>");
+ actionsContainerFrameset.setAttribute("rows","<%=favPerspective.getActionsContainerFramesetRows()%>");
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_perspective_content.jsp"))%>";
+</script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesActionJSP.jsp
new file mode 100644
index 000000000..c27662538
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesActionJSP.jsp
@@ -0,0 +1,51 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.FavoritesRestoreDefaultFavoritesAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/favorites/scripts/favoritesPanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+ // Prepare the action.
+ FavoritesRestoreDefaultFavoritesAction action = new FavoritesRestoreDefaultFavoritesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ if (actionResult) {
+%>
+ <script language="javascript">
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_perspective_content.jsp"))%>";
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ favStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>";
+ </script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp
new file mode 100644
index 000000000..d5c94fd69
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp
@@ -0,0 +1,27 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <script language="javascript">
+ if (confirm("<%=controller.getFavoritesPerspective().getMessage("MSG_CONFIRM_RESTORE_DEFAULT_FAVORITES")%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("favorites/actions/RestoreDefaultFavoritesActionJSP.jsp"))%>";
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesNodeActionJSP.jsp
new file mode 100644
index 000000000..9556e0612
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesNodeAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+SelectFavoritesNodeAction action = new SelectFavoritesNodeAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesToolActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesToolActionJSP.jsp
new file mode 100644
index 000000000..f1b7d200d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SelectFavoritesToolActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.SelectFavoritesToolAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+SelectFavoritesToolAction action = new SelectFavoritesToolAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SwitchPerspectiveFromFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SwitchPerspectiveFromFavoritesActionJSP.jsp
new file mode 100644
index 000000000..0ba0cde9c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/actions/SwitchPerspectiveFromFavoritesActionJSP.jsp
@@ -0,0 +1,30 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action
+SwitchPerspectiveFromFavoritesAction action = new SwitchPerspectiveFromFavoritesAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<jsp:include page="/scripts/switchperspective.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_actions_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_actions_container.jsp
new file mode 100644
index 000000000..64a4ee558
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_actions_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%></title>
+</head>
+<frameset rows="<%=favPerspective.getActionsContainerFramesetRows()%>" bgcolor="#ECE9D8">
+ <frame name="<%=FavoritesFrameNames.PROPERTIES_CONTAINER%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_container.jsp"))%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+ <frame name="<%=FavoritesFrameNames.STATUS_CONTAINER%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_container.jsp"))%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_container.jsp
new file mode 100644
index 000000000..26e401a76
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=FavoritesFrameNames.NAVIGATOR_TOOLBAR%>" title="<%=favPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_navigator_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=FavoritesFrameNames.NAVIGATOR_CONTENT%>" title="<%=favPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_navigator_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_content.jsp
new file mode 100644
index 000000000..04f5b0769
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_content.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/treeview.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/treeview.js"))%>">
+ </script>
+</head>
+<%
+ String selectedAnchorName = "";
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ int focusedNodeId = nodeManager.getFocusedNodeId();
+ String focusedAnchorName = String.valueOf(focusedNodeId);
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ selectedAnchorName = selectedNode.getAnchorName();
+ if (focusedNodeId == selectedNode.getNodeId())
+ focusedAnchorName = selectedAnchorName;
+ }
+%>
+<body onLoad="self.location.hash='#<%=focusedAnchorName%>';setSelectedAnchorName('<%=selectedAnchorName%>')" class="contentbodymargin">
+<div id="treecontentborder">
+ <%=nodeManager.renderTreeView(response)%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_toolbar.jsp
new file mode 100644
index 000000000..aad8c9489
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_navigator_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/favorites/scripts/favoritesframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("favorites/actions/ResizeFavoritesFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(FavoritesFrameNames.NAVIGATOR_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/favorites/forms/ProcessFavoritesFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/navigator.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (favPerspective.getPerspectiveContentFramesetCols().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ else
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_NAVIGATOR")%></td>
+<%
+ String altRestore = favPerspective.getMessage("ALT_RESTORE_DEFAULT_FAVORITES");
+ String altRemove = favPerspective.getMessage("ALT_REMOVE_FAVORITE");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("favorites/actions/RestoreDefaultFavoritesConfirmJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseup(this)" alt="<%=altRestore%>" title="<%=altRestore%>"></a></td>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("favorites/actions/RemoveFavoritesActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altRemove%>" title="<%=altRemove%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_perspective_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_perspective_content.jsp
new file mode 100644
index 000000000..4c84e680e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_perspective_content.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_PERSPECTIVE_CONTENT")%></title>
+</head>
+<frameset cols="<%=favPerspective.getPerspectiveContentFramesetCols()%>" bgcolor=#ECE9D8>
+ <frame name="<%=FavoritesFrameNames.NAVIGATOR_CONTAINER%>" title="<%=favPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_navigator_container.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+ <frame name="<%=FavoritesFrameNames.ACTIONS_CONTAINER%>" title="<%=favPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_actions_container.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+</frameset>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_container.jsp
new file mode 100644
index 000000000..58a8be9a9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=FavoritesFrameNames.PROPERTIES_TOOLBAR%>" title="<%=favPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=FavoritesFrameNames.PROPERTIES_CONTENT%>" title="<%=favPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_properties_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_content.jsp
new file mode 100644
index 000000000..8c191566b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_content.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null)
+ {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ if (selectedTool != null && selectedTool.getToolType() != ToolTypes.ACTION) {
+ %>
+ <script language="javascript">
+ location="<%=response.encodeURL(controller.getPathWithContext(selectedTool.getFormLink()))%>";
+ </script>
+ <%
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_ACTION_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_NODE_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_toolbar.jsp
new file mode 100644
index 000000000..3e9c6f956
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_properties_toolbar.jsp
@@ -0,0 +1,82 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/favorites/scripts/favoritesframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("favorites/actions/ResizeFavoritesFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(FavoritesFrameNames.PROPERTIES_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/favorites/forms/ProcessFavoritesFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/actions.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (favPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (favPerspective.getActionsContainerFramesetRows().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_ACTIONS")%></td>
+<%
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ for(int i=0; i<toolManager.getNumberOfTools(); i++) {
+ Tool tool = (Tool)toolManager.getTool(i);
+ %>
+ <td valign="middle" align="center" width=25 height=25><%=tool.renderTool(response,controller)%></td>
+ <%
+ }
+ }
+%>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_container.jsp
new file mode 100644
index 000000000..ec4d66082
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=FavoritesFrameNames.STATUS_TOOLBAR%>" title="<%=favPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=FavoritesFrameNames.STATUS_CONTENT%>" title="<%=favPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_content.jsp
new file mode 100644
index 000000000..d5981e16d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_content.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <table>
+ <tr>
+ <td>
+ <pre>
+<%=favPerspective.getMessageQueue().getMessagesFromList()%>
+ </pre>
+ </td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_toolbar.jsp
new file mode 100644
index 000000000..6441c3f0d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/fav_status_toolbar.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/favorites/scripts/favoritesframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("favorites/actions/ResizeFavoritesFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(FavoritesFrameNames.STATUS_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/favorites/forms/ProcessFavoritesFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/status.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (favPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (favPerspective.getActionsContainerFramesetRows().endsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_STATUS")%></td>
+<%
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("favorites/fav_status_content.jsp"))%>" target="<%=FavoritesFrameNames.STATUS_CONTENT%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesImportToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesImportToWorkbenchForm.jsp
new file mode 100644
index 000000000..48b418436
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesImportToWorkbenchForm.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request">
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ // The selected node must be a FavoritesWSDLServiceNode.
+ Node selectedNode = nodeManager.getSelectedNode();
+ FavoritesWSDLServiceElement wsdlElement = (FavoritesWSDLServiceElement)selectedNode.getTreeElement();
+ formProperties.put("formActionLink","favorites/actions/FavoritesImportToWorkbenchActionJSP.jsp");
+ formProperties.put("wsdlURL",wsdlElement.getWsdlUrl());
+%>
+</jsp:useBean>
+<jsp:include page="/forms/ImportWSDLAndWSILToWorkbenchForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesLaunchWebServiceWizardForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesLaunchWebServiceWizardForm.jsp
new file mode 100644
index 000000000..e9323df91
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesLaunchWebServiceWizardForm.jsp
@@ -0,0 +1,20 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="formActionLink" class="java.lang.StringBuffer" scope="request">
+<%
+ formActionLink.append("favorites/actions/FavoritesLaunchWebServiceWizardActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:include page="/forms/LaunchWebServiceWizardForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIBusinessDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIBusinessDetailsPage.jsp
new file mode 100644
index 000000000..e51086f83
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIBusinessDetailsPage.jsp
@@ -0,0 +1,100 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.apache.wsil.extension.uddi.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_UDDI_BUSINESS_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_UDDI_BUSINESS_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesUDDIBusinessElement) {
+ FavoritesUDDIBusinessElement busElement = (FavoritesUDDIBusinessElement)selectedElement;
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_BUSINESS_NAME")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=busElement.getName()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=busElement.getInquiryURL()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_BUSINESS_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=busElement.getBusinessKey()%>
+ </td>
+ </tr>
+ </table>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIRegistryDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIRegistryDetailsPage.jsp
new file mode 100644
index 000000000..94b42e4a3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIRegistryDetailsPage.jsp
@@ -0,0 +1,154 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.apache.wsil.extension.uddi.*,
+ java.io.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_UDDI_REGISTRY_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_UDDI_REGISTRY_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesUDDIRegistryElement) {
+ FavoritesUDDIRegistryElement regElement = (FavoritesUDDIRegistryElement)selectedElement;
+ String registryName = regElement.getName();
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_REGISTRY_NAME")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=registryName%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=regElement.getInquiryURL()%>
+ </td>
+ </tr>
+ </table>
+<%
+ String publishURL = regElement.getPublishURL();
+ if (Validator.validateURL(publishURL))
+ {
+%>
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_PUBLISH_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=publishURL%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+
+ String registryURL = regElement.getRegistrationURL();
+ if (Validator.validateURL(registryURL))
+ {
+%>
+ <br>
+ <table>
+ <tr>
+ <td align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_REGISTRY_URL",registryURL)%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+
+ StringBuffer categoryDirectory = new StringBuffer();
+ FavoritesUDDIRegistryFolderElement.formCategoriesDirectory(categoryDirectory,controller.getServletEngineStateLocation(),registryName);
+ File categoryDirectoryFile = new File(categoryDirectory.toString());
+ String[] categoryFiles = categoryDirectoryFile.list();
+ if (categoryFiles != null)
+ {
+%>
+<br>
+<table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_USER_DEFINED_CATEGORY_DATA_FILES")%>
+ </th>
+ </tr>
+<%
+ for (int i=0;i<categoryFiles.length;i++)
+ {
+%>
+ <tr>
+ <td class="tablecells">
+ <%=categoryFiles[i]%>
+ </td>
+ </tr>
+<%
+ }
+%>
+</table>
+<%
+ }
+%>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+<%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceDetailsPage.jsp
new file mode 100644
index 000000000..caa601751
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceDetailsPage.jsp
@@ -0,0 +1,100 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.apache.wsil.extension.uddi.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_UDDI_SERVICE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_UDDI_SERVICE_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesUDDIServiceElement) {
+ FavoritesUDDIServiceElement serElement = (FavoritesUDDIServiceElement)selectedElement;
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_SERVICE_NAME")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serElement.getName()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serElement.getInquiryURL()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_SERVICE_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serElement.getServiceKey()%>
+ </td>
+ </tr>
+ </table>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceIntDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceIntDetailsPage.jsp
new file mode 100644
index 000000000..977b9c177
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesUDDIServiceIntDetailsPage.jsp
@@ -0,0 +1,100 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.apache.wsil.extension.uddi.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_UDDI_SERVICE_INTERFACE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_UDDI_SERVICE_INTERFACE_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesUDDIServiceInterfaceElement) {
+ FavoritesUDDIServiceInterfaceElement serIntElement = (FavoritesUDDIServiceInterfaceElement)selectedElement;
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_SERVICE_INTERFACE_NAME")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serIntElement.getName()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serIntElement.getInquiryURL()%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_SERVICE_INTERFACE_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=serIntElement.getServiceInterfaceKey()%>
+ </td>
+ </tr>
+ </table>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSDLDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSDLDetailsPage.jsp
new file mode 100644
index 000000000..f4c1e56fc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSDLDetailsPage.jsp
@@ -0,0 +1,71 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_WSDL_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_WSDL_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesWSDLServiceElement) {
+ FavoritesWSDLServiceElement wsdlElement = (FavoritesWSDLServiceElement)selectedElement;
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=wsdlElement.getWsdlUrl()%>
+ </td>
+ </tr>
+ </table>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSILDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSILDetailsPage.jsp
new file mode 100644
index 000000000..d0b1ead16
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/FavoritesWSILDetailsPage.jsp
@@ -0,0 +1,72 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.apache.wsil.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favPerspective.getMessage("FORM_TITLE_WSIL_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = favPerspective.getMessage("ALT_FAVORITES_WSIL_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof FavoritesWSILElement) {
+ FavoritesWSILElement wsilElement = (FavoritesWSILElement)selectedElement;
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=wsilElement.getWsilUrl()%>
+ </td>
+ </tr>
+ </table>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/ProcessFavoritesFramesetsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/ProcessFavoritesFramesetsForm.jsp
new file mode 100644
index 000000000..2f9a71ca9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/forms/ProcessFavoritesFramesetsForm.jsp
@@ -0,0 +1,27 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+%>
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request"/>
+<form action="<%=response.encodeURL(controller.getPathWithContext(formAction.toString()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" style="margin-top:0;margin-bottom:0">
+ <input name="<%=ActionInputs.FRAME_NAME%>" type="hidden" value="<%=formFrameName%>">
+ <input name="<%=FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>" type="hidden" value="<%=favPerspective.getPerspectiveContentFramesetCols()%>">
+ <input name="<%=FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>" type="hidden" value="<%=favPerspective.getActionsContainerFramesetRows()%>">
+</form>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_enabled.gif
new file mode 100644
index 000000000..e65d19a11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_highlighted.gif
new file mode 100644
index 000000000..4aa3ddcb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_uddi_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_enabled.gif
new file mode 100644
index 000000000..074184164
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_highlighted.gif
new file mode 100644
index 000000000..362b8cb5a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/add_to_wsil_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_enabled.gif
new file mode 100644
index 000000000..0fa09842f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_highlighted.gif
new file mode 100644
index 000000000..18a4ceb03
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_WSIL_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_enabled.gif
new file mode 100644
index 000000000..bd1e37adc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_highlighted.gif
new file mode 100644
index 000000000..d51b97517
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_business_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_enabled.gif
new file mode 100644
index 000000000..ef2aa155f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_highlighted.gif
new file mode 100644
index 000000000..d91ecb55f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_registry_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_enabled.gif
new file mode 100644
index 000000000..c351daff7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_highlighted.gif
new file mode 100644
index 000000000..53e1335da
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_enabled.gif
new file mode 100644
index 000000000..446986a1a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_highlighted.gif
new file mode 100644
index 000000000..815312251
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_service_interface_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_enabled.gif
new file mode 100644
index 000000000..6dc028508
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_highlighted.gif
new file mode 100644
index 000000000..428c8ea5e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/list_wsdl_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_business_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_business_node.gif
new file mode 100644
index 000000000..d3d6a778b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_business_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_cat_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_cat_node.gif
new file mode 100644
index 000000000..feec281b1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_cat_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_node.gif
new file mode 100644
index 000000000..5b43cae7b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_registry_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_interface_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_interface_node.gif
new file mode 100644
index 000000000..21325ca77
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_interface_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_node.gif
new file mode 100644
index 000000000..8c0252a2f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/uddi_service_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsdl_service_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsdl_service_node.gif
new file mode 100644
index 000000000..8fb844f5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsdl_service_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsil_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsil_node.gif
new file mode 100644
index 000000000..7c5916fb6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/images/wsil_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesFormSubmit.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesFormSubmit.jsp
new file mode 100644
index 000000000..915fe97eb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesFormSubmit.jsp
@@ -0,0 +1,43 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+<script language="javascript">
+ function isSomethingSelected(tableContainerId) {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows; i<table.rows.length; i++) {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ if (rowCheckbox.checked)
+ return true;
+ }
+ alert("<%=controller.getFavoritesPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ return false;
+ }
+
+ function setFormLocationAndSubmit(tableContainerId, form, location) {
+ if (isSomethingSelected(tableContainerId))
+ setLocationAndSubmit(form, location);
+ }
+
+ function setLocationAndSubmit(form, location) {
+ if (handleSubmit(form))
+ {
+ form.action = location;
+ form.submit();
+ }
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesPanes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesPanes.jsp
new file mode 100644
index 000000000..7ca588e60
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesPanes.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ var favNavigatorContainer = perspectiveContent.frames["<%=FavoritesFrameNames.NAVIGATOR_CONTAINER%>"];
+ var favNavigatorToolbar = favNavigatorContainer.frames["<%=FavoritesFrameNames.NAVIGATOR_TOOLBAR%>"];
+ var favNavigatorContent = favNavigatorContainer.frames["<%=FavoritesFrameNames.NAVIGATOR_CONTENT%>"];
+ var favActionsContainer = perspectiveContent.frames["<%=FavoritesFrameNames.ACTIONS_CONTAINER%>"];
+ var favPropertiesContainer = favActionsContainer.frames["<%=FavoritesFrameNames.PROPERTIES_CONTAINER%>"];
+ var favPropertiesToolbar = favPropertiesContainer.frames["<%=FavoritesFrameNames.PROPERTIES_TOOLBAR%>"];
+ var favPropertiesContent = favPropertiesContainer.frames["<%=FavoritesFrameNames.PROPERTIES_CONTENT%>"];
+ var favStatusContainer = favActionsContainer.frames["<%=FavoritesFrameNames.STATUS_CONTAINER%>"];
+ var favStatusToolbar = favStatusContainer.frames["<%=FavoritesFrameNames.STATUS_TOOLBAR%>"];
+ var favStatusContent = favStatusContainer.frames["<%=FavoritesFrameNames.STATUS_CONTENT%>"];
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesTable.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesTable.jsp
new file mode 100644
index 000000000..e76ad2b22
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesTable.jsp
@@ -0,0 +1,62 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript">
+
+ function favHandleCheckAllClick(tableContainerId, checkAllCheckbox) {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows; i<table.rows.length; i++) {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ rowCheckbox.checked = checkAllCheckbox.checked;
+ if (rowCheckbox.checked) {
+ highlightRow(table.rows[i],"rowcolor");
+ rowCheckbox.name = "<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>";
+ }
+ else {
+ highlightRow(table.rows[i],"tablecells");
+ rowCheckbox.name = "";
+ }
+ }
+ }
+
+ function validateCheckBoxInput(checkbox, isChecked) {
+ if (isChecked) {
+ checkbox.name = "<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>";
+ }
+ else {
+ checkbox.name = "";
+ }
+ handleRowCheckboxClick();
+ }
+
+ function twistInit(tableContainerId,twistImageName) {
+ var tableContainer = document.getElementById(tableContainerId);
+ var table = getTable(tableContainerId);
+ if (table.rows.length > numberOfHeaderRows) {
+ tableContainer.style.display = "none";
+ twist(tableContainerId, twistImageName);
+ }
+ else {
+ tableContainer.style.display = "";
+ twist(tableContainerId, twistImageName);
+ }
+ }
+
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesframesets.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesframesets.jsp
new file mode 100644
index 000000000..4fbe09025
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/scripts/favoritesframesets.jsp
@@ -0,0 +1,32 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ function getActionsContainerFrameset()
+ {
+ return perspectiveContent.frames["<%=FavoritesFrameNames.ACTIONS_CONTAINER%>"].document.getElementsByTagName("frameset").item(0);
+ }
+
+ function processFramesetSizes(framesetSizesForm)
+ {
+ toggleDoubleClickColumnTitle();
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ framesetSizesForm.<%=FavoritesActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>.value = perspectiveContentFrameset.cols;
+ framesetSizesForm.<%=FavoritesActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>.value = actionsContainerFrameset.rows;
+ framesetSizesForm.submit();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIBusinessView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIBusinessView.jsp
new file mode 100644
index 000000000..a20a9a62c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIBusinessView.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteUDDIBusinessTable = "divFavoriteUDDIBusinessTable";
+ String xdivFavoriteUDDIBusinessTable = "xdivFavoriteUDDIBusinessTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_UDDI_BUSINESS_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ String titleImagePath = "wsil/images/list_business_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_BUSINESS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_UDDI_BUSINESS_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesUDDIBusinessFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteUDDIBusinessTable%>','<%=xdivFavoriteUDDIBusinessTable%>')"><img name="<%=xdivFavoriteUDDIBusinessTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_UDDI_BUSINESS")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteUDDIBusinessTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteUDDIBusinessTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ </tr>
+ <%
+ Enumeration e = ((FavoritesUDDIBusinessFolderElement)selectedElement).getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIBusinessElement favUDDIBusinessElement = (FavoritesUDDIBusinessElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favUDDIBusinessElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favUDDIBusinessElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favUDDIBusinessElement.getName()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteUDDIBusinessTable%>','<%=xdivFavoriteUDDIBusinessTable%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIBusinessTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIBusinessTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIRegistryView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIRegistryView.jsp
new file mode 100644
index 000000000..3d4d23641
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIRegistryView.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteUDDIRegistryTable = "divFavoriteUDDIRegistryTable";
+ String xdivFavoriteUDDIRegistryTable = "xdivFavoriteUDDIRegistryTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_UDDI_REGISTRY_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "favorites/images/list_registry_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_REGISTRY");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_UDDI_REGISTRY_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesUDDIRegistryFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteUDDIRegistryTable%>','<%=xdivFavoriteUDDIRegistryTable%>')"><img name="<%=xdivFavoriteUDDIRegistryTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_UDDI_REGISTRY")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteUDDIRegistryTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteUDDIRegistryTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ </tr>
+ <%
+ Enumeration e = ((FavoritesUDDIRegistryFolderElement)selectedElement).getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIRegistryElement favUDDIRegistryElement = (FavoritesUDDIRegistryElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favUDDIRegistryElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favUDDIRegistryElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favUDDIRegistryElement.getName()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteUDDIRegistryTable%>','<%=xdivFavoriteUDDIRegistryTable%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIRegistryTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIRegistryTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceInterfaceView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceInterfaceView.jsp
new file mode 100644
index 000000000..8ef4a648f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceInterfaceView.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteUDDIServiceIntTable = "divFavoriteUDDIServiceIntTable";
+ String xdivFavoriteUDDIServiceIntTable = "xdivFavoriteUDDIServiceIntTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_UDDI_SERVICE_INTERFACE_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "favorites/images/list_service_interface_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_SERVICE_INTERFACE");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_INTERFACE_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesUDDIServiceInterfaceFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteUDDIServiceIntTable%>','<%=xdivFavoriteUDDIServiceIntTable%>')"><img name="<%=xdivFavoriteUDDIServiceIntTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_UDDI_SERVICE_INTERFACE")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteUDDIServiceIntTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteUDDIServiceIntTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ </tr>
+ <%
+ Enumeration e = ((FavoritesUDDIServiceInterfaceFolderElement)selectedElement).getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIServiceInterfaceElement favUDDISerIntElement = (FavoritesUDDIServiceInterfaceElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favUDDISerIntElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favUDDISerIntElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favUDDISerIntElement.getName()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteUDDIServiceIntTable%>','<%=xdivFavoriteUDDIServiceIntTable%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIServiceIntTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIServiceIntTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceView.jsp
new file mode 100644
index 000000000..fd761742a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteUDDIServiceView.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteUDDIServiceTable = "divFavoriteUDDIServiceTable";
+ String xdivFavoriteUDDIServiceTable = "xdivFavoriteUDDIServiceTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_UDDI_SERVICE_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_UDDI_service_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_UDDI_SERVICE");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_UDDI_SERVICE_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesUDDIServiceFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteUDDIServiceTable%>','<%=xdivFavoriteUDDIServiceTable%>')"><img name="<%=xdivFavoriteUDDIServiceTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_UDDI_SERVICE")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteUDDIServiceTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteUDDIServiceTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ </tr>
+ <%
+ Enumeration e = ((FavoritesUDDIServiceFolderElement)selectedElement).getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesUDDIServiceElement favUDDIServiceElement = (FavoritesUDDIServiceElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favUDDIServiceElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favUDDIServiceElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favUDDIServiceElement.getName()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteUDDIServiceTable%>','<%=xdivFavoriteUDDIServiceTable%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIServiceTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteUDDIServiceTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSDLServiceView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSDLServiceView.jsp
new file mode 100644
index 000000000..8d5b11ffb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSDLServiceView.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteWSDLTable = "divFavoriteWSDLTable";
+ String xdivFavoriteWSDLTable = "xdivFavoriteWSDLTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_WSDL_SERVICE_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_WSDL_service_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_WSDL_SERVICE");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_WSDL_SERVICE_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesWSDLServiceFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteWSDLTable%>','<%=xdivFavoriteWSDLTable%>')"><img name="<%=xdivFavoriteWSDLTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_WSDL")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteWSDLTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteWSDLTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_URL")%></th>
+ </tr>
+ <%
+ Enumeration e = ((FavoritesWSDLServiceFolderElement)selectedElement).getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesWSDLServiceElement favWSDLServiceElement = (FavoritesWSDLServiceElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favWSDLServiceElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favWSDLServiceElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favWSDLServiceElement.getWsdlUrl()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteWSDLTable%>','<%=xdivFavoriteWSDLTable%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_WSDL_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteWSDLTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(FavoritesAddToWSDLPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteWSDLTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSILView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSILView.jsp
new file mode 100644
index 000000000..d0798ca5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/favorites/views/ListFavoriteWSILView.jsp
@@ -0,0 +1,128 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Enumeration,
+ java.util.Vector,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.FavoritesPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divFavoriteWSILTable = "divFavoriteWSILTable";
+ String xdivFavoriteWSILTable = "xdivFavoriteWSILTable";
+
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager nodeManager = favoritesPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=favoritesPerspective.getMessage("VIEW_TITLE_WSIL_LIST")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/favorites/scripts/favoritesFormSubmit.jsp" flush="true"/>
+ <jsp:include page="/favorites/scripts/favoritesTable.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "favorites/images/list_WSIL_highlighted.gif";
+ String title = favoritesPerspective.getMessage("ALT_LIST_FAVORITE_WSIL");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=favoritesPerspective.getMessage("FORM_LABEL_LIST_FAVORITE_WSIL_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof FavoritesWSILFolderElement) {
+ %>
+ <input type="hidden" name="<%=FavoritesActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divFavoriteWSILTable%>','<%=xdivFavoriteWSILTable%>')"><img name="<%=xdivFavoriteWSILTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=favoritesPerspective.getMessage("FORM_LABEL_FAVORITE_WSIL")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divFavoriteWSILTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="favHandleCheckAllClick('<%=divFavoriteWSILTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=favoritesPerspective.getMessage("FORM_LABEL_URL")%></th>
+ </tr>
+ <%
+ FavoritesWSILFolderElement favWSILFolderElement = (FavoritesWSILFolderElement)selectedElement;
+ Enumeration e = favWSILFolderElement.getAllFavorites();
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ e = sortedVector.elements();
+ while (e.hasMoreElements()) {
+ FavoritesWSILElement favWSILElement = (FavoritesWSILElement)e.nextElement();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=FavoritesActionInputs.MASS_ACTION_NODE_ID%>" value="<%=selectedNode.getChildNode(favWSILElement).getNodeId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectFavoritesNodeAction.getActionLink(selectedNode.getChildNode(favWSILElement).getNodeId(), false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=favWSILElement.getWsilUrl()%></a></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divFavoriteWSILTable%>','<%=xdivFavoriteWSILTable%>');
+ </script>
+
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_IMPORT_TO_WSIL_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteWSILTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddWSILToWSILPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom" nowrap>
+ <input type="button" value="<%=favoritesPerspective.getMessage("FORM_LABEL_REMOVE")%>" onClick="setFormLocationAndSubmit('<%=divFavoriteWSILTable%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RemoveFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+ %>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportToWorkbenchForm.jsp
new file mode 100644
index 000000000..6be8fc3eb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportToWorkbenchForm.jsp
@@ -0,0 +1,100 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.core.resources.*,
+ org.eclipse.core.runtime.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FORM_TITLE_IMPORT_TO_WORKBENCH")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <form action="<%=response.encodeURL(controller.getPathWithContext((String)formProperties.get("formActionLink")))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+ <input type="hidden" name="<%=ActionInputs.IMPORT_FILE%>" value="<%=ActionInputs.IMPORT_FILE%>">
+
+ <%
+ String titleImagePath = "images/import_to_workbench_highlighted.gif";
+ String title = controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td>
+ <%=controller.getMessage("FORM_LABEL_IMPORT_TO_WORKBENCH_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table>
+ <tr>
+ <td class="labels" height=40 valign="center">
+ <label for="select_workbench_project_name"><%=controller.getMessage("WORKBENCH_PROJECT_NAME")%></label>
+ </td>
+ <td class="labels" height=40 valign="center" nowrap>
+ <%
+ IWorkspaceRoot iWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject[] projects = iWorkspaceRoot.getProjects();
+ %>
+ <select id="select_workbench_project_name" name="<%=ActionInputs.WORKBENCH_PROJECT_NAME%>" class="selectlist">
+ <%
+ for (int i = 0; i < projects.length; i++) {
+ try {
+ if (!projects[i].isOpen()) continue;
+ String projectName = projects[i].getName();
+ %>
+ <option value="<%=projectName%>"><%=projectName%>
+ <%
+ }
+ catch (Exception e) {}
+ }
+ %>
+ </select>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <label for="input_imported_file_name"><%=controller.getMessage("IMPORTED_WSDL_FILE_NAME")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td height=10 valign="bottom" width="60%">
+<%
+ String wsdlFileName="temp.wsdl";
+ String wsdlURL = (String)formProperties.get("wsdlURL");
+ if (wsdlURL != null && wsdlURL.endsWith(".wsdl"))
+ {
+ int lastSeparatorPos = Math.max(wsdlURL.lastIndexOf("/"),wsdlURL.lastIndexOf("\\"));
+ if (lastSeparatorPos > 0)
+ wsdlFileName = wsdlURL.substring(lastSeparatorPos+1,wsdlURL.length());
+ }
+%>
+ <input type="text" id="input_imported_file_name" name="<%=ActionInputs.IMPORTED_FILE_NAME%>" value="<%=wsdlFileName%>" size=50 class="textenter">
+ </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportWSDLAndWSILToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportWSDLAndWSILToWorkbenchForm.jsp
new file mode 100644
index 000000000..aa4c03e9e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ImportWSDLAndWSILToWorkbenchForm.jsp
@@ -0,0 +1,157 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.core.resources.*,
+ org.eclipse.core.runtime.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request"/>
+<script language="javascript">
+ function toggleDivContainer(divId)
+ {
+ var divContainer = document.getElementById(divId);
+ if (divContainer.style.display == "none")
+ divContainer.style.display = "";
+ else
+ divContainer.style.display = "none";
+ }
+</script>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FORM_TITLE_IMPORT_TO_WORKBENCH")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+ <jsp:include page="/scripts/formutils.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+
+ <form action="<%=response.encodeURL(controller.getPathWithContext((String)formProperties.get("formActionLink")))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+
+ <%
+ String titleImagePath = "images/import_to_workbench_highlighted.gif";
+ String title = controller.getMessage("ALT_IMPORT_WSDL_TO_WORKBENCH");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td>
+ <%=controller.getMessage("FORM_LABEL_IMPORT_TO_WORKBENCH_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table>
+ <tr>
+ <td class="labels" height=40 valign="center">
+ <label for="select_workbench_project_name"><%=controller.getMessage("WORKBENCH_PROJECT_NAME")%></label>
+ </td>
+ <td class="labels" height=40 valign="center" nowrap>
+ <%
+ IWorkspaceRoot iWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject[] projects = iWorkspaceRoot.getProjects();
+ %>
+ <select id="select_workbench_project_name" name="<%=ActionInputs.WORKBENCH_PROJECT_NAME%>" class="selectlist">
+ <%
+ for (int i = 0; i < projects.length; i++) {
+ try {
+ if (!projects[i].isOpen())
+ continue;
+ String projectName = projects[i].getName();
+ %>
+ <option value="<%=projectName%>"><%=projectName%>
+ <%
+ }
+ catch (Exception e) {}
+ }
+ %>
+ </select>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <input type="checkbox" checked id="input_import_wsdl" name="<%=ActionInputs.IMPORT_FILE%>" value="<%=ActionInputs.IMPORT_FILE%>" onClick="toggleDivContainer('div_import_wsdl')">
+ <label for="input_import_wsdl"><%=controller.getMessage("LABEL_IMPORT_WSDL")%></label>
+ </td>
+ </tr>
+ </table>
+ <div id="div_import_wsdl">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <label for="input_imported_wsdl_file_name"><%=controller.getMessage("IMPORTED_WSDL_FILE_NAME")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td height=10 valign="bottom" width="60%">
+<%
+ String wsdlFileName="temp.wsdl";
+ String wsdlURL = (String)formProperties.get("wsdlURL");
+ if (wsdlURL != null && wsdlURL.endsWith(".wsdl"))
+ {
+ int lastSeparatorPos = Math.max(wsdlURL.lastIndexOf("/"),wsdlURL.lastIndexOf("\\"));
+ if (lastSeparatorPos > 0)
+ wsdlFileName = wsdlURL.substring(lastSeparatorPos+1,wsdlURL.length());
+ }
+%>
+ <input type="text" id="input_imported_wsdl_file_name" name="<%=ActionInputs.IMPORTED_FILE_NAME%>" value="<%=wsdlFileName%>" size=50 class="textenter">
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">&nbsp;</td>
+ </tr>
+ </table>
+
+ <input type="hidden" name="<%=ActionInputs.IMPORTED_WSDL_URL%>" value="<%=wsdlURL%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <input type="checkbox" id="input_import_wsil" name="<%=ActionInputs.IMPORT_TO_WSIL%>" value="<%=ActionInputs.IMPORT_TO_WSIL%>" onClick="toggleDivContainer('div_import_wsil')">
+ <label for="input_import_wsil"><%=controller.getMessage("LABEL_IMPORT_TO_WSIL")%></label>
+ </td>
+ </tr>
+ </table>
+ <div id="div_import_wsil" style="display:none;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <label for="input_imported_wsil_file_name"><%=controller.getMessage("WSIL_FILE_NAME")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td height=10 valign="bottom" width="60%">
+<%
+ String wsilFileName = (String)formProperties.get("wsilFileName");
+ if (wsilFileName == null || wsilFileName.length() <= 0)
+ wsilFileName = wsdlFileName.substring(0, wsdlFileName.length()-4) + "wsil";
+%>
+ <input type="text" id="input_imported_wsil_file_name" name="<%=ActionInputs.WSIL_FILE_NAME%>" value="<%=wsilFileName%>" size=50 class="textenter">
+ </td>
+ </tr>
+ </table>
+ </div>
+
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/LaunchWebServiceWizardForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/LaunchWebServiceWizardForm.jsp
new file mode 100644
index 000000000..773a0d1e5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/LaunchWebServiceWizardForm.jsp
@@ -0,0 +1,57 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formActionLink" class="java.lang.StringBuffer" scope="request"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FORM_TITLE_LAUNCH_WEBSERVICE_WIZARD")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(formActionLink.toString()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+
+<%
+ String titleImagePath = "images/launch_wswizard_highlighted.gif";
+ String title = controller.getMessage("ALT_LAUNCH_WEB_SERVICE_WIZARD");
+%>
+<%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels" height=20 valign="bottom">
+ <%=controller.getMessage("FORM_LABEL_CHOOSE_WIZARD")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_ws_client_wizard" class="radio" name="<%=ActionInputs.WEB_SERVICE_WIZARD%>" checked=true value="<%=String.valueOf(ActionInputs.WEB_SERVICE_CLIENT_WIZARD)%>"><label for="radio_ws_client_wizard"><%=controller.getMessage("FORM_RADIO_WEB_SERVICE_CLIENT_WIZARD")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_ws_skeleton_wizard" class="radio" name="<%=ActionInputs.WEB_SERVICE_WIZARD%>" value="<%=String.valueOf(ActionInputs.WEB_SERVICE_SKELETON_WIZARD)%>"><label for="radio_ws_skeleton_wizard"><%=controller.getMessage("FORM_RADIO_WEB_SERVICE_SKELETON_WIZARD")%></label>
+ </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadContent.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadContent.jsp
new file mode 100644
index 000000000..d424366ce
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadContent.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ Controller controller;
+ StringBuffer targetContentLink = new StringBuffer(request.getParameter(ActionInputs.TARGET_PAGE));
+ if (sessionId != null)
+ {
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ controller = (Controller)currentSession.getAttribute("controller");
+ if (targetContentLink.toString().indexOf("?") != -1)
+ targetContentLink.append('&');
+ else
+ targetContentLink.append('?');
+ targetContentLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ }
+ else
+ controller = (Controller)session.getAttribute("controller");
+
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FORM_TITLE_PAGE_LOADER")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript">
+ function loadContent()
+ {
+ var frameset = parent.document.getElementById("proxyPage");
+ var contentFrame = frameset.getElementsByTagName("frame").item(1);
+ contentFrame.src = "<%=response.encodeURL(controller.getPathWithContext(targetContentLink.toString()))%>";
+ }
+
+ function handleCompletion()
+ {
+ var table = document.getElementsByTagName("table").item(0);
+ var tBody = table.getElementsByTagName("TBODY").item(0);
+ var doneRow = document.createElement("tr");
+ var doneColumn = document.createElement("td");
+ doneColumn.appendChild(document.createTextNode("Page loaded."));
+ doneRow.appendChild(doneColumn);
+ tBody.appendChild(doneRow);
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <table>
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ </div>
+<script language="javascript">
+ loadContent();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadPage.jsp
new file mode 100644
index 000000000..a62462e0d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/ProxyLoadPage.jsp
@@ -0,0 +1,36 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils,
+ java.util.*,
+ java.net.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ Controller controller;
+ StringBuffer loadContentLink = new StringBuffer("forms/ProxyLoadContent.jsp?");
+ if (sessionId != null)
+ {
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ controller = (Controller)currentSession.getAttribute("controller");
+ loadContentLink.append(ActionInputs.SESSIONID).append('=').append(sessionId).append('&');
+ }
+ else
+ controller = (Controller)session.getAttribute("controller");
+ loadContentLink.append(ActionInputs.TARGET_PAGE).append('=').append(URLUtils.encode(request.getParameter(ActionInputs.TARGET_PAGE)));
+%>
+<frameset id="proxyPage" rows="100%,*" border=0>
+ <frame src="<%=controller.getPathWithContext(loadContentLink.toString())%>" title="<%=controller.getMessage("FORM_TITLE_PAGE_LOADER")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=0 noresize>
+ <frame title="<%=controller.getMessage("FORM_TITLE_PAGE_CONTENT")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=0 noresize>
+</frameset>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/copyright.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/copyright.inc
new file mode 100644
index 000000000..a7fdcef6e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/copyright.inc
@@ -0,0 +1,12 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%> \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/formheader.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/formheader.inc
new file mode 100644
index 000000000..0d1c98f04
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/formheader.inc
@@ -0,0 +1,23 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <img src="<%=response.encodeURL(controller.getPathWithContext(titleImagePath))%>" alt="">
+ <strong><%=title%></strong>
+ </td>
+ </tr>
+ <tr>
+ <td height=20> <img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"> </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/otherActions.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/otherActions.jsp
new file mode 100644
index 000000000..944e3ffda
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/otherActions.jsp
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request"/>
+<%
+ ToolManager currentToolManager = (ToolManager)currentToolManagerHash.get(ActionInputs.CURRENT_TOOL_MANAGER);
+ int numberOfTools = currentToolManager.getNumberOfTools();
+ if (numberOfTools > 1)
+ {
+%>
+<table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <strong><%=controller.getMessage("ALT_OTHER_ACTIONS")%></strong>
+ </td>
+ </tr>
+ <tr>
+ <td height=20> <img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"> </td>
+ </tr>
+</table>
+<table>
+<%
+ for (int i=1;i<numberOfTools;i++)
+ {
+ Tool t = currentToolManager.getTool(i);
+%>
+ <tr>
+ <td><a href="<%=response.encodeURL(controller.getPathWithContext(t.getSelectToolActionHref(false)))%>" target="<%=t.getSelectToolActionTarget()%>"><%=t.getAltText()%></a></td>
+ </tr>
+<%
+ }
+%>
+</table>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/simpleCommon_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/simpleCommon_table.jsp
new file mode 100644
index 000000000..6dfe8a8d4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/forms/simpleCommon_table.jsp
@@ -0,0 +1,26 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" align="left" nowrap>
+ <input type="submit" value="<%=controller.getMessage("FORM_BUTTON_GO")%>" class="button">
+ </td>
+ <td height=30 valign="bottom" align="left" nowrap>
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_RESET")%>" onClick="resetFormInputs()" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/actions.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/actions.gif
new file mode 100644
index 000000000..d5aed7aa0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/actions.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_enabled.gif
new file mode 100644
index 000000000..55ce561af
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_highlighted.gif
new file mode 100644
index 000000000..8ead667de
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/add_to_wsdl_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_enabled.gif
new file mode 100644
index 000000000..1a46673a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_highlighted.gif
new file mode 100644
index 000000000..4fb415010
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/back_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/calendar.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/calendar.gif
new file mode 100644
index 000000000..be2817bf1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/calendar.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_enabled.gif
new file mode 100644
index 000000000..5798483df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_highlighted.gif
new file mode 100644
index 000000000..6bc10f9d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/clear_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_enabled.gif
new file mode 100644
index 000000000..333327302
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_highlighted.gif
new file mode 100644
index 000000000..98a2ba04e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/details_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_play.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_play.gif
new file mode 100644
index 000000000..eb17c1103
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_play.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_record.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_record.gif
new file mode 100644
index 000000000..03004f54e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_record.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_save.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_save.gif
new file mode 100644
index 000000000..fe0048bed
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_save.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_stop.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_stop.gif
new file mode 100644
index 000000000..3aee9aa1b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/dlcl16/actionengine_stop.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_play.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_play.gif
new file mode 100644
index 000000000..b88fb72d5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_play.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_record.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_record.gif
new file mode 100644
index 000000000..26ccfe22c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_record.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_save.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_save.gif
new file mode 100644
index 000000000..c6e7b9d6a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_save.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_stop.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_stop.gif
new file mode 100644
index 000000000..0dc366d0e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/elcl16/actionengine_stop.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/eview16/actionengine.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/eview16/actionengine.gif
new file mode 100644
index 000000000..bf64bc22f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/eview16/actionengine.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_enabled.gif
new file mode 100644
index 000000000..acb026872
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_highlighted.gif
new file mode 100644
index 000000000..fa6221852
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_enabled.gif
new file mode 100644
index 000000000..39004bf62
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_highlighted.gif
new file mode 100644
index 000000000..1965b847b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/favorites_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_closed.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_closed.gif
new file mode 100644
index 000000000..42e027c93
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_closed.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_open.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_open.gif
new file mode 100644
index 000000000..21322e0aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/folder_open.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_enabled.gif
new file mode 100644
index 000000000..4231431ef
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_highlighted.gif
new file mode 100644
index 000000000..e2f8c3e1f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/forward_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_enabled.gif
new file mode 100644
index 000000000..a70c7a7c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_highlighted.gif
new file mode 100644
index 000000000..946d3e71b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_fs_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_enabled.gif
new file mode 100644
index 000000000..b64a07d3a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_highlighted.gif
new file mode 100644
index 000000000..d38085ad9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/import_to_workbench_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/keyline.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/keyline.gif
new file mode 100644
index 000000000..de8069e64
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/keyline.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_enabled.gif
new file mode 100644
index 000000000..d258dc5c2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_highlighted.gif
new file mode 100644
index 000000000..5f097d561
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/launch_wswizard_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line.gif
new file mode 100644
index 000000000..881e5b7f9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_last.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_last.gif
new file mode 100644
index 000000000..8f0ef83e0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_last.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_notlast.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_notlast.gif
new file mode 100644
index 000000000..8292ce2df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/line_notlast.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_last.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_last.gif
new file mode 100644
index 000000000..19ebb73bd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_last.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_notlast.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_notlast.gif
new file mode 100644
index 000000000..cd6431bf9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/minus_notlast.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/navigator.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/navigator.gif
new file mode 100644
index 000000000..88c056795
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/navigator.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_last.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_last.gif
new file mode 100644
index 000000000..e00c89a0b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_last.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_notlast.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_notlast.gif
new file mode 100644
index 000000000..257bd1653
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/plus_notlast.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_enabled.gif
new file mode 100644
index 000000000..5bd5d19de
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_highlighted.gif
new file mode 100644
index 000000000..42904295e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/refresh_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/root_main.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/root_main.gif
new file mode 100644
index 000000000..27ade02c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/root_main.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/space.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/space.gif
new file mode 100644
index 000000000..481191560
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/space.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/status.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/status.gif
new file mode 100644
index 000000000..2da001e3e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/status.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_enabled.gif
new file mode 100644
index 000000000..7b5bc9d04
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_highlighted.gif
new file mode 100644
index 000000000..07164754e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/top_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistclosed.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistclosed.gif
new file mode 100644
index 000000000..264331e46
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistclosed.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistopened.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistopened.gif
new file mode 100644
index 000000000..4c2c5f2fb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/twistopened.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_enabled.gif
new file mode 100644
index 000000000..9acab3dba
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_highlighted.gif
new file mode 100644
index 000000000..7cfc0af65
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/uddi_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl.gif
new file mode 100644
index 000000000..8fb844f5b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_enabled.gif
new file mode 100644
index 000000000..932acfed6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_highlighted.gif
new file mode 100644
index 000000000..ae8efc903
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsdl_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_enabled.gif
new file mode 100644
index 000000000..7af88fcb0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_highlighted.gif
new file mode 100644
index 000000000..23b35a615
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/images/wsil_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/launch_options_registry.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/launch_options_registry.jsp
new file mode 100644
index 000000000..1005b456f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/launch_options_registry.jsp
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.WSExplorerContext,
+ java.util.Enumeration,
+ java.util.Hashtable,
+ org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils" %>
+
+<%
+ String key = null;
+ Hashtable options = new Hashtable();
+ Enumeration paramNames = request.getParameterNames();
+ while (paramNames.hasMoreElements())
+ {
+ String paramName = (String)paramNames.nextElement();
+ String[] paramValues = request.getParameterValues(paramName);
+ if (paramValues != null && paramValues.length > 0)
+ {
+ if (key == null && URLUtils.decode(paramName).equals(WSExplorerContext.ID))
+ key = paramValues[0];
+ else
+ options.put(paramName, paramValues);
+ }
+ }
+ if (key != null)
+ {
+ LaunchOptionsManager manager = LaunchOptionsManager.getInstance();
+ manager.manage(key, options, application);
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_content.jsp
new file mode 100644
index 000000000..5bbadeaff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_content.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FRAME_TITLE_PERSPECTIVE_CONTENT")%></title>
+</head>
+<body>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ perspectiveWorkArea.location="<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(controller.getCurrentPerspective().getPerspectiveId(),false)))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_toolbar.jsp
new file mode 100644
index 000000000..6684bb97c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/perspective_toolbar.jsp
@@ -0,0 +1,77 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.ActionEngine" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+StringBuffer hrefActionEngine = new StringBuffer();
+hrefActionEngine.append(response.encodeURL(controller.getPathWithContext("actionengine_container.jsp")));
+hrefActionEngine.append("?");
+hrefActionEngine.append(ActionInputs.SESSIONID);
+hrefActionEngine.append("=");
+hrefActionEngine.append(session.getId());
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FRAME_TITLE_PERSPECTIVE_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+ </script>
+ <script language="javascript">
+ function openActionEngineContainer()
+ {
+ var link = "<%=hrefActionEngine.toString()%>";
+ var actionEngineContainer = window.open(link,"actionEngineContainer","height=100,width=350,status=yes,scrollbars=yes,resizable=yes");
+ if (actionEngineContainer.focus)
+ actionEngineContainer.focus();
+ }
+ </script>
+</head>
+<body class="gtoolbarbodymargin">
+<div id="globaltoolbar">
+<table width="100%" cellpadding=3 cellspacing=0 border=0>
+ <tr>
+ <td class="text" nowrap valign="middle" align="left" width="100%" height=25><%=controller.getMessage("TITLE_WSEXPLORER")%></td>
+ <%
+ String altHistoryBack = controller.getMessage("ALT_BACK");
+ String altHistoryForward = controller.getMessage("ALT_FORWARD");
+ String altActionEngine = controller.getMessage("ALT_ACTION_ENGINE");
+ String altUDDI = controller.getMessage("ALT_UDDI_PERSPECTIVE");
+ String altWSIL = controller.getMessage("ALT_WSIL_PERSPECTIVE");
+ String altWSDL = controller.getMessage("ALT_WSDL_PERSPECTIVE");
+ String altFavorites = controller.getMessage("ALT_FAVORITES_PERSPECTIVE");
+ %>
+ <td class="text" nowrap valign="middle" align="center" width=16 height=26><a href="<%=response.encodeURL(controller.getPathWithContext(RetrieveHistoryAction.getActionLink(ActionInputs.JUMP_BACK)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altHistoryBack%>" title="<%=altHistoryBack%>" src="<%=response.encodeURL(controller.getPathWithContext("images/back_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/back_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/back_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/back_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/back_enabled.gif"))%>';mouseup(this)"></a></td>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="<%=response.encodeURL(controller.getPathWithContext(RetrieveHistoryAction.getActionLink(ActionInputs.JUMP_FORWARD)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altHistoryForward%>" title="<%=altHistoryForward%>" src="<%=response.encodeURL(controller.getPathWithContext("images/forward_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/forward_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/forward_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/forward_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/forward_enabled.gif"))%>';mouseup(this)"></a></td>
+ <%
+ ActionEngine actionEngine = controller.getActionEngine();
+ if (actionEngine != null && actionEngine.getMode() != ActionEngine.MODE_DISABLED)
+ {
+ %>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="javascript:openActionEngineContainer()"><img class="normal" alt="<%=altActionEngine%>" title="<%=altActionEngine%>" src="<%=response.encodeURL(controller.getPathWithContext("images/eview16/actionengine.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/eview16/actionengine.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/eview16/actionengine.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/eview16/actionengine.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/eview16/actionengine.gif"))%>';mouseup(this)"></a></td>
+ <%
+ }
+ %>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_UDDI,false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altUDDI%>" title="<%=altUDDI%>" src="<%=response.encodeURL(controller.getPathWithContext("images/uddi_perspective_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/uddi_perspective_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/uddi_perspective_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/uddi_perspective_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/uddi_perspective_enabled.gif"))%>';mouseup(this)"></a></td>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSIL,false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altWSIL%>" title="<%=altWSIL%>" src="<%=response.encodeURL(controller.getPathWithContext("images/wsil_perspective_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/wsil_perspective_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/wsil_perspective_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/wsil_perspective_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/wsil_perspective_enabled.gif"))%>';mouseup(this)"></a></td>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSDL,false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altWSDL%>" title="<%=altWSDL%>" src="<%=response.encodeURL(controller.getPathWithContext("images/wsdl_perspective_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/wsdl_perspective_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/wsdl_perspective_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/wsdl_perspective_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/wsdl_perspective_enabled.gif"))%>';mouseup(this)"></a></td>
+ <td class="text" nowrap valign="middle" align="left" height=25><a href="<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_FAVORITES,false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" alt="<%=altFavorites%>" title="<%=altFavorites%>" src="<%=response.encodeURL(controller.getPathWithContext("images/favorites_perspective_enabled.gif"))%>" onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/favorites_perspective_highlighted.gif"))%>';mouseover(this);" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/favorites_perspective_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/favorites_perspective_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/favorites_perspective_enabled.gif"))%>';mouseup(this)"></a></td>
+ </tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/browserdetect.js b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/browserdetect.js
new file mode 100644
index 000000000..6b8135867
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/browserdetect.js
@@ -0,0 +1,15 @@
+//
+// Copyright (c) 2002, 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
+//
+
+function isMicrosoftInternetExplorer()
+{
+ return navigator.appName == "Microsoft Internet Explorer";
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/calendarbrowser.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/calendarbrowser.jsp
new file mode 100644
index 000000000..79b9ca265
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/calendarbrowser.jsp
@@ -0,0 +1,69 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String sessionId = session.getId();
+%>
+<script language="javascript">
+ var calendarBrowser;
+ var calendarBrowserClosed = true;
+ var calendarTargetRow = -1;
+ var calendarTarget;
+
+ function openCalendarBrowser(type,formContainerId,elementName,index)
+ {
+ var form = document.getElementById(formContainerId).getElementsByTagName("form").item(0);
+ var elements = form.elements[elementName];
+ if (index == 0 && elements.length == undefined)
+<%
+ // Only one element.
+%>
+ calendarTarget = elements;
+ else
+ {
+ calendarTargetRow = index;
+ calendarTarget = elements.item(index);
+ }
+ var link;
+ switch (type)
+ {
+ case <%=ActionInputs.CALENDAR_TYPE_DATE%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenCalendarBrowserAction.getActionLinkForDate(sessionId)))%>";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_DATETIME%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenCalendarBrowserAction.getActionLinkForDateTime(sessionId)))%>";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GYEARMONTH%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenCalendarBrowserAction.getActionLinkForGYearMonth(sessionId)))%>";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GDAY%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenCalendarBrowserAction.getActionLinkForGDay(sessionId)))%>";
+ break;
+ case <%=ActionInputs.CALENDAR_TYPE_GMONTHDAY%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenCalendarBrowserAction.getActionLinkForGMonthDay(sessionId)))%>";
+ break;
+ }
+ calendarBrowser = window.open(link,"calendarBrowser","height=350,width=264,status=yes,scrollbars=yes,resizable=yes");
+ if (calendarBrowser.focus)
+ calendarBrowser.focus();
+ }
+
+ function closeCalendarBrowser()
+ {
+ if (!calendarBrowserClosed)
+ calendarBrowser.close();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formsubmit.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formsubmit.jsp
new file mode 100644
index 000000000..3b3b4f36a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formsubmit.jsp
@@ -0,0 +1,34 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<script language="javascript">
+ var requestSubmitted = false;
+
+ function handleSubmit(form)
+ {
+ if (requestSubmitted)
+ {
+ alert("<%=HTMLUtils.JSMangle(controller.getMessage("MSG_SUBMIT_IN_PROGRESS"))%>");
+ return false;
+ }
+ requestSubmitted = true;
+ return true;
+ }
+
+ function resetSubmission()
+ {
+ requestSubmitted = false;
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formutils.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formutils.jsp
new file mode 100644
index 000000000..2dec80569
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/formutils.jsp
@@ -0,0 +1,41 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<script language="javascript">
+ <%// Requires browserdetect.js%>
+ function createHiddenElement(elementName,value)
+ {
+ var hiddenInput;
+ if (elementName.length > 0)
+ {
+ if (isMicrosoftInternetExplorer())
+ hiddenInput = document.createElement("<input name='"+elementName+"'>");
+ else
+ {
+ hiddenInput = document.createElement("input");
+ hiddenInput.setAttribute("name",elementName);
+ }
+ }
+ else
+ hiddenInput = document.createElement("input");
+ hiddenInput.type = "hidden";
+ hiddenInput.value = value;
+ return hiddenInput;
+ }
+
+ function resetFormInputs()
+ {
+ document.location.reload();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/panes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/panes.jsp
new file mode 100644
index 000000000..aa69c2ca7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/panes.jsp
@@ -0,0 +1,39 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<script language="javascript">
+ var perspectiveWorkArea = top.frames["<%=FrameNames.PERSPECTIVE_WORKAREA%>"];
+ var perspectiveToolbar = top.frames["<%=FrameNames.PERSPECTIVE_TOOLBAR%>"];
+ var perspectiveContent = top.frames["<%=FrameNames.PERSPECTIVE_CONTENT%>"];
+
+ function getPerspectiveContentFrameset()
+ {
+ return perspectiveContent.document.getElementsByTagName("frameset").item(0);
+ }
+
+ function toggleDoubleClickColumnTitle()
+ {
+ var doubleClickColumn = document.getElementById("doubleclickcolumn");
+ if (doubleClickColumn == null)
+ return;
+<%
+ String jsAltRestore = HTMLUtils.JSMangle(controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE"));
+%>
+ if (doubleClickColumn.title == "<%=jsAltRestore%>")
+ doubleClickColumn.title = "<%=HTMLUtils.JSMangle(controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE"))%>";
+ else
+ doubleClickColumn.title = "<%=jsAltRestore%>";
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/resumeproxyloadpage.js b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/resumeproxyloadpage.js
new file mode 100644
index 000000000..d5e1549fa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/resumeproxyloadpage.js
@@ -0,0 +1,17 @@
+//
+// Copyright (c) 2002, 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
+//
+
+function resumeProxyLoadPage()
+{
+ var proxyPage = parent.document.getElementById("proxyPage");
+ proxyPage.setAttribute("rows", "0,100%");
+ parent.frames[0].handleCompletion();
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/switchperspective.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/switchperspective.jsp
new file mode 100644
index 000000000..3fe6727a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/switchperspective.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext(controller.getCurrentPerspective().getPerspectiveContentPage()))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/tables.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/tables.jsp
new file mode 100644
index 000000000..99a24eefe
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/tables.jsp
@@ -0,0 +1,159 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<script language="javascript">
+ var numberOfHeaderRows = 1;
+ function getTable(tableContainerId)
+ {
+ var container = document.getElementById(tableContainerId);
+ return container.getElementsByTagName("table").item(0);
+ }
+
+ function setSelect(select,value)
+ {
+ for (var i=0;i<select.options.length;i++)
+ {
+ if (select.options[i].value == value)
+ {
+ select.selectedIndex = i;
+ return select.options[i].text;
+ }
+ }
+ }
+
+ function removeSelectedRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ {
+ table.deleteRow(i);
+ i--;
+ }
+ }
+ var checkAllCheckboxRow = table.rows[0];
+ var checkAllCheckbox = checkAllCheckboxRow.getElementsByTagName("input").item(0);
+ if (checkAllCheckbox.checked)
+ checkAllCheckbox.checked = false;
+ }
+
+ function handleRowCheckboxClick(e)
+ {
+ var checkbox;
+ if (isMicrosoftInternetExplorer())
+ checkbox = event.srcElement;
+ else
+ checkbox = e.target;
+ var cell = checkbox.parentNode;
+ var row = cell.parentNode;
+ if (checkbox.checked)
+ highlightRow(row,"rowcolor");
+ else
+ highlightRow(row,"tablecells");
+
+ var tbody = row.parentNode;
+ var table = tbody.parentNode;
+ var checkAllCheckbox = table.rows[0].getElementsByTagName("input").item(0);
+ if (checkAllCheckbox.checked)
+ checkAllCheckbox.checked = false;
+ }
+
+ function createRowCheckbox()
+ {
+ var rowCheckbox = document.createElement("input");
+ rowCheckbox.setAttribute("name",rowCheckboxName);
+ rowCheckbox.type = "checkbox";
+ rowCheckbox.title = "<%=HTMLUtils.JSMangle(controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX"))%>";
+ rowCheckbox.onclick = handleRowCheckboxClick;
+ return rowCheckbox;
+ }
+
+ function handleCheckAllClick(tableContainerId,checkAllCheckbox)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ rowCheckbox.checked = checkAllCheckbox.checked;
+ if (rowCheckbox.checked)
+ highlightRow(table.rows[i],"rowcolor");
+ else
+ highlightRow(table.rows[i],"tablecells");
+ }
+ }
+
+ function highlightRow(row,className)
+ {
+ var rowColumns = row.getElementsByTagName("td");
+ for (var i=1;i<rowColumns.length;i++)
+ rowColumns.item(i).className = className;
+ }
+
+ function highlightErrantRow(row,className)
+ {
+ var rowColumns = row.getElementsByTagName("td");
+ var column0 = rowColumns.item(0);
+ var column0Control = column0.childNodes[0];
+ var start;
+ if (column0Control.type == "checkbox")
+ {
+ column0Control.checked = true;
+ rowColumns.item(1).className = "firstcolumnerrantrowcolor";
+ start = 2;
+ }
+ else
+ {
+ column0.className = "firstcolumnerrantrowcolor";
+ start = 1;
+ }
+ rowColumns.item(rowColumns.length-1).className = "lastcolumnerrantrowcolor";
+ for (var i=start;i<rowColumns.length-1;i++)
+ rowColumns.item(i).className = "middleerrantrowcolor";
+ }
+
+ function twist(tableContainerId,twistImageName)
+ {
+ var tableContainer = document.getElementById(tableContainerId);
+ var twistImage = document.images[twistImageName];
+ if (tableContainer.style.display == "none")
+ {
+ tableContainer.style.display = "";
+ twistImage.src = "<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>";
+ twistImage.alt = "<%=HTMLUtils.JSMangle(controller.getMessage("ALT_TWIST_OPENED"))%>";
+ }
+ else
+ {
+ tableContainer.style.display = "none";
+ twistImage.src = "<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>";
+ twistImage.alt = "<%=HTMLUtils.JSMangle(controller.getMessage("ALT_TWIST_CLOSED"))%>";
+ }
+ }
+
+ function twistOpen(tableContainerId)
+ {
+ if (document.getElementById(tableContainerId).style.display == "none")
+ twist(tableContainerId,"x"+tableContainerId);
+ }
+
+ function getDefaultDisplayString(inputValue)
+ {
+ if (inputValue == null || inputValue.length < 1)
+ return "<%=HTMLUtils.JSMangle(controller.getMessage("TABLE_BLANK_PLACEHOLDER"))%>";
+ return inputValue;
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/toolbar.js b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/toolbar.js
new file mode 100644
index 000000000..bab1b2dbb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/toolbar.js
@@ -0,0 +1,30 @@
+//
+// Copyright (c) 2002, 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
+//
+
+function mouseover(img)
+{
+ img.className = "hover";
+}
+
+function mouseout(img)
+{
+ img.className = "normal";
+}
+
+function mousedown(img)
+{
+ img.className = "down";
+}
+
+function mouseup(img)
+{
+ return mouseout(img);
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/treeview.js b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/treeview.js
new file mode 100644
index 000000000..0e843fb42
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/treeview.js
@@ -0,0 +1,50 @@
+//
+// Copyright (c) 2002, 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
+//
+
+// Requires browserdetect.js
+
+var selectedAnchorName = "";
+
+function setSelectedAnchorName(anchorName)
+{
+ selectedAnchorName = anchorName;
+}
+
+function selectNode(anchorName,openImagePath)
+{
+ var isIE = isMicrosoftInternetExplorer();
+ if (selectedAnchorName.length > 0)
+ {
+ var selectedAnchor;
+ if (isIE)
+ selectedAnchor = document.anchors(selectedAnchorName);
+ else
+ selectedAnchor = document.anchors[selectedAnchorName];
+ if (selectedAnchor)
+ selectedAnchor.className = "unselectedTextAnchor";
+ }
+ if (anchorName.indexOf("-1") == -1)
+ {
+ if (isIE)
+ document.anchors(anchorName).className = "selectedTextAnchor";
+ else
+ document.anchors[anchorName].className = "selectedTextAnchor";
+ setSelectedAnchorName(anchorName);
+ alterImage(anchorName,openImagePath);
+ }
+ else
+ setSelectedAnchorName("");
+}
+
+function alterImage(imageName,imagePath)
+{
+ document.images[imageName].src = imagePath;
+}
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/wsdlbrowser.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/wsdlbrowser.jsp
new file mode 100644
index 000000000..4e45a7fbd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/scripts/wsdlbrowser.jsp
@@ -0,0 +1,48 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String sessionId = session.getId();
+%>
+<script language="javascript">
+ var wsdlWindow;
+ var wsdlWindowClosed = true;
+ var targetWSDLURLElement;
+ function openWSDLBrowser(formContainerId,type)
+ {
+ var form = document.getElementById(formContainerId).getElementsByTagName("form").item(0);
+ targetWSDLURLElement = form.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>;
+ var link;
+ switch (type)
+ {
+ case <%=ActionInputs.WSDL_TYPE_SERVICE%>:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenWSDLBrowserAction.getActionLinkForService(sessionId)))%>";
+ break;
+ case <%=ActionInputs.WSDL_TYPE_SERVICE_INTERFACE%>:
+ default:
+ link = "<%=response.encodeURL(controller.getPathWithContext(OpenWSDLBrowserAction.getActionLinkForServiceInterface(sessionId)))%>";
+ }
+ wsdlWindow = window.open(link,"wsdlWindow","height=300,width=450,status=yes,scrollbars=yes,resizable=yes");
+ if (wsdlWindow.focus)
+ wsdlWindow.focus();
+ }
+
+ function closeWSDLBrowser()
+ {
+ if (!wsdlWindowClosed)
+ wsdlWindow.close();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddItemsToFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddItemsToFavoritesActionJSP.jsp
new file mode 100644
index 000000000..1d820c7bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddItemsToFavoritesActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ AddItemsToFavoritesAction action = new AddItemsToFavoritesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddPublisherAssertionsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddPublisherAssertionsActionJSP.jsp
new file mode 100644
index 000000000..9cca0673b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddPublisherAssertionsActionJSP.jsp
@@ -0,0 +1,46 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ AddPublisherAssertionsAction action = new AddPublisherAssertionsAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (inputsValid)
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ }
+%>
+
+ <script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ </script>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddToFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddToFavoritesActionJSP.jsp
new file mode 100644
index 000000000..bbd65302f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/AddToFavoritesActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.AddToFavoritesAction"%>
+
+
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ AddToFavoritesAction action = new AddToFavoritesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceAdvancedActionJSP.jsp
new file mode 100644
index 000000000..dfbe50380
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceAdvancedActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action
+ BusPublishServiceAdvancedAction action = new BusPublishServiceAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceSimpleActionJSP.jsp
new file mode 100644
index 000000000..f0f3d805d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusPublishServiceSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ BusPublishServiceSimpleAction action = new BusPublishServiceSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusinessGetServicesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusinessGetServicesActionJSP.jsp
new file mode 100644
index 000000000..3ee5d2463
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/BusinessGetServicesActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<%
+ // Prepare the action.
+ BusinessGetServicesAction action = new BusinessGetServicesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ boolean businessExists = action.validateBusiness();
+
+ if (!businessExists)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_BUSINESS_NODE"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CheckFavoriteExistsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CheckFavoriteExistsActionJSP.jsp
new file mode 100644
index 000000000..e9f6ce3b8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CheckFavoriteExistsActionJSP.jsp
@@ -0,0 +1,65 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*"%>
+
+
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/AddToFavoritesActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+<%
+Enumeration paramNames = request.getParameterNames();
+while (paramNames.hasMoreElements()) {
+ String paramName = (String)paramNames.nextElement();
+ String[] paramValues = request.getParameterValues(paramName);
+ for (int i = 0; i < paramValues.length; i++) {
+%>
+ <input type="hidden" name="<%=paramName%>" value="<%=paramValues[i]%>">
+<%
+ }
+}
+%>
+</form>
+</body>
+</html>
+
+<%
+// Prepare the action.
+AddToFavoritesAction action = new AddToFavoritesAction(controller);
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+if (action.favoriteExists()) {
+%>
+ <script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(controller.getUDDIPerspective().getMessage("MSG_QUESTION_OVERWRITE_FAVORITES"))%>"))
+ document.forms[0].submit();
+ </script>
+<%
+}
+else {
+%>
+ <script language="javascript">
+ document.forms[0].submit();
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodeActionJSP.jsp
new file mode 100644
index 000000000..c9dec4361
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodeActionJSP.jsp
@@ -0,0 +1,35 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ NodeManager navigatorManager = controller.getUDDIPerspective().getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ ClearNavigatorNodeAction action;
+ if (selectedNode instanceof FolderNode)
+ action = new ClearNavigatorFolderNodeAction(controller);
+ else
+ action = new ClearNavigatorNodeAction(controller);
+
+ // The action may be executed programmed link.
+ action.populatePropertyTable(request);
+
+ boolean inputsValid = true;
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<%@ include file="/actions/ClearNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodesActionJSP.jsp
new file mode 100644
index 000000000..0a6d173bb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ClearNavigatorNodesActionJSP.jsp
@@ -0,0 +1,35 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ ClearNavigatorNodesAction action = new ClearNavigatorNodesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CompletePublisherAssertionsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CompletePublisherAssertionsActionJSP.jsp
new file mode 100644
index 000000000..157625584
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/CompletePublisherAssertionsActionJSP.jsp
@@ -0,0 +1,46 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ CompletePublisherAssertionsAction action = new CompletePublisherAssertionsAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (inputsValid)
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ }
+%>
+
+ <script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ </script>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/LaunchSubQueryAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/LaunchSubQueryAction.inc
new file mode 100644
index 000000000..c3bfee0d4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/LaunchSubQueryAction.inc
@@ -0,0 +1,56 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ String subQueryKey = action.getSubQueryKey();
+ StringBuffer newSubQueryKey = new StringBuffer();
+ if (subQueryKey != null && subQueryKey.length() > 0)
+ newSubQueryKey.append(action.getSubQueryKey()).append(':');
+ newSubQueryKey.append(action.getNewSubQuery());
+ FormTool formTool = (FormTool)action.getSelectedFormTool();
+ FormToolPropertiesInterface parentFormToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey);
+ FormToolPropertiesInterface subQueryFormToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(newSubQueryKey.toString());
+ String newSubQueryItemString = action.getNewSubQueryItem();
+ subQueryFormToolPI.setProperty(UDDIActionInputs.QUERY_ITEM,newSubQueryItemString);
+ subQueryFormToolPI.setProperty(UDDIActionInputs.SUBQUERY_GET,new Boolean(action.isSubQueryGet()));
+
+ // Always initialize the query name so the subquery makes sense.
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String parentQueryName = (String)parentFormToolPI.getProperty(UDDIActionInputs.QUERY_NAME);
+ if (parentQueryName == null)
+ parentQueryName = uddiPerspective.getMessage("DEFAULT_QUERY_NAME");
+ int newSubQueryItem = Integer.parseInt(newSubQueryItemString);
+ String newSubQueryItemTypeString = null;
+ switch (newSubQueryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ newSubQueryItemTypeString = uddiPerspective.getMessage("FORM_OPTION_BUSINESSES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ newSubQueryItemTypeString = uddiPerspective.getMessage("FORM_OPTION_SERVICES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ newSubQueryItemTypeString = uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES");
+ }
+ String[] messageParameters = {parentQueryName,newSubQueryItemTypeString};
+ subQueryFormToolPI.setProperty(UDDIActionInputs.QUERY_NAME,uddiPerspective.getMessage("DEFAULT_SUBQUERY_NAME",messageParameters));
+
+ Node node = action.getSelectedNavigatorNode();
+ int nodeId = node.getNodeId();
+ int toolId = node.getToolManager().getSelectedToolId();
+ int viewId = node.getViewId();
+ int viewToolId = node.getViewToolId();
+%>
+<script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(SelectFindToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,newSubQueryKey.toString(),false)))%>";
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ManageReferencedServicesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ManageReferencedServicesActionJSP.jsp
new file mode 100644
index 000000000..50f7b4127
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ManageReferencedServicesActionJSP.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ java.util.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ ManageReferencedServicesAction action = new ManageReferencedServicesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!inputsValid)
+ {
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+ if (!action.isSubQueryInitiated())
+ {
+ action.execute();
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/NewNodeAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/NewNodeAction.inc
new file mode 100644
index 000000000..2f9e480d1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/NewNodeAction.inc
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%
+ if (!inputsValid)
+ {
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ if (actionResult)
+ {
+ // Ensure that the selected node is visible.
+ controller.getUDDIPerspective().getNavigatorManager().makeSelectedNodeVisible();
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ navigatorContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/navigator_content.jsp"))%>";
+ propertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_container.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/uddi_perspective_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/OpenRegistryActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/OpenRegistryActionJSP.jsp
new file mode 100644
index 000000000..f6964fafd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/OpenRegistryActionJSP.jsp
@@ -0,0 +1,36 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+
+ OpenRegistryAction action = new OpenRegistryAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodeActionJSP.jsp
new file mode 100644
index 000000000..23832a40f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodeActionJSP.jsp
@@ -0,0 +1,90 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<%
+ // Prepare the action.
+ RefreshUDDINodeAction action = new RefreshUDDINodeAction(controller);
+
+ // The action may be executed via program link.
+ action.populatePropertyTable(request);
+ boolean isNodeDataValid = action.verifyNodeData();
+
+ boolean inputsValid = true;
+ String onLoadAction;
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ function processClearNodesForm()
+ {
+ var clearNodesForm = document.forms[0];
+ var submitClearNodesForm = false;
+<%
+ Vector staleNodes = action.getStaleNodes();
+ for (int i=0;i<staleNodes.size();i++)
+ {
+ Node staleNode = (Node)staleNodes.elementAt(i);
+%>
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_NODE",staleNode.getNodeName()))%>"))
+ {
+ clearNodesForm.appendChild(createHiddenElement("<%=ActionInputs.NODEID%>",<%=staleNode.getNodeId()%>));
+ submitClearNodesForm = true;
+ }
+<%
+ }
+%>
+ if (submitClearNodesForm)
+ clearNodesForm.submit();
+ }
+</script>
+</head>
+<body>
+<form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ClearNavigatorNodesActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" method="post" enctype="multipart/form-data">
+</form>
+<%
+ if (!isNodeDataValid)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ String nodeName = uddiPerspective.getNavigatorManager().getNode(nodeId).getNodeName();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_NODE",nodeName))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<script language="javascript">
+ processClearNodesForm();
+</script>
+<%@ include file = "/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodesActionJSP.jsp
new file mode 100644
index 000000000..4cc9f7e7d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RefreshUDDINodesActionJSP.jsp
@@ -0,0 +1,65 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<%
+ // Prepare the action.
+ RefreshUDDINodesAction action = new RefreshUDDINodesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ // Run the action
+ boolean actionResult = action.execute();
+%>
+<script language="javascript">
+ function processClearNodesForm()
+ {
+ var clearNodesForm = document.forms[0];
+<%
+ Vector staleNodes = action.getStaleNodes();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ for (int i=0;i<staleNodes.size();i++)
+ {
+ Node staleNode = (Node)staleNodes.elementAt(i);
+%>
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_NODE",staleNode.getNodeName()))%>"))
+ clearNodesForm.appendChild(createHiddenElement("<%=ActionInputs.NODEID%>",<%=staleNode.getNodeId()%>));
+<%
+ }
+%>
+ clearNodesForm.submit();
+ }
+</script>
+</head>
+<body>
+<form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ClearNavigatorNodesActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" method="post" enctype="multipart/form-data">
+</form>
+<script language="javascript">
+ processClearNodesForm();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessUUIDActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessUUIDActionJSP.jsp
new file mode 100644
index 000000000..777a3324b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessUUIDActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindBusinessUUIDAction action = new RegFindBusinessUUIDAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesAdvancedActionJSP.jsp
new file mode 100644
index 000000000..1ea61ee6d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesAdvancedActionJSP.jsp
@@ -0,0 +1,51 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ java.util.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindBusinessesAdvancedAction action = new RegFindBusinessesAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesSimpleActionJSP.jsp
new file mode 100644
index 000000000..f0465c122
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindBusinessesSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindBusinessesSimpleAction action = new RegFindBusinessesSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfaceUUIDActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfaceUUIDActionJSP.jsp
new file mode 100644
index 000000000..9c4f33951
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfaceUUIDActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServiceInterfaceUUIDAction action = new RegFindServiceInterfaceUUIDAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesAdvancedActionJSP.jsp
new file mode 100644
index 000000000..6dce4144e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesAdvancedActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServiceInterfacesAdvancedAction action = new RegFindServiceInterfacesAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesSimpleActionJSP.jsp
new file mode 100644
index 000000000..657817bca
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceInterfacesSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServiceInterfacesSimpleAction action = new RegFindServiceInterfacesSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceUUIDActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceUUIDActionJSP.jsp
new file mode 100644
index 000000000..6ceefaf93
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServiceUUIDActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServiceUUIDAction action = new RegFindServiceUUIDAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesAdvancedActionJSP.jsp
new file mode 100644
index 000000000..83931ca3b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesAdvancedActionJSP.jsp
@@ -0,0 +1,51 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ java.util.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServicesAdvancedAction action = new RegFindServicesAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesSimpleActionJSP.jsp
new file mode 100644
index 000000000..2074caf45
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegFindServicesSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegFindServicesSimpleAction action = new RegFindServicesSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessAdvancedActionJSP.jsp
new file mode 100644
index 000000000..b956daa25
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessAdvancedActionJSP.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishBusinessAdvancedAction action = new RegPublishBusinessAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessSimpleActionJSP.jsp
new file mode 100644
index 000000000..af0734eff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishBusinessSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishBusinessSimpleAction action = new RegPublishBusinessSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceAdvancedActionJSP.jsp
new file mode 100644
index 000000000..838050547
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceAdvancedActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishServiceAdvancedAction action = new RegPublishServiceAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceAdvancedActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceAdvancedActionJSP.jsp
new file mode 100644
index 000000000..b1569cccd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceAdvancedActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishServiceInterfaceAdvancedAction action = new RegPublishServiceInterfaceAdvancedAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceSimpleActionJSP.jsp
new file mode 100644
index 000000000..c251da5ab
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceInterfaceSimpleActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishServiceInterfaceSimpleAction action = new RegPublishServiceInterfaceSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceSimpleActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceSimpleActionJSP.jsp
new file mode 100644
index 000000000..a2412bcf3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RegPublishServiceSimpleActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RegPublishServiceSimpleAction action = new RegPublishServiceSimpleAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemovePublisherAssertionsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemovePublisherAssertionsActionJSP.jsp
new file mode 100644
index 000000000..b6aa6272b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemovePublisherAssertionsActionJSP.jsp
@@ -0,0 +1,46 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RemovePublisherAssertionsAction action = new RemovePublisherAssertionsAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (inputsValid)
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ }
+%>
+
+ <script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ </script>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemoveSubQueryItemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemoveSubQueryItemActionJSP.jsp
new file mode 100644
index 000000000..50ae31f0f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/RemoveSubQueryItemActionJSP.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ RemoveSubQueryItemAction action = new RemoveSubQueryItemAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ResizeUDDIFramesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ResizeUDDIFramesActionJSP.jsp
new file mode 100644
index 000000000..c1e0f4650
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ResizeUDDIFramesActionJSP.jsp
@@ -0,0 +1,54 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Create the action.
+ ResizeUDDIFramesAction action = new ResizeUDDIFramesAction(controller);
+
+ // Populate the action with the request properties.
+ boolean result = action.populatePropertyTable(request);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddiframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (result)
+ {
+ action.execute(false);
+
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ perspectiveContentFrameset.setAttribute("cols","<%=uddiPerspective.getPerspectiveContentFramesetCols()%>");
+ actionsContainerFrameset.setAttribute("rows","<%=uddiPerspective.getActionsContainerFramesetRows()%>");
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/uddi_perspective_content.jsp"))%>";
+</script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectCategoryNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectCategoryNodeActionJSP.jsp
new file mode 100644
index 000000000..78aa970f8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectCategoryNodeActionJSP.jsp
@@ -0,0 +1,77 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.uddi4j.util.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/cbpanes.jsp" flush="true"/>
+<%
+ // Prepare the action.
+ SelectCategoryNodeAction action = new SelectCategoryNodeAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute(false);
+
+ CategoryNode selectedNode = (CategoryNode)action.getSelectedNode();
+ NodeManager nodeManager = selectedNode.getNodeManager();
+ Node previousSelectedNode = nodeManager.getPreviousSelectedNode();
+ int selectedNodeId = selectedNode.getNodeId();
+%>
+<script language="javascript">
+<%
+ String treeContentVar = action.getTreeContentVar();
+ if (previousSelectedNode != null)
+ {
+ if (treeContentVar != null)
+ {
+%>
+ <%=treeContentVar%>.alterImage('<%=previousSelectedNode.getAnchorName()%>','<%=response.encodeURL(controller.getPathWithContext(previousSelectedNode.getClosedImagePath()))%>');
+<%
+ }
+ }
+ String selectedNodeAnchorName = selectedNode.getAnchorName();
+ if (treeContentVar != null)
+ {
+%>
+ <%=treeContentVar%>.selectNode('<%=selectedNodeAnchorName%>','<%=response.encodeURL(controller.getPathWithContext(selectedNode.getOpenImagePath()))%>');
+ <%=treeContentVar%>.location.hash = '#<%=selectedNodeAnchorName%>';
+<%
+ }
+
+ CategoryElement categoryElement = (CategoryElement)selectedNode.getTreeElement();
+ KeyedReference kr = categoryElement.getCategory();
+%>
+ categoryBrowserWindow.opener.targetCategoryKeyNameElement.value = "<%=kr.getKeyName()%>";
+ categoryBrowserWindow.opener.targetCategoryKeyValueElement.value = "<%=kr.getKeyValue()%>";
+ categoryBrowserWindow.opener.closeCategoryBrowser();
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectFindToolActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectFindToolActionJSP.jsp
new file mode 100644
index 000000000..063cf1f65
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectFindToolActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ SelectFindToolAction action = new SelectFindToolAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectNavigatorNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectNavigatorNodeActionJSP.jsp
new file mode 100644
index 000000000..8cb7d0ddb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectNavigatorNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ SelectNavigatorNodeAction action = new SelectNavigatorNodeAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectPropertiesToolActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectPropertiesToolActionJSP.jsp
new file mode 100644
index 000000000..474a40fa9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectPropertiesToolActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+SelectPropertiesToolAction action = new SelectPropertiesToolAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectSubQueryItemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectSubQueryItemActionJSP.jsp
new file mode 100644
index 000000000..259611023
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SelectSubQueryItemActionJSP.jsp
@@ -0,0 +1,51 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ SelectSubQueryItemAction action = new SelectSubQueryItemAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute(false);
+
+ if (!actionResult)
+ {
+ Hashtable propertyTable = action.getPropertyTable();
+ String subQueryKey = (String)propertyTable.get(UDDIActionInputs.SUBQUERY_KEY);
+ String subQueryListKey = (String)propertyTable.get(UDDIActionInputs.SUBQUERY_LIST_KEY);
+ int subQueryListItemId = Integer.parseInt((String)propertyTable.get(UDDIActionInputs.SUBQUERY_LIST_ITEMID));
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; UTF-8">
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_ITEM_VALIDATION_FAILED",action.getItemName()))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(RemoveSubQueryItemAction.getActionLink(subQueryKey,subQueryListKey,subQueryListItemId)))%>";
+</script>
+</body>
+</html>
+<%
+ }
+ else
+ {
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetBusinessActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetBusinessActionJSP.jsp
new file mode 100644
index 000000000..939e71b79
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetBusinessActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<%
+ // Prepare the action.
+ ServiceGetBusinessAction action = new ServiceGetBusinessAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ boolean serviceExists = action.validateService();
+
+ if (!serviceExists)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_SERVICE_NODE"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp
new file mode 100644
index 000000000..9cb5f9968
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceGetServiceInterfacesActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<%
+ // Prepare the action.
+ ServiceGetServiceInterfacesAction action = new ServiceGetServiceInterfacesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ boolean serviceExists = action.validateService();
+
+ if (!serviceExists)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_SERVICE_NODE"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetBusinessesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetBusinessesActionJSP.jsp
new file mode 100644
index 000000000..e5b287902
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetBusinessesActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<%
+ // Prepare the action.
+ ServiceInterfaceGetBusinessesAction action = new ServiceInterfaceGetBusinessesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ boolean siExists = action.validateServiceInterface();
+
+ if (!siExists)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_SI_NODE"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetServicesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetServicesActionJSP.jsp
new file mode 100644
index 000000000..12967b16c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ServiceInterfaceGetServicesActionJSP.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<%
+ // Prepare the action.
+ ServiceInterfaceGetServicesAction action = new ServiceInterfaceGetServicesAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ boolean siExists = action.validateServiceInterface();
+
+ if (!siExists)
+ {
+ int nodeId = Integer.parseInt((String)(action.getPropertyTable().get(ActionInputs.NODEID)));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_REMOVE_SI_NODE"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearNavigatorNodeAction.getActionLink(nodeId)))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ShowPublisherAssertionsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ShowPublisherAssertionsActionJSP.jsp
new file mode 100644
index 000000000..5acb1b3d1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ShowPublisherAssertionsActionJSP.jsp
@@ -0,0 +1,57 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ ShowPublisherAssertionsAction action = new ShowPublisherAssertionsAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!action.isSubQueryInitiated())
+ {
+ if (inputsValid)
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ }
+%>
+ <script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ </script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/LaunchSubQueryAction.inc" %>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SwitchPerspectiveFromUDDIActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SwitchPerspectiveFromUDDIActionJSP.jsp
new file mode 100644
index 000000000..5ce374bba
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/SwitchPerspectiveFromUDDIActionJSP.jsp
@@ -0,0 +1,30 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action
+SwitchPerspectiveFromUDDIAction action = new SwitchPerspectiveFromUDDIAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<jsp:include page="/scripts/switchperspective.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleCategoryNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleCategoryNodeActionJSP.jsp
new file mode 100644
index 000000000..2ea0cf635
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleCategoryNodeActionJSP.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/cbpanes.jsp" flush="true"/>
+<%
+ // Prepare the action.
+ ToggleCategoryNodeAction action = new ToggleCategoryNodeAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute(false);
+
+ String treeContentVar = action.getTreeContentVar();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+<%
+ if (treeContentVar != null)
+ {
+%>
+ if (isMicrosoftInternetExplorer())
+ <%=treeContentVar%>.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContentPage()))%>";
+ else
+ categoryBrowserWindow.location = "<%=response.encodeURL(controller.getPathWithContext(action.getTreeContainerPage()))%>";
+<%
+ }
+%>
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleNavigatorNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleNavigatorNodeActionJSP.jsp
new file mode 100644
index 000000000..adee74004
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/ToggleNavigatorNodeActionJSP.jsp
@@ -0,0 +1,21 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+ToggleNavigatorNodeAction action = new ToggleNavigatorNodeAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/ToggleNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferSubQueryResultsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferSubQueryResultsActionJSP.jsp
new file mode 100644
index 000000000..948ecd795
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferSubQueryResultsActionJSP.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ TransferSubQueryResultsAction action = new TransferSubQueryResultsAction(controller);
+
+ if (request.getParameter(UDDIActionInputs.SHOW_RESULTS_TARGET) != null)
+ action.enableShowResultsTarget();
+ else
+ action.populatePropertyTable(request);
+
+ boolean actionResult = action.execute();
+ Node targetNode = action.getTargetNode();
+ String targetNodeAnchorName = targetNode.getAnchorName();
+%>
+<script language="javascript">
+ navigatorContent.selectNode('<%=targetNodeAnchorName%>','<%=response.encodeURL(controller.getPathWithContext(targetNode.getOpenImagePath()))%>');
+ navigatorContent.location.hash='#<%=targetNodeAnchorName%>';
+ propertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_container.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferToAddCategoryDataActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferToAddCategoryDataActionJSP.jsp
new file mode 100644
index 000000000..02396a100
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/TransferToAddCategoryDataActionJSP.jsp
@@ -0,0 +1,44 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ String categoryTModelKey = request.getParameter(UDDIActionInputs.CATEGORY_TMODEL_KEY);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(navigatorManager.getSelectedNode());
+ RegistryDetailsTool regDetailsTool = regNode.getRegDetailsTool();
+ regDetailsTool.flagRowError(UDDIActionInputs.USER_DEFINED_CATEGORIES,categoryTModelKey);
+ regNode.getCurrentToolManager().setSelectedToolId(regDetailsTool.getToolId());
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(SelectNavigatorNodeAction.getActionLink(regNode.getNodeId(),false)))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIAddToWSDLPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIAddToWSDLPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..3dd95fbeb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIAddToWSDLPerspectiveActionJSP.jsp
@@ -0,0 +1,54 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.ShowPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.UDDIAddToWSDLPerspectiveAction"%>
+
+
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+UDDIAddToWSDLPerspectiveAction action = new UDDIAddToWSDLPerspectiveAction(controller);
+
+// Load the parameters for the action from the servlet request.
+boolean paramValid = action.populatePropertyTable(request);
+
+if (paramValid) {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ if (actionResult) {
+%>
+ <script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSDL,false)))%>";
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ </script>
+<%
+ }
+}
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToFileSystemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToFileSystemActionJSP.jsp
new file mode 100644
index 000000000..9103ff736
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToFileSystemActionJSP.jsp
@@ -0,0 +1,24 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.io.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ UDDIImportWSDLToFileSystemAction action = new UDDIImportWSDLToFileSystemAction(controller);
+%>
+<%@ include file="/actions/ImportToFileSystemAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..245820b3b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDIImportWSDLToWorkbenchActionJSP.jsp
@@ -0,0 +1,22 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIImportWSDLToWorkbenchAction action = new UDDIImportWSDLToWorkbenchAction(controller);
+%>
+<%@ include file="/actions/ImportToWorkbenchAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDILaunchWebServiceWizardActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDILaunchWebServiceWizardActionJSP.jsp
new file mode 100644
index 000000000..c331f6357
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UDDILaunchWebServiceWizardActionJSP.jsp
@@ -0,0 +1,19 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDILaunchWebServiceWizardAction action = new UDDILaunchWebServiceWizardAction(controller);
+%>
+<%@ include file="/actions/LaunchWebServiceWizardAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UnpublishActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UnpublishActionJSP.jsp
new file mode 100644
index 000000000..387471ec0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UnpublishActionJSP.jsp
@@ -0,0 +1,36 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ UnpublishAction action = new UnpublishAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateAction.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateAction.inc
new file mode 100644
index 000000000..08f402a31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateAction.inc
@@ -0,0 +1,47 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<%
+ if (!inputsValid)
+ {
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+ boolean refreshResult = action.refreshFromRegistry();
+
+ if (!refreshResult)
+ {
+ session.setAttribute(UDDIActionInputs.PUBLISH_ACTION,action);
+%>
+<script language="javascript">
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_PUBLISH_ITEM"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateNewPublishActionJSP.jsp"))%>";
+ else
+ propertiesContent.requestSubmitted = false;
+</script>
+<%
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateBusinessActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateBusinessActionJSP.jsp
new file mode 100644
index 000000000..371861c6d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateBusinessActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ UpdateBusinessAction action = new UpdateBusinessAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/UpdateAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateNewPublishActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateNewPublishActionJSP.jsp
new file mode 100644
index 000000000..de1471986
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateNewPublishActionJSP.jsp
@@ -0,0 +1,32 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ UpdateAction action = (UpdateAction)session.getAttribute(UDDIActionInputs.PUBLISH_ACTION);
+ session.removeAttribute(UDDIActionInputs.PUBLISH_ACTION);
+ boolean inputsValid = true;
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateRegistryActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateRegistryActionJSP.jsp
new file mode 100644
index 000000000..0eca62a41
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateRegistryActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ UpdateRegistryAction action = new UpdateRegistryAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/UpdateAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceActionJSP.jsp
new file mode 100644
index 000000000..ef7afb61e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceActionJSP.jsp
@@ -0,0 +1,86 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ UpdateServiceAction action = new UpdateServiceAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (!inputsValid)
+ {
+%>
+<script language="javascript">
+ propertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>";
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+</script>
+<%
+ }
+ else
+ {
+ boolean refreshServiceResult = action.refreshFromRegistry();
+ boolean refreshBusinessResult = action.refreshBusinessFromRegistry();
+ if (!refreshServiceResult)
+ {
+ session.setAttribute(UDDIActionInputs.PUBLISH_ACTION,action);
+ if (!refreshBusinessResult)
+ {
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_SERVICE_PUBLISH_BUSINESS"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateServiceNewPublishBusinessActionJSP.jsp"))%>";
+ else
+ propertiesContent.requestSubmitted = false;
+</script>
+<%
+ }
+ else
+ {
+%>
+<script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_PUBLISH_ITEM"))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateNewPublishActionJSP.jsp"))%>";
+ else
+ propertiesContent.requestSubmitted = false;
+</script>
+<%
+ }
+ }
+ else
+ {
+%>
+<%@ include file="/uddi/actions/NewNodeAction.inc" %>
+<%
+ }
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceInterfaceActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceInterfaceActionJSP.jsp
new file mode 100644
index 000000000..3345e2a85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceInterfaceActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ // Prepare the action.
+ UpdateServiceInterfaceAction action = new UpdateServiceInterfaceAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+%>
+<%@ include file="/uddi/actions/UpdateAction.inc" %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceNewPublishBusinessActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceNewPublishBusinessActionJSP.jsp
new file mode 100644
index 000000000..64e37cf11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions/UpdateServiceNewPublishBusinessActionJSP.jsp
@@ -0,0 +1,36 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+</head>
+<body>
+<%
+ UpdateServiceAction action = (UpdateServiceAction)session.getAttribute(UDDIActionInputs.PUBLISH_ACTION);
+ session.removeAttribute(UDDIActionInputs.PUBLISH_ACTION);
+
+ RegPublishTool regPublishTool = action.setupRegPublishTool();
+%>
+<script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(regPublishTool.getSelectToolActionHref(false)))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions_container.jsp
new file mode 100644
index 000000000..c11ac2730
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/actions_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%></title>
+</head>
+<frameset rows="<%=uddiPerspective.getActionsContainerFramesetRows()%>" bgcolor="#ECE9D8">
+ <frame name="<%=UDDIFrameNames.PROPERTIES_CONTAINER%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/properties_container.jsp"))%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+ <frame name="<%=UDDIFrameNames.STATUS_CONTAINER%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/status_container.jsp"))%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_browser.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_browser.jsp
new file mode 100644
index 000000000..45637778e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_browser.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ String categoryTModelKey = request.getParameter(UDDIActionInputs.CATEGORY_TMODEL_KEY);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ uddiPerspective.setCategoryTModelKey(categoryTModelKey);
+
+ StringBuffer toolbarLink = new StringBuffer("uddi/category_toolbar.jsp?");
+ toolbarLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("TITLE_CATEGORY_BROWSER")%></title>
+</head>
+<frameset rows="0,33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=UDDIFrameNames.CATEGORIES_WORKAREA%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_CATEGORIES_WORKAREA")%>" frameborder=0 noresize>
+ <frame name="<%=UDDIFrameNames.CATEGORIES_TOOLBAR%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_CATEGORIES_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext(toolbarLink.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=UDDIFrameNames.CATEGORIES_CONTENT%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_CATEGORIES_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext(OpenCategoryBrowserAction.getCategoryContentPage(sessionId,categoryTModelKey)))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_content.jsp
new file mode 100644
index 000000000..e3d7f1c85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_content.jsp
@@ -0,0 +1,113 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*" %>
+
+<jsp:useBean id="commonCategoryModels" class="java.util.Hashtable" scope="application"/>
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ String categoryTModelKey = request.getParameter(UDDIActionInputs.CATEGORY_TMODEL_KEY);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_CATEGORIES_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/treeview.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/treeview.js"))%>">
+ </script>
+<script language="javascript">
+ function transferToAddCategoryData()
+ {
+ top.opener.top.frames["<%=FrameNames.PERSPECTIVE_WORKAREA%>"].location = "<%=response.encodeURL(controller.getPathWithContext(TransferToAddCategoryDataAction.getActionLink(sessionId,categoryTModelKey)))%>";
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<%
+ // Check if the category is a common category.
+ CategoryModel categoryModel = (CategoryModel)commonCategoryModels.get(categoryTModelKey);
+ if (categoryModel == null)
+ {
+ // The category is user-defined.
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(navigatorManager.getSelectedNode());
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+ categoryModel = (CategoryModel)regElement.getUserDefinedCategory(categoryTModelKey);
+ }
+ byte rc = CategoryModel.OPERATION_SUCCESSFUL;
+ if (!categoryModel.isDataLoaded())
+ {
+ synchronized(categoryModel)
+ {
+ if (!categoryModel.isDataLoaded())
+ rc = categoryModel.loadFromDefaultDataFile();
+ }
+ }
+ if (rc != CategoryModel.OPERATION_SUCCESSFUL)
+ {
+%>
+<div id="contentborder">
+ <table>
+ <tr>
+ <td>
+ <%=uddiPerspective.getMessage("MSG_INFO_NO_CATEGORY_DATA",categoryModel.getDisplayName())%>
+ </td>
+ </tr>
+ <td height=10 valign="bottom">&nbsp;</td>
+ </tr>
+ <tr>
+ <td>
+ <%=uddiPerspective.getMessage("FORM_LABEL_ADD_CATEGORY_DATA","javascript:transferToAddCategoryData()")%>
+ </td>
+ </tr>
+ </table>
+</div>
+<%
+ }
+ else
+ {
+ NodeManager categoryManager = uddiPerspective.getCategoryManager(categoryModel);
+ String selectedAnchorName = "";
+ int focusedNodeId = categoryManager.getFocusedNodeId();
+ String focusedAnchorName = String.valueOf(focusedNodeId);
+ Node selectedNode = categoryManager.getSelectedNode();
+ if (selectedNode != null)
+ {
+ selectedAnchorName = selectedNode.getAnchorName();
+ if (focusedNodeId == selectedNode.getNodeId())
+ focusedAnchorName = selectedAnchorName;
+ }
+%>
+<div id="treecontentborder">
+<%=categoryManager.renderTreeView(response)%>
+</div>
+<script language="javascript">
+ self.location.hash="#<%=focusedAnchorName%>"
+ setSelectedAnchorName("<%=selectedAnchorName%>");
+</script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_toolbar.jsp
new file mode 100644
index 000000000..07dde7769
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/category_toolbar.jsp
@@ -0,0 +1,44 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_CATEGORIES_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+</head>
+<body class="toolbarbodymargin" onUnload="top.opener.categoryWindowClosed=true">
+<div id="toolbarborder">
+ <div id="toolbar">
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("uddi/images/category.gif"))%>" width=16 height=16></td>
+ <td valign="middle" align="left" width="*" height=25 nowrap class="text"><%=uddiPerspective.getMessage("ALT_CATEGORIES")%></td>
+ </tr>
+ </table>
+ </div>
+</div>
+<script language="javascript">
+ top.opener.categoryWindowClosed=false;
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/dWCommunity-data.txt b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/dWCommunity-data.txt
new file mode 100644
index 000000000..cd90abae1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/dWCommunity-data.txt
@@ -0,0 +1,2 @@
+dWCommunity#General#Web service information for the developerWorks Web services community#General
+dWCommunity#Speed Start#Web service information for the developerWorks Speed Start community#Speed Start \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/geo-data.txt b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/geo-data.txt
new file mode 100644
index 000000000..f978abdaa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/geo-data.txt
@@ -0,0 +1,1383 @@
+geo#--#World#--
+geo#AE#United Arab Emirates#--
+geo#AF#Afghanistan#--
+geo#AG#Antigua And Barbuda#--
+geo#AI#Anguilla#--
+geo#AL#Albania#--
+geo#AM#Armenia#--
+geo#AN#Netherlands Antilles#--
+geo#AO#Angola#--
+geo#AQ#Antarctica#--
+geo#AR#Argentina#--
+geo#AR-A#Salta#AR
+geo#AR-B#Buenos Aires#AR
+geo#AR-C#Distrito Federal#AR
+geo#AR-D#San Luis#AR
+geo#AR-E#Entre Rios#AR
+geo#AR-F#La Rioja#AR
+geo#AR-G#Santiago Del Estero#AR
+geo#AR-H#Chaco#AR
+geo#AR-J#San Juan#AR
+geo#AR-K#Catamarca#AR
+geo#AR-L#La Pampa#AR
+geo#AR-M#Mendoza#AR
+geo#AR-N#Misiones#AR
+geo#AR-P#Formosa#AR
+geo#AR-Q#Neuquen#AR
+geo#AR-R#Rio Negro#AR
+geo#AR-S#Santa Fe#AR
+geo#AR-T#Tucuman#AR
+geo#AR-U#Chubut#AR
+geo#AR-V#Tierra Del Fuego#AR
+geo#AR-W#Corrientes#AR
+geo#AR-X#Cordoba#AR
+geo#AR-Y#Jujuy#AR
+geo#AR-Z#Santa Cruz#AR
+geo#AS#American Samoa#--
+geo#AT#Austria#--
+geo#AU#Australia#--
+geo#AU-CT#Australian Capital Territory#AU
+geo#AU-NS#New South Wales#AU
+geo#AU-NT#Northern Territory#AU
+geo#AU-QL#Queensland#AU
+geo#AU-SA#South Australia#AU
+geo#AU-TS#Tasmania#AU
+geo#AU-VI#Victoria#AU
+geo#AU-WA#Western Australia#AU
+geo#AW#Aruba#--
+geo#AZ#Azerbaijan#--
+geo#BA#Bosnia-Hercegovina#--
+geo#BB#Barbados#--
+geo#BD#Bangladesh#--
+geo#BE#Belgium#--
+geo#BF#Burkina Faso#--
+geo#BG#Bulgaria#--
+geo#BH#Bahrain#--
+geo#BI#Burundi#--
+geo#BJ#Benin#--
+geo#BM#Bermuda#--
+geo#BN#Brunei Darussalam#--
+geo#BO#Bolivia#--
+geo#BR#Brazil#--
+geo#BR-AC#Acre#BR
+geo#BR-AL#Alagoas#BR
+geo#BR-AM#Amazonas#BR
+geo#BR-AP#Amapa#BR
+geo#BR-BA#Bahia#BR
+geo#BR-CE#Ceara#BR
+geo#BR-DF#Distrito Federal#BR
+geo#BR-ES#Espirito Santo#BR
+geo#BR-GO#Goias#BR
+geo#BR-MA#Maranhao#BR
+geo#BR-MG#Minas Gerais#BR
+geo#BR-MS#Mato Grosso Do Sul#BR
+geo#BR-MT#Mato Grosso#BR
+geo#BR-PA#Para#BR
+geo#BR-PB#Paraiba#BR
+geo#BR-PE#Pernambuco#BR
+geo#BR-PI#Piaui#BR
+geo#BR-PR#Parana#BR
+geo#BR-RJ#Rio De Janeiro#BR
+geo#BR-RN#Rio Grande Do Norte#BR
+geo#BR-RO#Rondonia#BR
+geo#BR-RR#Roraima#BR
+geo#BR-RS#Rio Grande Do Sul#BR
+geo#BR-SC#Santa Catarina#BR
+geo#BR-SE#Sergipe#BR
+geo#BR-SP#Sao Paulo#BR
+geo#BR-TO#Tocantina#BR
+geo#BS#Bahamas#--
+geo#BT#Bhutan#--
+geo#BU#Burma (See MM Myanmar)#--
+geo#BW#Botswana#--
+geo#BY#Belarus#--
+geo#BY-BR#Brestskaya voblasts'#BY
+geo#BY-HO#Homyel'skaya voblasts'#BY
+geo#BY-HR#Hrodzenskaya voblasts'#BY
+geo#BY-MA#Mahilyowskaya voblasts'#BY
+geo#BY-MI#Minskaya voblasts'#BY
+geo#BY-VI#Vitsyebskaya voblasts'#BY
+geo#BZ#Belize#--
+geo#CA#Canada#--
+geo#CA-AB#Alberta#CA
+geo#CA-BC#British Columbia#CA
+geo#CA-MB#Manitoba#CA
+geo#CA-NB#New Brunswick#CA
+geo#CA-NF#Newfoundland#CA
+geo#CA-NS#Nova Scotia#CA
+geo#CA-NT#Northwest Territories#CA
+geo#CA-NU#Nunavut#CA
+geo#CA-ON#Ontario#CA
+geo#CA-PE#Prince Edward Island#CA
+geo#CA-QC#Quebec#CA
+geo#CA-SK#Saskatchewan#CA
+geo#CA-YT#Yukon Territory#CA
+geo#CC#Cocos (Keeling) Islands#--
+geo#CD#"Congo, Democratic Republic of"#--
+geo#CF#Central African Republic#--
+geo#CG#Congo#--
+geo#CH#Switzerland#--
+geo#CH-AG#Aargau#CH
+geo#CH-AI#Appenzell Inner-Rhoden#CH
+geo#CH-AR#Appenzell Ausser-Rhoden#CH
+geo#CH-BE#Bern#CH
+geo#CH-BL#Basel-Landschaft#CH
+geo#CH-BS#Basel-Stadt#CH
+geo#CH-FR#Fribourg#CH
+geo#CH-GE#Genève#CH
+geo#CH-GL#Glarus#CH
+geo#CH-GR#Graubünden#CH
+geo#CH-JU#Jura#CH
+geo#CH-LU#Luzern#CH
+geo#CH-NE#Neuchatel#CH
+geo#CH-NW#Nidwalden#CH
+geo#CH-OW#Obwalden#CH
+geo#CH-SG#St Gallen#CH
+geo#CH-SH#Schaffhausen#CH
+geo#CH-SO#Solothurn#CH
+geo#CH-SZ#Schwyz#CH
+geo#CH-TG#Thurgau#CH
+geo#CH-TI#Ticino#CH
+geo#CH-UR#Uri#CH
+geo#CH-VD#Vaud#CH
+geo#CH-VS#Valais#CH
+geo#CH-ZG#Zug#CH
+geo#CH-ZH#Zürich#CH
+geo#CI#Cote D'Ivoire#--
+geo#CK#Cook Islands#--
+geo#CL#Chile#--
+geo#CM#Cameroon#--
+geo#CN#China#--
+geo#CN-11#Beijing#CN
+geo#CN-12#Tianjin#CN
+geo#CN-13#Hebei#CN
+geo#CN-14#Shanxi#CN
+geo#CN-15#Nei Mongol#CN
+geo#CN-21#Liaoning#CN
+geo#CN-22#Jilin#CN
+geo#CN-23#Heilongjiang#CN
+geo#CN-31#Shanghai#CN
+geo#CN-32#Jiangsu#CN
+geo#CN-33#Zhejiang#CN
+geo#CN-34#Anhui#CN
+geo#CN-35#Fujian#CN
+geo#CN-36#Jiangxi#CN
+geo#CN-37#Shandong#CN
+geo#CN-41#Henan#CN
+geo#CN-42#Hubei#CN
+geo#CN-43#Hunan#CN
+geo#CN-44#Guangdong#CN
+geo#CN-45#Guangxi#CN
+geo#CN-46#Hainan#CN
+geo#CN-51#Sichuan#CN
+geo#CN-52#Guizhou#CN
+geo#CN-53#Yunnan#CN
+geo#CN-54#Xizang#CN
+geo#CN-61#Shaanxi#CN
+geo#CN-62#Gansu#CN
+geo#CN-63#Qinghai#CN
+geo#CN-64#Ningxia#CN
+geo#CN-65#Xinjiang#CN
+geo#CN-71#Taiwan#CN
+geo#CN-91#Xianggang (Hong Kong)#CN
+geo#CN-92#Aomen (Macau)#CN
+geo#CO#Colombia#--
+geo#CR#Costa Rica#--
+geo#CS#Former Czechoslovakia#--
+geo#CU#Cuba#--
+geo#CV#Cape Verde#--
+geo#CX#Christmas Islands#--
+geo#CY#Cyprus#--
+geo#CZ#Czech Republic#--
+geo#DE#"Germany, Federal Republic of"#--
+geo#DE-BE#Berlin#DE
+geo#DE-BR#Brandenburg#DE
+geo#DE-BW#Baden-Württemberg#DE
+geo#DE-BY#Bayern#DE
+geo#DE-HB#Bremen (Hansestadt)#DE
+geo#DE-HE#Hessen#DE
+geo#DE-HH#Hamburg (Hansestadt)#DE
+geo#DE-MV#Mecklenburg-Vorpommern#DE
+geo#DE-NI#Niedersachsen#DE
+geo#DE-NW#Nordrhein-Westfalen#DE
+geo#DE-RP#Rheinland-Pfalz#DE
+geo#DE-SH#Schleswig-Holstein#DE
+geo#DE-SL#Saarland#DE
+geo#DE-SN#Sachsen#DE
+geo#DE-ST#Sachsen-Anhalt#DE
+geo#DE-TH#Thüringen#DE
+geo#DJ#Djibouti#--
+geo#DK#Denmark#--
+geo#DM#Dominica#--
+geo#DO#Dominican Republic#--
+geo#DO-02#Azua#DO
+geo#DO-03#Bahoruco#DO
+geo#DO-04#Barahona#DO
+geo#DO-05#Dajabón#DO
+geo#DO-06#Duarte#DO
+geo#DO-08#El Seybo#DO
+geo#DO-09#Espaillat#DO
+geo#DO-30#Hato Mayor#DO
+geo#DO-10#Independencia#DO
+geo#DO-11#La Altagracia#DO
+geo#DO-07#La Estrelleta#DO
+geo#DO-12#La Romana#DO
+geo#DO-13#La Vega#DO
+geo#DO-14#María Trinidad Sánchez#DO
+geo#DO-28#Monsenor Nouel#DO
+geo#DO-15#Monte Cristi#DO
+geo#DO-29#Monte Plata#DO
+geo#DO-16#Pedernales#DO
+geo#DO-17#Peravia#DO
+geo#DO-18#Puerto Plata#DO
+geo#DO-19#Solcedo#DO
+geo#DO-20#Samaná#DO
+geo#DO-21#San Cristóbal#DO
+geo#DO-22#San Juan#DO
+geo#DO-23#San Pedro de Macorís#DO
+geo#DO-24#Sánchez Ramírez#DO
+geo#DO-25#Santiago#DO
+geo#DO-26#Santiago Rodríguez#DO
+geo#DO-27#Valverde#DO
+geo#DZ#Algeria#--
+geo#EC#Ecuador#--
+geo#EE#Estonia#--
+geo#EG#Egypt#--
+geo#EH#Western Sahara#--
+geo#ER#Eritrea#--
+geo#ER-AN#Anseba#ER
+geo#ER-DU#Debub#ER
+geo#ER-DK#Debubawi Keyih Bahri [Debub-Keih-Bahri]#ER
+geo#ER-GB#Gash-Barka#ER
+geo#ER-MA#Maakel [Maekel]#ER
+geo#ER-SK#Semenawi Keyih Bahri [Semien-Keih-Bahri]#ER
+geo#ES#Spain#--
+geo#ES-AN#Andalucía#ES
+geo#ES-AL#Almería#ES-AN
+geo#ES-CA#Cádiz#ES-AN
+geo#ES-CO#Córdoba#ES-AN
+geo#ES-GR#Granada#ES-AN
+geo#ES-H#Huelva#ES-AN
+geo#ES-J#Jaén#ES-AN
+geo#ES-MA#Málaga#ES-AN
+geo#ES-SE#Sevilla#ES-AN
+geo#ES-AR#Aragón#ES
+geo#ES-HU#Huesca#ES-AR
+geo#ES-TE#Teruel#ES-AR
+geo#ES-Z#Zaragoza#ES-AR
+geo#ES-O#"Asturias, Principado de"#ES
+geo#ES-CN#Canarias#ES
+geo#ES-GC#Las Palmas#ES-CN
+geo#ES-TF#Santa Cruz de Tenerife#ES-CN
+geo#ES-S#Cantabria#ES
+geo#ES-CM#Castilla-La Mancha#ES
+geo#ES-AB#Albacete#ES-CM
+geo#ES-CR#Cuidad Real#ES-CM
+geo#ES-CU#Cuenca#ES-CM
+geo#ES-GU#Guadalajara#ES-CM
+geo#ES-TO#Toledo#ES-CM
+geo#ES-CL#Castilla y León#ES
+geo#ES-AV#Ávila#ES-CL
+geo#ES-BU#Burgos#ES-CL
+geo#ES-LE#León#ES-CL
+geo#ES-P#Palencia#ES-CL
+geo#ES-SA#Salamanca#ES-CL
+geo#ES-SG#Segovia#ES-CL
+geo#ES-SO#Soria#ES-CL
+geo#ES-VA#Valladolid#ES-CL
+geo#ES-ZA#Zamora#ES-CL
+geo#ES-CT#Cataluna#ES
+geo#ES-B#Barcelona#ES-CT
+geo#ES-GE#Girona [Gerona]#ES-CT
+geo#ES-L#Lleida [Léruda]#ES-CT
+geo#ES-T#Tarragona#ES-CT
+geo#ES-EX#Extremadura#ES
+geo#ES-BA#Badajoz#ES-EX
+geo#ES-CC#Cáceres#ES-EX
+geo#ES-GA#Galicia#ES
+geo#ES-C#La Coruna#ES-GA
+geo#ES-LU#Lugo#ES-GA
+geo#ES-OR#Orense#ES-GA
+geo#ES-PO#Pontevedra#ES-GA
+geo#ES-PM#Islas Baleares#ES
+geo#ES-LO#La Rioja#ES
+geo#ES-M#"Madrid, Comunidad de"#ES
+geo#ES-MU#"Murcia, Región de"#ES
+geo#ES-NA#"Navarra, Comunidad Foral de"#ES
+geo#ES-PV#País Vasci#ES
+geo#ES-VI#Álava#ES-PV
+geo#ES-SS#Guipúzcoa#ES-PV
+geo#ES-BI#Vizcaya#ES-PV
+geo#ES-VC#"Valenciana, Comunidad"#ES
+geo#ES-A#Alicante#ES-VC
+geo#ES-CS#Castellón#ES-VC
+geo#ES-V#Valencia#ES-VC
+geo#ES-CE#Ceuta#ES
+geo#ES-ML#Melilla#ES
+geo#ET#Ethiopia#--
+geo#FI#Finland#--
+geo#FI-AL#Ahvenanmaan Maakunta (Fi) Ålands Län (Sv)#FI
+geo#FI-ES#Etelä-Suomen Lääni (Fi) Södra Finlands Län (Sv)#FI
+geo#FI-IS#Itä-Suomen Lääni (Fi) Östra Finlands Län (Sv)#FI
+geo#FI-LL#Lapin Lääni (Fi) Laplands Län (Sv)#FI
+geo#FI-LS#Länsi-Suomen Lääni (Fi) Västra Finlands Län (Sv)#FI
+geo#FI-OL#Oulun Lääni (Fi) Uleåborgs Län (Sv)#FI
+geo#FJ#Fiji#--
+geo#FK#Falkland Islands (Malvinas)#--
+geo#FM#Federated States Of Micronesia#--
+geo#FO#Faeroe Islands#--
+geo#FR#France#--
+geo#FR-01#Ain#FR-V
+geo#FR-02#Aisne#FR-S
+geo#FR-03#Allier#FR-C
+geo#FR-04#Alpes-De-Haute-Provence#FR-U
+geo#FR-05#Hautes-Alpes#FR-U
+geo#FR-06#Alpes-Maritimes#FR-U
+geo#FR-07#Ardèche#FR-V
+geo#FR-08#Ardennes#FR-G
+geo#FR-09#Ariège#FR-N
+geo#FR-10#Aube#FR-G
+geo#FR-11#Aude#FR-K
+geo#FR-12#Aveyron#FR-N
+geo#FR-13#Bouches-Du-Rhône#FR-U
+geo#FR-14#Calvados#FR-P
+geo#FR-15#Cantal#FR-C
+geo#FR-16#Charente#FR-T
+geo#FR-17#Charente-Maritime#FR-T
+geo#FR-18#Cher#FR-F
+geo#FR-19#Corrèze#FR-L
+geo#FR-21#Côte-D'Or#FR-D
+geo#FR-22#Côtes-D'Armor#FR-E
+geo#FR-23#Creuse#FR-L
+geo#FR-24#Dordogne#FR-B
+geo#FR-25#Doubs#FR-I
+geo#FR-26#Drôme#FR-V
+geo#FR-27#Eure#FR-Q
+geo#FR-28#Eure-Et-Loir#FR-F
+geo#FR-29#Finistère#FR-E
+geo#FR-2A#Corse-Du-Sud#FR-H
+geo#FR-2B#Haute-Corse#FR-H
+geo#FR-30#Gard#FR-K
+geo#FR-31#Haute-Garonne#FR-N
+geo#FR-32#Gers#FR-N
+geo#FR-33#Gironde#FR-B
+geo#FR-34#Hérault#FR-K
+geo#FR-35#Ille-Et-Vilaine#FR-E
+geo#FR-36#Indre#FR-F
+geo#FR-37#Indre-Et-Loire#FR-F
+geo#FR-38#Isère#FR-V
+geo#FR-39#Jura#FR-I
+geo#FR-40#Landes#FR-B
+geo#FR-41#Loir-Et-Cher#FR-F
+geo#FR-42#Loire#FR-V
+geo#FR-43#Haute-Loire#FR-C
+geo#FR-44#Loire-Atlantique#FR-R
+geo#FR-45#Loiret#FR-F
+geo#FR-46#Lot#FR-N
+geo#FR-47#Lot-Et-Garonne#FR-B
+geo#FR-48#Lozère#FR-K
+geo#FR-49#Maine-Et-Loire#FR-R
+geo#FR-50#Manche#FR-P
+geo#FR-51#Marne#FR-G
+geo#FR-52#Haute-Marne#FR-G
+geo#FR-53#Mayenne#FR-R
+geo#FR-54#Meurthe-Et-Moselle#FR-M
+geo#FR-55#Meuse#FR-M
+geo#FR-56#Morbihan#FR-E
+geo#FR-57#Moselle#FR-M
+geo#FR-58#Nièvre#FR-D
+geo#FR-59#Nord#FR-O
+geo#FR-60#Oise#FR-S
+geo#FR-61#Orne#FR-P
+geo#FR-62#Pas-De-Calais#FR-O
+geo#FR-63#Puy-De-Dôme#FR-C
+geo#FR-64#Pyrénées-Atlantiques#FR-B
+geo#FR-65#Hautes-Pyrénées#FR-N
+geo#FR-66#Pyrénées-Orientales#FR-K
+geo#FR-67#Bas-Rhin#FR-A
+geo#FR-68#Haut-Rhin#FR-A
+geo#FR-69#Rhône#FR-V
+geo#FR-70#Haute-Saône#FR-I
+geo#FR-71#Saône-Et-Loire#FR-D
+geo#FR-72#Sarthe#FR-R
+geo#FR-73#Savoie#FR-V
+geo#FR-74#Haute-Savoie#FR-V
+geo#FR-75#Paris#FR-J
+geo#FR-76#Seine-Maritime#FR-Q
+geo#FR-77#Seine-Et-Marne#FR-J
+geo#FR-78#Yvelines#FR-J
+geo#FR-79#Deux-Sèvres#FR-B
+geo#FR-80#Somme#FR-S
+geo#FR-81#Tarn#FR-N
+geo#FR-82#Tarn-Et-Garonne#FR-N
+geo#FR-83#Var#FR-U
+geo#FR-84#Vaucluse#FR-U
+geo#FR-85#Vendée#FR-R
+geo#FR-86#Vienne#FR-T
+geo#FR-87#Haute-Vienne#FR-L
+geo#FR-88#Vosges#FR-M
+geo#FR-89#Yonne#FR-D
+geo#FR-90#Territoire De Belfort#FR-I
+geo#FR-91#Essonne#FR-J
+geo#FR-92#Hauts-De-Seine#FR-J
+geo#FR-93#Seine-Saint-Denis#FR-J
+geo#FR-94#Val-De-Marne#FR-J
+geo#FR-95#Val-D'Oise#FR-J
+geo#FR-A#Alsace#FR
+geo#FR-B#Aquitaine#FR
+geo#FR-C#Auvergne#FR
+geo#FR-D#Bourgogne#FR
+geo#FR-E#Bretagne#FR
+geo#FR-F#Centre#FR
+geo#FR-G#Champagne-Ardenne#FR
+geo#FR-H#Corse#FR
+geo#FR-I#Franche-Comté#FR
+geo#FR-J#Ile-De-France#FR
+geo#FR-K#Languedoc-Roussillon#FR
+geo#FR-L#Limousin#FR
+geo#FR-M#Lorraine#FR
+geo#FR-N#Midi-Pyrénées#FR
+geo#FR-O#Nord-Pas-De-Calais#FR
+geo#FR-P#Basse-Normandie#FR
+geo#FR-Q#Haute-Normandie#FR
+geo#FR-R#Pays De La Loire#FR
+geo#FR-S#Picardie#FR
+geo#FR-T#Poitou-Charentes#FR
+geo#FR-U#Provence-Alpes-Côte D'Azur#FR
+geo#FR-V#Rhône-Alpes#FR
+geo#GA#Gabon#--
+geo#GB#United Kingdom#--
+geo#GB-ANT#Antrim#GB-NIR
+geo#GB-ARD#Ards#GB-NIR
+geo#GB-ARM#Armagh#GB-NIR
+geo#GB-AVN#Avon#GB-ENG
+geo#GB-BDF#Bedfordshire#GB-ENG
+geo#GB-BFS#Belfast#GB-NIR
+geo#GB-BKM#Buckinghamshire#GB-ENG
+geo#GB-BLA#Ballymena#GB-NIR
+geo#GB-BLY#Ballymoney#GB-NIR
+geo#GB-BNB#Banbridge#GB-NIR
+geo#GB-BOR#Borders Region#GB-SCT
+geo#GB-BRK#Berkshire#GB-ENG
+geo#GB-CAM#Cambridgeshire#GB-ENG
+geo#GB-CEN#Central Region#GB-SCT
+geo#GB-CGV#Craigavon#GB-NIR
+geo#GB-CHA#Channel Islands#GB
+geo#GB-CHS#Cheshire#GB-ENG
+geo#GB-CKF#Carrickfergus#GB-NIR
+geo#GB-CKT#Cookstown#GB-NIR
+geo#GB-CLR#Coleraine#GB-NIR
+geo#GB-CLV#Cleveland#GB-ENG
+geo#GB-CMA#Cumbria#GB-ENG
+geo#GB-CON#Cornwall#GB-ENG
+geo#GB-CSR#Castlereagh#GB-NIR
+geo#GB-CWD#Clwyd#GB-WLS
+geo#GB-DBY#Derbyshire#GB-ENG
+geo#GB-DFD#Dyfed#GB-WLS
+geo#GB-DGN#Dungannon#GB-NIR
+geo#GB-DGY#Dumfries & Galloway Region#GB-SCT
+geo#GB-DOR#Dorset#GB-ENG
+geo#GB-DOW#Down#GB-NIR
+geo#GB-DRY#Derry#GB-NIR
+geo#GB-DUR#Durham#GB-ENG
+geo#GB-DVV#Devon#GB-ENG
+geo#GB-ENG#England#GB
+geo#GB-ESS#Essex#GB-ENG
+geo#GB-ESX#East Sussex#GB-ENG
+geo#GB-FER#Fermanagh#GB-NIR
+geo#GB-FIF#Fife Region#GB-SCT
+geo#GB-GLS#Gloucestershire#GB-ENG
+geo#GB-GMP#Grampian Region#GB-SCT
+geo#GB-GNT#Gwent#GB-WLS
+geo#GB-GSY#Guernsey#GB-CHA
+geo#GB-GTL#Greater London#GB-ENG
+geo#GB-GTM#Greater Manchester#GB-ENG
+geo#GB-GWN#Gwynedd#GB-WLS
+geo#GB-HAM#Hampshire#GB-ENG
+geo#GB-HLD#Highland Region#GB-SCT
+geo#GB-HRT#Hertfordshire#GB-ENG
+geo#GB-HUM#Humberside#GB-ENG
+geo#GB-HWR#Hereford And Worcester#GB-ENG
+geo#GB-IOM#Isle Of Man#GB
+geo#GB-IOS#Isles Of Scilly#GB-ENG
+geo#GB-IOW#Isle Of Wight#GB-ENG
+geo#GB-JSY#Jersey#GB-CHA
+geo#GB-KEN#Kent#GB-ENG
+geo#GB-LAN#Lancashire#GB-ENG
+geo#GB-LEC#Leicestershire#GB-ENG
+geo#GB-LIN#Lincolnshire#GB-ENG
+geo#GB-LMV#Limavady#GB-NIR
+geo#GB-LRN#Larne#GB-NIR
+geo#GB-LSB#Lisburn#GB-NIR
+geo#GB-LTN#Lothian Region#GB-SCT
+geo#GB-MFT#Magherafelt#GB-NIR
+geo#GB-MGM#Mid Glamorgan#GB-WLS
+geo#GB-MSY#Merseyside#GB-ENG
+geo#GB-MYL#Moyle#GB-NIR
+geo#GB-NBL#Northumberland#GB-ENG
+geo#GB-NDN#North Down#GB-NIR
+geo#GB-NFK#Norfolk#GB-ENG
+geo#GB-NIR#Northern Ireland#GB
+geo#GB-NTA#Newtonabbey#GB-NIR
+geo#GB-NTH#Northamptonshire#GB-ENG
+geo#GB-NTT#Nottinghamshire#GB-ENG
+geo#GB-NYK#North Yorkshire#GB-ENG
+geo#GB-NYM#Newry And Mourne#GB-NIR
+geo#GB-OMH#Omagh#GB-NIR
+geo#GB-ORK#Orkney#GB-SCT
+geo#GB-OXF#Oxfordshire#GB-ENG
+geo#GB-POW#Powys#GB-WLS
+geo#GB-SCT#Scotland#GB
+geo#GB-SFK#Suffolk#GB-ENG
+geo#GB-SGM#South Glamorgan#GB-WLS
+geo#GB-SHR#Shropshire#GB-ENG
+geo#GB-SOM#Somerset#GB-ENG
+geo#GB-SRY#Surrey#GB-ENG
+geo#GB-STB#Strabane#GB-NIR
+geo#GB-STD#Strathclyde Region#GB-SCT
+geo#GB-STS#Staffordshire#GB-ENG
+geo#GB-SYK#South Yorkshire#GB-ENG
+geo#GB-TAY#Tayside Region#GB-SCT
+geo#GB-TWR#Tyne And Wear#GB-ENG
+geo#GB-WAR#Warwickshire#GB-ENG
+geo#GB-WGM#West Glamorgan#GB-WLS
+geo#GB-WIL#Wiltshire#GB-ENG
+geo#GB-WIS#Western Isles#GB-SCT
+geo#GB-WLS#Wales#GB
+geo#GB-WMD#West Midlands#GB-ENG
+geo#GB-WSX#West Sussex#GB-ENG
+geo#GB-WYK#West Yorkshire#GB-ENG
+geo#GB-ZET#Shetland (Zetland)#GB-SCT
+geo#GD#Grenada#--
+geo#GE#Georgia#--
+geo#GF#French Guiana#--
+geo#GH#Ghana#--
+geo#GI#Gibraltar#--
+geo#GL#Greenland#--
+geo#GM#Gambia#--
+geo#GN#Guinea#--
+geo#GP#Guadeloupe#--
+geo#GQ#Equatorial Guinea#--
+geo#GR#Greece#--
+geo#GS#Georgia & Sandwich Islands#--
+geo#GT#Guatemala#--
+geo#GU#Guam#--
+geo#GW#Guinea-Bissau#--
+geo#GY#Guyana#--
+geo#HK#Hong Kong#--
+geo#HN#Honduras#--
+geo#HR#Croatia#--
+geo#HT#Haiti#--
+geo#HU#Hungary#--
+geo#ID#Indonesia#--
+geo#IE#Ireland#--
+geo#IL#Israel#--
+geo#IN#India#--
+geo#IO#Indian Ocean Territory#--
+geo#IQ#Iraq#--
+geo#IR#"Iran, Islamic Republic of"#--
+geo#IS#Iceland#--
+geo#IT#Italy#--
+geo#IT-21#Piemonte#IT
+geo#IT-AL#Alessandria#IT-21
+geo#IT-AT#Asti#IT-22
+geo#IT-BI#Biella#IT-23
+geo#IT-AO#Aosta Aoste (fr)#IT-23
+geo#IT-CN#Cuneo#IT-24
+geo#IT-NO#Novara#IT-25
+geo#IT-BG#Bergamo#IT-25
+geo#IT-BS#Brescia#IT-25
+geo#IT-CO#Como#IT-25
+geo#IT-CR#Cremona#IT-25
+geo#IT-LC#Lecco#IT-25
+geo#IT-LO#Lodi#IT-25
+geo#IT-MN#Mantova#IT-25
+geo#IT-MI#Milano#IT-25
+geo#IT-PV#Pavia#IT-25
+geo#IT-SO#Sondrio#IT-25
+geo#IT-VA#Varese#IT-25
+geo#IT-TO#Torino#IT-26
+geo#IT-VB#Verbano-Cusio-Ossola#IT-27
+geo#IT-VC#Vercelli#IT-28
+geo#IT-23#Valle d'Aosta#IT
+geo#IT-25#Lombardia#IT
+geo#IT-32#Trentino-Alto Adige#IT
+geo#IT-BZ#Bolzano Bozen (de)#IT-32
+geo#IT-TN#Trento#IT-32
+geo#IT-34#Veneto#IT
+geo#IT-BL#Belluno#IT-34
+geo#IT-PD#Padova#IT-34
+geo#IT-RO#Rovigo#IT-34
+geo#IT-TV#Treviso#IT-34
+geo#IT-VE#Venezia#IT-34
+geo#IT-VR#Verona#IT-34
+geo#IT-VI#Vicenza#IT-34
+geo#IT-36#Friuli-Venezia Giulia#IT
+geo#IT-GO#Gorizia#IT-36
+geo#IT-PN#Pordenone#IT-36
+geo#IT-TS#Trieste#IT-36
+geo#IT-UD#Udine#IT-36
+geo#IT-42#Liguria#IT
+geo#IT-GE#Genova#IT-42
+geo#IT-IM#Imperia#IT-42
+geo#IT-SP#La Spezia#IT-42
+geo#IT-SV#Savona#IT-42
+geo#IT-45#Emilia-Romagna#IT
+geo#IT-BO#Bologna#IT-45
+geo#IT-FE#Ferrara#IT-45
+geo#IT-FO#Forlì#IT-45
+geo#IT-MO#Modena#IT-45
+geo#IT-PR#Parma#IT-45
+geo#IT-PC#Piacenza#IT-45
+geo#IT-RA#Ravenna#IT-45
+geo#IT-RE#Reggio Emilia#IT-45
+geo#IT-RN#Rimini#IT-45
+geo#IT-52#Toscana#IT
+geo#IT-AR#Arezzo#IT-52
+geo#IT-FI#Firenze#IT-52
+geo#IT-GR#Grosseto#IT-52
+geo#IT-LI#Livorno#IT-52
+geo#IT-LU#Lucca#IT-52
+geo#IT-MS#Massa-Carrara#IT-52
+geo#IT-PI#Pisa#IT-52
+geo#IT-PT#Pistoia#IT-52
+geo#IT-PO#Prato#IT-52
+geo#IT-SI#Siena#IT-52
+geo#IT-55#Umbria#IT
+geo#IT-PG#Perugia#IT-55
+geo#IT-TR#Terni#IT-55
+geo#IT-57#Marche#IT
+geo#IT-AN#Ancona#IT-57
+geo#IT-AP#Ascoli Piceno#IT-57
+geo#IT-MC#Macerata#IT-57
+geo#IT-PS#Pesaro e Urbino#IT-57
+geo#IT-62#Lazio#IT
+geo#IT-FR#Frosinone#IT-62
+geo#IT-LT#Latina#IT-62
+geo#IT-RI#Rieti#IT-62
+geo#IT-RM#Roma#IT-62
+geo#IT-VT#Viterbo#IT-62
+geo#IT-65#Abruzzo#IT
+geo#IT-CH#Chieti#IT-65
+geo#IT-AQ#L'Aquila#IT-65
+geo#IT-PE#Pescara#IT-65
+geo#IT-TE#Teramo#IT-65
+geo#IT-67#Molise#IT
+geo#IT-CB#Campobasso#IT-67
+geo#IT-IS#Isernia#IT-67
+geo#IT-72#Campania#IT
+geo#IT-BN#Benevento#IT-72
+geo#IT-CE#Caserta#IT-72
+geo#IT-NA#Napoli#IT-72
+geo#IT-SA#Salerno#IT-72
+geo#IT-AV#Avellino#IT-72
+geo#IT-75#Puglia#IT
+geo#IT-BA#Bari#IT-75
+geo#IT-BR#Brindisi#IT-75
+geo#IT-FG#Foggia#IT-75
+geo#IT-LE#Lecce#IT-75
+geo#IT-TA#Taranto#IT-75
+geo#IT-77#Basilicata#IT
+geo#IT-MT#Matera#IT-77
+geo#IT-PZ#Potenza#IT-77
+geo#IT-78#Calabria#IT
+geo#IT-CZ#Catanzaro#IT-78
+geo#IT-CS#Cosenza#IT-78
+geo#IT-KR#Crotone#IT-78
+geo#IT-RC#Reggio Calabria#IT-78
+geo#IT-VV#Vibo Valentia#IT-78
+geo#IT-82#Sicilia#IT
+geo#IT-AG#Agrigento#IT-82
+geo#IT-CL#Caltanissetta#IT-82
+geo#IT-CT#Catania#IT-82
+geo#IT-EN#Enna#IT-82
+geo#IT-ME#Messina#IT-82
+geo#IT-PA#Palermo#IT-82
+geo#IT-RG#Ragusa#IT-82
+geo#IT-SR#Siracusa#IT-82
+geo#IT-TP#Trapani#IT-82
+geo#IT-88#Sardegna#IT
+geo#IT-CA#Cagliari#IT-88
+geo#IT-NU#Nuoro#IT-88
+geo#IT-OR#Oristano#IT-88
+geo#IT-SS#Sassari#IT-88
+geo#JM#Jamaica#--
+geo#JO#Jordan#--
+geo#JP#Japan#--
+geo#JP-01#Hokkaido#JP
+geo#JP-02#Aomori#JP
+geo#JP-03#Iwate#JP
+geo#JP-04#Miyagi#JP
+geo#JP-05#Akita#JP
+geo#JP-06#Yamagata#JP
+geo#JP-07#Hukusima (Fukushima)#JP
+geo#JP-08#Ibaraki#JP
+geo#JP-09#Totigi (Tochigi)#JP
+geo#JP-10#Gunma#JP
+geo#JP-11#Saitama#JP
+geo#JP-12#Tiba (Chiba)#JP
+geo#JP-13#Tokyo#JP
+geo#JP-14#Kanagawa#JP
+geo#JP-15#Niigata#JP
+geo#JP-16#Toyama#JP
+geo#JP-17#Isikawa (Ishikawa)#JP
+geo#JP-18#Hukui (Fukui)#JP
+geo#JP-19#Yamanasi (Yamanashi)#JP
+geo#JP-20#Nagano#JP
+geo#JP-21#Gihu (Gifu)#JP
+geo#JP-22#Sizuoka (Shizuoka)#JP
+geo#JP-23#Aiti (Aichi)#JP
+geo#JP-24#Mie#JP
+geo#JP-25#Siga (Shiga)#JP
+geo#JP-26#Kyoto#JP
+geo#JP-27#Osaka#JP
+geo#JP-28#Hyogo#JP
+geo#JP-29#Nara#JP
+geo#JP-30#Wakayama#JP
+geo#JP-31#Tottori#JP
+geo#JP-32#Simane (Shimane)#JP
+geo#JP-33#Okayama#JP
+geo#JP-34#Hirosima (Hiroshima)#JP
+geo#JP-35#Yamaguti (Yamaguchi)#JP
+geo#JP-36#Tokusima (Tokushima)#JP
+geo#JP-37#Kagawa#JP
+geo#JP-38#Ehime#JP
+geo#JP-39#Koti (Kochi)#JP
+geo#JP-40#Hukuoka (Fukuoka)#JP
+geo#JP-41#Saga#JP
+geo#JP-42#Nagasaki#JP
+geo#JP-43#Kumamoto#JP
+geo#JP-44#Oita#JP
+geo#JP-45#Miyazaki#JP
+geo#JP-46#Kagosima (Kagoshima)#JP
+geo#JP-47#Okinawa#JP
+geo#KE#Kenya#--
+geo#KG#Kyrgyzstan#--
+geo#KH#Cambodia#--
+geo#KI#Kiribati#--
+geo#KM#Comoros#--
+geo#KN#St Kitts-Nevis#--
+geo#KP#"Korea, Dem People's Republic"#--
+geo#KR#"Korea, Republic of"#--
+geo#KR-11#Seoul Teugbyeolsi#KR
+geo#KR-26#Busan Gwang'yeogsi#KR
+geo#KR-27#Daegu Gwang'yeogsi#KR
+geo#KR-30#Daejeon Gwang'yeogsi#KR
+geo#KR-29#Gwangju Gwang'yeogsi#KR
+geo#KR-28#Incheon Gwang'yeogsi#KR
+geo#KR-31#Ulsan Gwang'yeogsi#KR
+geo#KR-43#Chungcheongbugdo#KR
+geo#KR-44#Chungcheongnamdo#KR
+geo#KR-42#Gang'weondo#KR
+geo#KR-41#Gyeonggido#KR
+geo#KR-47#Gyeongsangbugdo#KR
+geo#KR-48#Gyeongsangnamdo#KR
+geo#KR-49#Jejudo#KR
+geo#KR-45#Jeonrabugdo#KR
+geo#KR-46#Jeonranamdo#KR
+geo#KW#Kuwait#--
+geo#KY#Cayman Islands#--
+geo#KZ#Kazakhstan#--
+geo#LA#Lao People's Democratic Republic#--
+geo#LB#Lebanon#--
+geo#LC#Saint Lucia#--
+geo#LI#Liechtenstein#--
+geo#LK#Sri Lanka#--
+geo#LR#Liberia#--
+geo#LS#Lesotho#--
+geo#LT#Lithuania#--
+geo#LU#Luxembourg#--
+geo#LV#Latvia#--
+geo#LY#Lybian Arab Jamahiriya#--
+geo#MA#Morocco#--
+geo#MC#Monaco#--
+geo#MD#Moldova#--
+geo#MG#Madagascar#--
+geo#MH#Marshall Islands#--
+geo#MK#Former Yugoslav Republic Of Macedonia#--
+geo#ML#Mali#--
+geo#MM#Myanmar (Former Burma)#--
+geo#MN#Mongolia#--
+geo#MO#Macau#--
+geo#MP#Northern Marianas#--
+geo#MQ#Martinique#--
+geo#MR#Mauritania#--
+geo#MS#Montserrat#--
+geo#MT#Malta#--
+geo#MU#Mauritius#--
+geo#MV#Maldives#--
+geo#MW#Malawi#--
+geo#MX#Mexico#--
+geo#MX-AGU#Aguascalientes#MX
+geo#MX-BCN#Baja California#MX
+geo#MX-BCS#Baja California Sur#MX
+geo#MX-CAM#Campeche#MX
+geo#MX-CHH#Chihuahua#MX
+geo#MX-CHP#Chiapas#MX
+geo#MX-COA#Coahuila#MX
+geo#MX-COL#Colima#MX
+geo#MX-DF#Distrito Federal#MX
+geo#MX-DUR#Durango#MX
+geo#MX-GRO#Guerrero#MX
+geo#MX-GUA#Guanajuato#MX
+geo#MX-HID#Hidalgo#MX
+geo#MX-JAL#Jalisco#MX
+geo#MX-MEX#Mexico#MX
+geo#MX-MIC#Michoacan#MX
+geo#MX-MOR#Morelos#MX
+geo#MX-NAY#Nayarit#MX
+geo#MX-NLE#Nuevo Leon#MX
+geo#MX-OAX#Oaxaca#MX
+geo#MX-PUE#Puebla#MX
+geo#MX-QUE#Queretaro#MX
+geo#MX-ROO#Quintana Roo#MX
+geo#MX-SIN#Sinaloa#MX
+geo#MX-SLP#San Luis Potosi#MX
+geo#MX-SON#Sonora#MX
+geo#MX-TAB#Tabasco#MX
+geo#MX-TAM#Tamaulipas#MX
+geo#MX-TLA#Tlaxcala#MX
+geo#MX-VER#Veracruz#MX
+geo#MX-YUC#Yucatan#MX
+geo#MX-ZAC#Zacatecas#MX
+geo#MY#Malaysia#--
+geo#MZ#Mozambique#--
+geo#NA#Namibia#--
+geo#NC#New Caledonia#--
+geo#NE#Niger#--
+geo#NF#Norfolk Island#--
+geo#NG#Nigeria#--
+geo#NG-FC#Abuja Capital Territory#NG
+geo#NG-AB#Abia#NG
+geo#NG-AD#Adamawa#NG
+geo#NG-AK#Akwa Ibom#NG
+geo#NG-AN#Anambra#NG
+geo#NG-BA#Bauchi#NG
+geo#NG-BY#Bayelsa#NG
+geo#NG-BE#Benue#NG
+geo#NG-BO#Borno#NG
+geo#NG-CR#Cross River#NG
+geo#NG-DE#Delta#NG
+geo#NG-EB#Ebonyi#NG
+geo#NG-ED#Edo#NG
+geo#NG-EK#Ekiti#NG
+geo#NG-EN#Enugu#NG
+geo#NG-GO#Gombe#NG
+geo#NG-IM#Imo#NG
+geo#NG-JI#Jigawa#NG
+geo#NG-KD#Kaduna#NG
+geo#NG-KN#Kano#NG
+geo#NG-KT#Katsina#NG
+geo#NG-KE#Kebbi#NG
+geo#NG-KO#Kogi#NG
+geo#NG-KW#Kwara#NG
+geo#NG-LA#Lagos#NG
+geo#NG-NA#Nassarawa#NG
+geo#NG-NI#Niger#NG
+geo#NG-OG#Ogun#NG
+geo#NG-ON#Ondo#NG
+geo#NG-OS#Osun#NG
+geo#NG-OY#Oyo#NG
+geo#NG-PL#Plateau#NG
+geo#NG-RI#Rivers#NG
+geo#NG-SO#Sokoto#NG
+geo#NG-TA#Taraba#NG
+geo#NG-YO#Yobe#NG
+geo#NG-ZA#Zamfara#NG
+geo#NI#Nicaragua#--
+geo#NL#Netherlands#--
+geo#NO#Norway#--
+geo#NO-01#Østfold#NO
+geo#NO-02#Akershus#NO
+geo#NO-03#Oslo#NO
+geo#NO-04#Hedmark#NO
+geo#NO-05#Oppland#NO
+geo#NO-06#Buskerud#NO
+geo#NO-07#Vestfold#NO
+geo#NO-08#Telemark#NO
+geo#NO-09#Aust-Agder#NO
+geo#NO-10#Vest-Agder#NO
+geo#NO-11#Rogaland#NO
+geo#NO-12#Nordaland#NO
+geo#NO-14#Sogn Og Fjordane#NO
+geo#NO-15#Møre Og Romsdal#NO
+geo#NO-16#Sør-Trøndelag#NO
+geo#NO-17#Nord-Trøndelag#NO
+geo#NO-18#Nordland#NO
+geo#NO-19#Troms#NO
+geo#NO-20#Finnmark#NO
+geo#NP#Nepal#--
+geo#NR#Nauru#--
+geo#NU#Niue#--
+geo#NZ#New Zealand#--
+geo#NZ-AUK#Auckland#NZ-N
+geo#NZ-BOP#Bay Of Plenty#NZ-N
+geo#NZ-CAN#Canterbury#NZ-S
+geo#NZ-GIS#Gisborne#NZ-N
+geo#NZ-HKB#Hawkes'S Bay#NZ-N
+geo#NZ-MBH#Marlborough#NZ-S
+geo#NZ-MWT#Manawatu-Wanganui#NZ-N
+geo#NZ-N#North Island#NZ
+geo#NZ-NSN#Nelson#NZ-S
+geo#NZ-NTL#Northland#NZ-N
+geo#NZ-OTA#Otago#NZ-S
+geo#NZ-S#South Island#NZ
+geo#NZ-STL#Southland#NZ-S
+geo#NZ-TAS#Tasman#NZ-S
+geo#NZ-TKI#Taranaki#NZ-N
+geo#NZ-WGN#Wellington#NZ-N
+geo#NZ-WKO#Waikato#NZ-N
+geo#NZ-WTC#West Coast#NZ-S
+geo#OM#Oman#--
+geo#PA#Panama#--
+geo#PE#Peru#--
+geo#PF#French Polynesia#--
+geo#PG#Papua New Guinea#--
+geo#PH#Philippines#--
+geo#PK#Pakistan#--
+geo#PL#Poland#--
+geo#PL-DS#Dolnośląskie#PL
+geo#PL-KP#Kujawsko-pomorskie#PL
+geo#PL-LU#Lubelskie#PL
+geo#PL-LB#Lubuskie#PL
+geo#PL-LD#Łódzkie#PL
+geo#PL-MA#Małopolskie#PL
+geo#PL-MZ#Mazowieckie#PL
+geo#PL-OP#Opolskie#PL
+geo#PL-PK#Podkarpackie#PL
+geo#PL-PD#Podlaskie#PL
+geo#PL-PM#Pomorskie#PL
+geo#PL-SL#Śląskie#PL
+geo#PL-SK#Świętokrzyskie#PL
+geo#PL-WN#Warmińsko-mazurskie#PL
+geo#PL-WP#Wielkopolskie#PL
+geo#PL-ZP#Zachodniopomorskie#PL
+geo#PM#St Pierre And Miquelon#--
+geo#PN#Pitcairn#--
+geo#PR#Puerto Rico#--
+geo#PS#"Palestinian Territory, Occupied"#--
+geo#PT#Portugal#--
+geo#PW#Palau#--
+geo#PY#Paraguay#--
+geo#QA#Qatar#--
+geo#RE#Reunion#--
+geo#RO#Romania#--
+geo#RO-B#Bucureşti#RO
+geo#RO-AB#Alba#RO
+geo#RO-AR#Arad#RO
+geo#RO-AG#Argeş#RO
+geo#RO-BC#Bacău#RO
+geo#RO-BH#Bihor#RO
+geo#RO-BN#Bistriţa-Năsăud#RO
+geo#RO-BT#Botoşani#RO
+geo#RO-BV#Braşov#RO
+geo#RO-BR#Brăila#RO
+geo#RO-BZ#Buzău#RO
+geo#RO-CS#Caraş-Severin#RO
+geo#RO-CL#Călăraşi#RO
+geo#RO-CJ#Cluj#RO
+geo#RO-CT#Constanţa#RO
+geo#RO-CV#Covasna#RO
+geo#RO-DB#Dâmboviţa#RO
+geo#RO-DJ#Dolj#RO
+geo#RO-GL#Galaţi#RO
+geo#RO-GR#Giurgiu#RO
+geo#RO-GJ#Gorj#RO
+geo#RO-HR#Harghita#RO
+geo#RO-HD#Hunedoara#RO
+geo#RO-IL#Ialomiţa#RO
+geo#RO-IS#Iaşi#RO
+geo#RO-MM#Maramureş#RO
+geo#RO-MH#Mehedinţi#RO
+geo#RO-MS#Mureş#RO
+geo#RO-NT#Neamţ#RO
+geo#RO-OT#Olt#RO
+geo#RO-PH#Prahova#RO
+geo#RO-SM#Satu Mare#RO
+geo#RO-SJ#Sălaj#RO
+geo#RO-SB#Sibiu#RO
+geo#RO-SV#Suceava#RO
+geo#RO-TR#Teleorman#RO
+geo#RO-TM#Timiş#RO
+geo#RO-TL#Tulcea#RO
+geo#RO-VS#Vaslui#RO
+geo#RO-VL#Vâlcea#RO
+geo#RO-VN#Vrancea#RO
+geo#RU#Russian Federation#--
+geo#RU-AD#"Adygeja, Respublika"#RU
+geo#RU-AL#"Altaj, Respublika"#RU
+geo#RU-BA#"Baškortostan, Respublika"#RU
+geo#RU-BU#"Burjatija, Respublika"#RU
+geo#RU-CE#Čečenskaja Respublika#RU
+geo#RU-CU#Čuvašskaja Respublika#RU
+geo#RU-DA#"Dagestan, Respublika"#RU
+geo#RU-IN#Ingušskaja Respublika [Respublika Ingušetija]#RU
+geo#RU-KB#Kabardino-Balkarskaja Respublika#RU
+geo#RU-KL#"Kalmykija, Respublika"#RU
+geo#RU-KC#Karačajevo-Čerkesskaja Respublika#RU
+geo#RU-KR#"Karelija, Respublika"#RU
+geo#RU-KK#"Hakasija, Respublika"#RU
+geo#RU-KO#"Komi, Respublika"#RU
+geo#RU-ME#"Marij Èl, Respublika"#RU
+geo#RU-MO#"Mordovija, Respublika"#RU
+geo#RU-SA#"Saha, Respublika [Jakutija]"#RU
+geo#RU-SE#"Severnaja Osetija, Respublika [Alanija] [Respublika Severnaja Osetija-Alanija]"#RU
+geo#RU-TA#"Tatarstan, Respublika"#RU
+geo#RU-TY#"Tyva, Respublika [Tuva]"#RU
+geo#RU-UD#Udmurtskaja Respublika#RU
+geo#RU-ALT#Altajskij kraj#RU
+geo#RU-KHA#Habarovskij kraj#RU
+geo#RU-KDA#Krasnodarskij kraj#RU
+geo#RU-KYA#Krasnojarskij kraj#RU
+geo#RU-PRI#Primorskij kraj#RU
+geo#RU-STA#Stavropol'skij kraj#RU
+geo#RU-AMU#Amurskaja oblast'#RU
+geo#RU-ARK#Arhangel'skaja oblast'#RU
+geo#RU-AST#Astrahanskaja oblast'#RU
+geo#RU-BEL#Belgorodskaja oblast'#RU
+geo#RU-BRY#Brjanskaja oblast'#RU
+geo#RU-CHE#Čeljabinskaja oblast'#RU
+geo#RU-CHI#Čitinskaja oblast'#RU
+geo#RU-IRK#Irkutskaja oblast'#RU
+geo#RU-IVA#Ivanovskaja oblast'#RU
+geo#RU-KGD#Kaliningradskaja oblast'#RU
+geo#RU-KLU#Kalužskaja oblast'#RU
+geo#RU-KAM#Kamčatskaja oblast'#RU
+geo#RU-KEM#Kemerovskaja oblast'#RU
+geo#RU-KIR#Kirovskaja oblast'#RU
+geo#RU-KOS#Kostromskaja oblast'#RU
+geo#RU-KGN#Kurganskaja oblast'#RU
+geo#RU-KRS#Kurskaja oblast'#RU
+geo#RU-LEN#Leningradskaja oblast'#RU
+geo#RU-LIP#Lipetskaja oblast'#RU
+geo#RU-MAG#Magadanskaja oblast'#RU
+geo#RU-MOS#Moskovskaja oblast'#RU
+geo#RU-MUR#Murmanskaja oblast'#RU
+geo#RU-NIZ#Nižegorodskaja oblast'#RU
+geo#RU-NGR#Novgorodskaja oblast'#RU
+geo#RU-NVS#Novosibirskaja oblast'#RU
+geo#RU-OMS#Omskaja oblast'#RU
+geo#RU-ORE#Orenburgskaja oblast'#RU
+geo#RU-ORL#Orlovskaja oblast'#RU
+geo#RU-PNZ#Penzenskaja oblast'#RU
+geo#RU-PER#Permskaja oblast'#RU
+geo#RU-PSK#Pskovskaja oblast'#RU
+geo#RU-ROS#Rostovskaja oblast'#RU
+geo#RU-RYA#Rjazanskaja oblast'#RU
+geo#RU-SAK#Sahalinskaja oblast'#RU
+geo#RU-SAM#Samarskaja oblast'#RU
+geo#RU-SAR#Saratovskaja oblast'#RU
+geo#RU-SMO#Smolenskaja oblast'#RU
+geo#RU-SVE#Sverdlovskaja oblast'#RU
+geo#RU-TAM#Tambovskaja oblast'#RU
+geo#RU-TOM#Tomskaja oblast'#RU
+geo#RU-TUL#Tul'skaja oblast'#RU
+geo#RU-TVE#Tverskaja oblast'#RU
+geo#RU-TYU#Tjumenskaja oblast'#RU
+geo#RU-ULY#Ul'janovskaja oblast'#RU
+geo#RU-VLA#Vladimirskaja oblast'#RU
+geo#RU-VGG#Volgogradskaja oblast'#RU
+geo#RU-VLG#Vologodskaja oblast'#RU
+geo#RU-VOR#Voronežskaja oblast'#RU
+geo#RU-YAR#Jaroslavskaja oblast'#RU
+geo#RU-MOW#Moskva#RU
+geo#RU-SPE#Sankt-Peterburg#RU
+geo#RU-YEV#Evrejskaja avtonomnaja oblast'#RU
+geo#RU-AGB#Aginskij Burjatskij avtonomnyj okrug#RU
+geo#RU-CHU#Čukotskij avtonomnyj okrug#RU
+geo#RU-EVE#Èvenkijskij avtonomnyj okrug#RU
+geo#RU-KHM#Hanty-Mansijskij avtonomnyj okrug#RU
+geo#RU-KOP#Komi-Permjatskij avtonomnyj okrug#RU
+geo#RU-KOR#Korjakskij avtonomnyj okrug#RU
+geo#RU-NEN#Nenetskij avtonomnyj okrug#RU
+geo#RU-TAY#Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug#RU
+geo#RU-UOB#Ust'-Ordynskij Burjatskij avtonomnyj okrug#RU
+geo#RU-YAN#Jamalo-Nenetskij avtonomnyj okrug#RU
+geo#RW#Rwanda#--
+geo#SA#Saudi Arabia#--
+geo#SB#Solomon Islands#--
+geo#SC#Seychelles#--
+geo#SD#Sudan#--
+geo#SE#Sweden#--
+geo#SE-AB#Stockholms Län#SE
+geo#SE-AC#Västerbottens Län#SE
+geo#SE-BD#Norrbottens Län#SE
+geo#SE-C#Uppsala Län#SE
+geo#SE-D#Södermanlands Län#SE
+geo#SE-E#Östergötlands Län#SE
+geo#SE-F#Jönköpings Län#SE
+geo#SE-G#Kronoborgs Län#SE
+geo#SE-H#Kalmar Län#SE
+geo#SE-I#Gotlands Län#SE
+geo#SE-K#Blekinge Län#SE
+geo#SE-M#Skåne Län#SE
+geo#SE-N#Hallands Län#SE
+geo#SE-O#Västra Götalands Län#SE
+geo#SE-S#Värmlands Län#SE
+geo#SE-T#Örebro Län#SE
+geo#SE-U#Västmanlands Län#SE
+geo#SE-W#Dalarnes Län#SE
+geo#SE-X#Gävleborgs Län#SE
+geo#SE-Y#Västernorrlands Län#SE
+geo#SE-Z#Jämtlands Län#SE
+geo#SG#Singapore#--
+geo#SH#St Helena#--
+geo#SI#Slovenia#--
+geo#SJ#Svalbard And Jan Mayen#--
+geo#SK#Slovakia#--
+geo#SL#Sierra Leone#--
+geo#SM#San Marino#--
+geo#SN#Senegal#--
+geo#SO#Somalia#--
+geo#SR#Suriname#--
+geo#ST#Sao Tome And Principe#--
+geo#SV#El Salvador#--
+geo#SY#Syrian Arab Republic#--
+geo#SZ#Swaziland#--
+geo#TC#Turks And Caicos Islands#--
+geo#TD#Chad#--
+geo#TF#French Southern Territories#--
+geo#TG#Togo#--
+geo#TH#Thailand#--
+geo#TJ#Tajikistan#--
+geo#TM#Turkmenistan#--
+geo#TN#Tunisia#--
+geo#TO#Tonga#--
+geo#TP#East Timor#--
+geo#TR#Turkey#--
+geo#TR-01#Adana#TR
+geo#TR-02#Adıyaman#TR
+geo#TR-03#Afyon#TR
+geo#TR-04#Ağrı#TR
+geo#TR-05#Amasya#TR
+geo#TR-06#Ankara#TR
+geo#TR-07#Antalya#TR
+geo#TR-08#Artvin#TR
+geo#TR-09#Aydın#TR
+geo#TR-10#Balıkesir#TR
+geo#TR-11#Bilecik#TR
+geo#TR-12#Bingöl#TR
+geo#TR-13#Bitlis#TR
+geo#TR-14#Bolu#TR
+geo#TR-15#Burdur#TR
+geo#TR-16#Bursa#TR
+geo#TR-17#Çanakkale#TR
+geo#TR-18#Çankırı#TR
+geo#TR-19#Çorum#TR
+geo#TR-20#Denizli#TR
+geo#TR-21#Diyarbakır#TR
+geo#TR-22#Edirne#TR
+geo#TR-23#Elazıg#TR
+geo#TR-24#Erzincan#TR
+geo#TR-25#Erzurum#TR
+geo#TR-26#Eskişehir#TR
+geo#TR-27#Gaziantep#TR
+geo#TR-28#Giresun#TR
+geo#TR-29#Gümüşhane#TR
+geo#TR-30#Hakkâri#TR
+geo#TR-31#Hatay#TR
+geo#TR-32#Isparta#TR
+geo#TR-33#İçel#TR
+geo#TR-34#İstanbul#TR
+geo#TR-35#İzmir#TR
+geo#TR-36#Kars#TR
+geo#TR-37#Kastamonu#TR
+geo#TR-38#Kayseri#TR
+geo#TR-39#Kırklareli#TR
+geo#TR-40#Kırşehir#TR
+geo#TR-41#Kocaeli#TR
+geo#TR-42#Konya#TR
+geo#TR-43#Kütahya#TR
+geo#TR-44#Malatya#TR
+geo#TR-45#Manisa#TR
+geo#TR-46#Kahramanmaraş#TR
+geo#TR-47#Mardin#TR
+geo#TR-48#Muğla#TR
+geo#TR-49#Muş#TR
+geo#TR-50#Nevşehir#TR
+geo#TR-51#Niğde#TR
+geo#TR-52#Ordu#TR
+geo#TR-53#Rize#TR
+geo#TR-54#Sakarya#TR
+geo#TR-55#Samsun#TR
+geo#TR-56#Siirt#TR
+geo#TR-57#Sinop#TR
+geo#TR-58#Sivas#TR
+geo#TR-59#Tekirdağ#TR
+geo#TR-60#Tokat#TR
+geo#TR-61#Trabzon#TR
+geo#TR-62#Tunceli#TR
+geo#TR-63#Şanlıurfa#TR
+geo#TR-64#Uşak#TR
+geo#TR-65#Van#TR
+geo#TR-66#Yozgat#TR
+geo#TR-67#Zonguldak#TR
+geo#TR-68#Aksaray#TR
+geo#TR-69#Bayburt#TR
+geo#TR-70#Karaman#TR
+geo#TR-71#Kırıkkale#TR
+geo#TR-72#Batman#TR
+geo#TR-73#Şırnak#TR
+geo#TR-74#Bartın#TR
+geo#TR-75#Ardahan#TR
+geo#TR-76#Iğdır#TR
+geo#TR-77#Yalova#TR
+geo#TR-78#Karabük#TR
+geo#TR-79#Kilis#TR
+geo#TR-80#Osmaniye#TR
+geo#TT#Trinidad And Tobago#--
+geo#TV#Tuvalu#--
+geo#TW#"Taiwan, Province Of China"#--
+geo#TZ#"Tanzania, United Republic of"#--
+geo#UA#Ukraine#--
+geo#UG#Uganda#--
+geo#UM#US Minor Outlying Islands#--
+geo#UM-67#Johnston Atoll#UM
+geo#UM-71#Midway Islands#UM
+geo#UM-76#Navassa Island#UM
+geo#UM-79#Wake Island#UM
+geo#UM-81#Baker Island#UM
+geo#UM-84#Howland Island#UM
+geo#UM-86#Jarvis Island#UM
+geo#UM-89#Kingman Reef#UM
+geo#UM-95#Palmyra Atoll#UM
+geo#US#United States#--
+geo#US-AK#Alaska#US
+geo#US-AL#Alabama#US
+geo#US-AR#Arkansas#US
+geo#US-AS#American Samoa#US
+geo#US-AZ#Arizona#US
+geo#US-CA#California#US
+geo#US-CO#Colorado#US
+geo#US-CT#Connecticut#US
+geo#US-DC#District Of Columbia#US
+geo#US-DE#Delaware#US
+geo#US-FL#Florida#US
+geo#US-GA#Georgia#US
+geo#US-GU#Guam#US
+geo#US-HI#Hawaii#US
+geo#US-IA#Iowa#US
+geo#US-ID#Idaho#US
+geo#US-IL#Illinois#US
+geo#US-IN#Indiana#US
+geo#US-KS#Kansas#US
+geo#US-KY#Kentucky#US
+geo#US-LA#Louisiana#US
+geo#US-MA#Massachusetts#US
+geo#US-MD#Maryland#US
+geo#US-ME#Maine#US
+geo#US-MI#Michigan#US
+geo#US-MN#Minnesota#US
+geo#US-MO#Missouri#US
+geo#US-MP#Northern Mariana Islands#US
+geo#US-MS#Mississippi#US
+geo#US-MT#Montana#US
+geo#US-NC#North Carolina#US
+geo#US-ND#North Dakota#US
+geo#US-NE#Nebraska#US
+geo#US-NH#New Hampshire#US
+geo#US-NJ#New Jersey#US
+geo#US-NM#New Mexico#US
+geo#US-NV#Nevada#US
+geo#US-NY#New York#US
+geo#US-OH#Ohio#US
+geo#US-OK#Oklahoma#US
+geo#US-OR#Oregon#US
+geo#US-PA#Pennsylvania#US
+geo#US-PR#Puerto Rico#US
+geo#US-RI#Rhode Island#US
+geo#US-SC#South Carolina#US
+geo#US-SD#South Dakota#US
+geo#US-TN#Tennessee#US
+geo#US-TX#Texas#US
+geo#US-UM#U.S. Minor Outlying Islands#US
+geo#US-UT#Utah#US
+geo#US-VA#Virginia#US
+geo#US-VI#Virgin Islands Of The U.S.#US
+geo#US-VT#Vermont#US
+geo#US-WA#Washington#US
+geo#US-WI#Wisconsin#US
+geo#US-WV#West Virginia#US
+geo#US-WY#Wyoming#US
+geo#UY#Uruguay#--
+geo#UZ#Uzbekistan#--
+geo#VA#Vatican City State#--
+geo#VC#St Vincent And Grenadines#--
+geo#VE#Venezuela#--
+geo#VG#"Virgin Islands, British"#--
+geo#VI#United States Virgin Islands#--
+geo#VN#Viet Nam#--
+geo#VN-01#Lai Chau#VN
+geo#VN-02#Lao Cai#VN
+geo#VN-03#Ha Giang#VN
+geo#VN-04#Cao Bang#VN
+geo#VN-05#Son La#VN
+geo#VN-06#Yen Bai#VN
+geo#VN-07#Tuyen Quang#VN
+geo#VN-09#Lang Son#VN
+geo#VN-13#Quang Ninh#VN
+geo#VN-14#Hoa Binh#VN
+geo#VN-15#Ha Tay#VN
+geo#VN-18#Ninh Binh#VN
+geo#VN-20#Thai Binh#VN
+geo#VN-21#Thanh Hoa#VN
+geo#VN-22#Nghe An#VN
+geo#VN-23#Ha Tinh#VN
+geo#VN-24#Quang Binh#VN
+geo#VN-25#Quang Tri#VN
+geo#VN-26#Thua Thien-Hue#VN
+geo#VN-27#Quang Nam#VN
+geo#VN-28#Kon Tum#VN
+geo#VN-29#Quang Ngai#VN
+geo#VN-30#Gia Lai#VN
+geo#VN-31#Binh Dinh#VN
+geo#VN-32#Phu Yen#VN
+geo#VN-33#Dac Lac#VN
+geo#VN-34#Khanh Hoa#VN
+geo#VN-35#Lam Dong#VN
+geo#VN-36#Ninh Thuan#VN
+geo#VN-37#Tay Ninh#VN
+geo#VN-39#Dong Nai#VN
+geo#VN-40#Binh Thuan#VN
+geo#VN-41#Long An#VN
+geo#VN-43#Ba Ria - Vung Tau#VN
+geo#VN-44#An Giang#VN
+geo#VN-45#Dong Thap#VN
+geo#VN-46#Tien Giang#VN
+geo#VN-47#Kien Giang#VN
+geo#VN-48#Can Tho#VN
+geo#VN-49#Vinh Long#VN
+geo#VN-50#Ben Tre#VN
+geo#VN-51#Tra Vinh#VN
+geo#VN-52#Soc Trang#VN
+geo#VN-53#Bac Can#VN
+geo#VN-54#Bac Giang#VN
+geo#VN-55#Bac Lieu#VN
+geo#VN-56#Bac Ninh#VN
+geo#VN-57#Binh Duong#VN
+geo#VN-58#Binh Phuoc#VN
+geo#VN-59#Ca Mau#VN
+geo#VN-60#"Da Nang, thanh pho"#VN
+geo#VN-61#Hai Duong#VN
+geo#VN-62#"Hai Phong, thanh pho"#VN
+geo#VN-63#Ha Nam#VN
+geo#VN-64#"Ha Noi, thu do"#VN
+geo#VN-65#"Ho Chi Minh, thanh po [Sai Gon]"#VN
+geo#VN-66#Hung Yen#VN
+geo#VN-67#Nam Dinh#VN
+geo#VN-68#Phu Tho#VN
+geo#VN-69#Thai Nguyen#VN
+geo#VN-70#Vinh Phuc#VN
+geo#VU#Vanuatu#--
+geo#WF#Wallis And Futuna Islands#--
+geo#WS#Samoa#--
+geo#YE#Yemen#--
+geo#YT#Mayotte#--
+geo#YU#Yugoslavia (Fed Rep Of)#--
+geo#YU-CG#Crna Gora#YU
+geo#YU-SR#Srbija#YU
+geo#YU-KM#Kosovo-Metohija#YU-SR
+geo#YU-VO#Vojvodina#YU-SR
+geo#ZA#South Africa#--
+geo#ZM#Zambia#--
+geo#ZW#Zimbabwe#--
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/naics-data.txt b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/naics-data.txt
new file mode 100644
index 000000000..b46f905a9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/naics-data.txt
@@ -0,0 +1,1814 @@
+naics#11#Agriculture, Forestry, Fishing and Hunting#11
+naics#111#Crop Production#11
+naics#1111#Oilseed and Grain Farming#111
+naics#11111#Soybean Farming#1111
+naics#11112#Oilseed (except Soybean) Farming#1111
+naics#11113#Dry Pea and Bean Farming#1111
+naics#11114#Wheat Farming#1111
+naics#11115#Corn Farming#1111
+naics#11116#Rice Farming#1111
+naics#11119#Other Grain Farming#1111
+naics#111191#Oilseed and Grain Combination Farming#11119
+naics#111199#All Other Grain Farming#11119
+naics#1112#Vegetable and Melon Farming#111
+naics#11121#Vegetable and Melon Farming#1112
+naics#111211#Potato Farming#11121
+naics#111219#Other Vegetable (except Potato) and Melon Farming#11121
+naics#1113#Fruit and Tree Nut Farming#111
+naics#11131#Orange Groves#1113
+naics#11132#Citrus (except Orange) Groves#1113
+naics#11133#Noncitrus Fruit and Tree Nut Farming#1113
+naics#111331#Apple Orchards#11133
+naics#111332#Grape Vineyards#11133
+naics#111333#Strawberry Farming#11133
+naics#111334#Berry (except Strawberry) Farming#11133
+naics#111335#Tree Nut Farming#11133
+naics#111336#Fruit and Tree Nut Combination Farming#11133
+naics#111339#Other Noncitrus Fruit Farming#11133
+naics#1114#Greenhouse, Nursery, and Floriculture Production#111
+naics#11141#Food Crops Grown Under Cover#1114
+naics#111411#Mushroom Production#11141
+naics#111419#Other Food Crops Grown Under Cover#11141
+naics#11142#Nursery and Floriculture Production#1114
+naics#111421#Nursery and Tree Production#11142
+naics#111422#Floriculture Production#11142
+naics#1119#Other Crop Farming#111
+naics#11191#Tobacco Farming#1119
+naics#11192#Cotton Farming#1119
+naics#11193#Sugarcane Farming#1119
+naics#11194#Hay Farming#1119
+naics#11199#All Other Crop Farming#1119
+naics#111991#Sugar Beet Farming#11199
+naics#111992#Peanut Farming#11199
+naics#111998#All Other Miscellaneous Crop Farming#11199
+naics#112#Animal Production#11
+naics#1121#Cattle Ranching and Farming#112
+naics#11211#Beef Cattle Ranching and Farming, including Feedlots#1121
+naics#112111#Beef Cattle Ranching and Farming#11211
+naics#112112#Cattle Feedlots#11211
+naics#11212#Dairy Cattle and Milk Production#1121
+naics#11213#Dual Purpose Cattle Ranching and Farming#1121
+naics#1122#Hog and Pig Farming#112
+naics#11221#Hog and Pig Farming#1122
+naics#1123#Poultry and Egg Production#112
+naics#11231#Chicken Egg Production#1123
+naics#11232#Broilers and Other Meat Type Chicken Production#1123
+naics#11233#Turkey Production#1123
+naics#11234#Poultry Hatcheries#1123
+naics#11239#Other Poultry Production#1123
+naics#1124#Sheep and Goat Farming#112
+naics#11241#Sheep Farming#1124
+naics#11242#Goat Farming#1124
+naics#1125#Animal Aquaculture#112
+naics#11251#Animal Aquaculture#1125
+naics#112511#Finfish Farming and Fish Hatcheries#11251
+naics#112512#Shellfish Farming#11251
+naics#112519#Other Animal Aquaculture#11251
+naics#1129#Other Animal Production#112
+naics#11291#Apiculture#1129
+naics#11292#Horse and Other Equine Production#1129
+naics#11293#Fur-Bearing Animal and Rabbit Production#1129
+naics#11299#All Other Animal Production#1129
+naics#113#Forestry and Logging#11
+naics#1131#Timber Tract Operations#113
+naics#11311#Timber Tract Operations#1131
+naics#1132#Forest Nurseries and Gathering of Forest Products#113
+naics#11321#Forest Nurseries and Gathering of Forest Products#1132
+naics#1133#Logging#113
+naics#11331#Logging#1133
+naics#114#Fishing, Hunting and Trapping#11
+naics#1141#Fishing#114
+naics#11411#Fishing#1141
+naics#114111#Finfish Fishing#11411
+naics#114112#Shellfish Fishing#11411
+naics#114119#Other Marine Fishing#11411
+naics#1142#Hunting and Trapping#114
+naics#11421#Hunting and Trapping#1142
+naics#115#Support Activities for Agriculture and Forestry#11
+naics#1151#Support Activities for Crop Production#115
+naics#11511#Support Activities for Crop Production#1151
+naics#115111#Cotton Ginning#11511
+naics#115112#Soil Preparation, Planting, and Cultivating#11511
+naics#115113#Crop Harvesting, Primarily by Machine#11511
+naics#115114#Postharvest Crop Activities (except Cotton Ginning)#11511
+naics#115115#Farm Labor Contractors and Crew Leaders#11511
+naics#115116#Farm Management Services#11511
+naics#1152#Support Activities for Animal Production#115
+naics#11521#Support Activities for Animal Production#1152
+naics#1153#Support Activities for Forestry#115
+naics#11531#Support Activities for Forestry#1153
+naics#21#Mining#21
+naics#211#Oil and Gas Extraction#21
+naics#2111#Oil and Gas Extraction#211
+naics#21111#Oil and Gas Extraction#2111
+naics#211111#Crude Petroleum and Natural Gas Extraction#21111
+naics#211112#Natural Gas Liquid Extraction#21111
+naics#212#Mining (except Oil and Gas)#21
+naics#2121#Coal Mining#212
+naics#21211#Coal Mining#2121
+naics#212111#Bituminous Coal and Lignite Surface Mining#21211
+naics#212112#Bituminous Coal Underground Mining#21211
+naics#212113#Anthracite Mining#21211
+naics#2122#Metal Ore Mining#212
+naics#21221#Iron Ore Mining#2122
+naics#21222#Gold Ore and Silver Ore Mining#2122
+naics#212221#Gold Ore Mining#21222
+naics#212222#Silver Ore Mining#21222
+naics#21223#Copper, Nickel, Lead, and Zinc Mining#2122
+naics#212231#Lead Ore and Zinc Ore Mining#21223
+naics#212234#Copper Ore and Nickel Ore Mining#21223
+naics#21229#Other Metal Ore Mining#2122
+naics#212291#Uranium-Radium-Vanadium Ore Mining#21229
+naics#212299#All Other Metal Ore Mining#21229
+naics#2123#Nonmetallic Mineral Mining and Quarrying#212
+naics#21231#Stone Mining and Quarrying#2123
+naics#212311#Dimension Stone Mining and Quarrying#21231
+naics#212312#Crushed and Broken Limestone Mining and Quarrying#21231
+naics#212313#Crushed and Broken Granite Mining and Quarrying#21231
+naics#212319#Other Crushed and Broken Stone Mining and Quarrying#21231
+naics#21232#Sand, Gravel, Clay, and Ceramic and Refractory Minerals Mining and Quarrying#2123
+naics#212321#Construction Sand and Gravel Mining#21232
+naics#212322#Industrial Sand Mining#21232
+naics#212324#Kaolin and Ball Clay Mining#21232
+naics#212325#Clay and Ceramic and Refractory Minerals Mining#21232
+naics#21239#Other Nonmetallic Mineral Mining and Quarrying#2123
+naics#212391#Potash, Soda, and Borate Mineral Mining#21239
+naics#212392#Phosphate Rock Mining#21239
+naics#212393#Other Chemical and Fertilizer Mineral Mining#21239
+naics#212399#All Other Nonmetallic Mineral Mining#21239
+naics#213#Support Activities for Mining#21
+naics#2131#Support Activities for Mining#213
+naics#21311#Support Activities for Mining#2131
+naics#213111#Drilling Oil and Gas Wells#21311
+naics#213112#Support Activities for Oil and Gas Operations#21311
+naics#213113#Support Activities for Coal Mining#21311
+naics#213114#Support Activities for Metal Mining#21311
+naics#213115#Support Activities for Nonmetallic Minerals (except Fuels)#21311
+naics#22#Utilities#22
+naics#221#Utilities#22
+naics#2211#Electric Power Generation, Transmission and Distribution#221
+naics#22111#Electric Power Generation#2211
+naics#221111#Hydroelectric Power Generation#22111
+naics#221112#Fossil Fuel Electric Power Generation#22111
+naics#221113#Nuclear Electric Power Generation#22111
+naics#221119#Other Electric Power Generation#22111
+naics#22112#Electric Power Transmission, Control, and Distribution#2211
+naics#221121#Electric Bulk Power Transmission and Control#22112
+naics#221122#Electric Power Distribution#22112
+naics#2212#Natural Gas Distribution#221
+naics#22121#Natural Gas Distribution#2212
+naics#2213#Water, Sewage and Other Systems#221
+naics#22131#Water Supply and Irrigation Systems#2213
+naics#22132#Sewage Treatment Facilities#2213
+naics#22133#Steam and Air-Conditioning Supply#2213
+naics#23#Construction#23
+naics#233#Building, Developing, and General Contracting#23
+naics#2331#Land Subdivision and Land Development#233
+naics#23311#Land Subdivision and Land Development#2331
+naics#2332#Residential Building Construction#233
+naics#23321#Single Family Housing Construction#2332
+naics#23322#Multifamily Housing Construction#2332
+naics#2333#Nonresidential Building Construction#233
+naics#23331#Manufacturing and Industrial Building Construction#2333
+naics#23332#Commercial and Institutional Building Construction#2333
+naics#234#Heavy Construction#23
+naics#2341#Highway, Street, Bridge, and Tunnel Construction#234
+naics#23411#Highway and Street Construction#2341
+naics#23412#Bridge and Tunnel Construction#2341
+naics#2349#Other Heavy Construction#234
+naics#23491#Water, Sewer, and Pipeline Construction#2349
+naics#23492#Power and Communication Transmission Line Construction#2349
+naics#23493#Industrial Nonbuilding Structure Construction#2349
+naics#23499#All Other Heavy Construction#2349
+naics#235#Special Trade Contractors#23
+naics#2351#Plumbing, Heating, and Air-Conditioning Contractors#235
+naics#23511#Plumbing, Heating, and Air-Conditioning Contractors#2351
+naics#2352#Painting and Wall Covering Contractors#235
+naics#23521#Painting and Wall Covering Contractors#2352
+naics#2353#Electrical Contractors#235
+naics#23531#Electrical Contractors#2353
+naics#2354#Masonry, Drywall, Insulation, and Tile Contractors#235
+naics#23541#Masonry and Stone Contractors#2354
+naics#23542#Drywall, Plastering, Acoustical, and Insulation Contractors#2354
+naics#23543#Tile, Marble, Terrazzo, and Mosaic Contractors#2354
+naics#2355#Carpentry and Floor Contractors#235
+naics#23551#Carpentry Contractors#2355
+naics#23552#Floor Laying and Other Floor Contractors#2355
+naics#2356#Roofing, Siding, and Sheet Metal Contractors#235
+naics#23561#Roofing, Siding, and Sheet Metal Contractors#2356
+naics#2357#Concrete Contractors#235
+naics#23571#Concrete Contractors#2357
+naics#2358#Water Well Drilling Contractors#235
+naics#23581#Water Well Drilling Contractors#2358
+naics#2359#Other Special Trade Contractors#235
+naics#23591#Structural Steel Erection Contractors#2359
+naics#23592#Glass and Glazing Contractors#2359
+naics#23593#Excavation Contractors#2359
+naics#23594#Wrecking and Demolition Contractors#2359
+naics#23595#Building Equipment and Other Machinery Installation Contractors#2359
+naics#23599#All Other Special Trade Contractors#2359
+naics#31#Manufacturing#31
+naics#311#Food Manufacturing#31
+naics#3111#Animal Food Manufacturing#311
+naics#31111#Animal Food Manufacturing#3111
+naics#311111#Dog and Cat Food Manufacturing#31111
+naics#311119#Other Animal Food Manufacturing#31111
+naics#3112#Grain and Oilseed Milling#311
+naics#31121#Flour Milling and Malt Manufacturing#3112
+naics#311211#Flour Milling#31121
+naics#311212#Rice Milling#31121
+naics#311213#Malt Manufacturing#31121
+naics#31122#Starch and Vegetable Fats and Oils Manufacturing#3112
+naics#311221#Wet Corn Milling#31122
+naics#311222#Soybean Processing#31122
+naics#311223#Other Oilseed Processing#31122
+naics#311225#Fats and Oils Refining and Blending#31122
+naics#31123#Breakfast Cereal Manufacturing#3112
+naics#3113#Sugar and Confectionery Product Manufacturing#311
+naics#31131#Sugar Manufacturing#3113
+naics#311311#Sugarcane Mills#31131
+naics#311312#Cane Sugar Refining#31131
+naics#311313#Beet Sugar Manufacturing#31131
+naics#31132#Chocolate and Confectionery Manufacturing from Cacao Beans#3113
+naics#31133#Confectionery Manufacturing from Purchased Chocolate#3113
+naics#31134#Nonchocolate Confectionery Manufacturing#3113
+naics#3114#Fruit and Vegetable Preserving and Specialty Food Manufacturing#311
+naics#31141#Frozen Food Manufacturing#3114
+naics#311411#Frozen Fruit, Juice, and Vegetable Manufacturing#31141
+naics#311412#Frozen Specialty Food Manufacturing#31141
+naics#31142#Fruit and Vegetable Canning, Pickling, and Drying#3114
+naics#311421#Fruit and Vegetable Canning#31142
+naics#311422#Specialty Canning#31142
+naics#311423#Dried and Dehydrated Food Manufacturing#31142
+naics#3115#Dairy Product Manufacturing#311
+naics#31151#Dairy Product (except Frozen) Manufacturing#3115
+naics#311511#Fluid Milk Manufacturing#31151
+naics#311512#Creamery Butter Manufacturing#31151
+naics#311513#Cheese Manufacturing#31151
+naics#311514#Dry, Condensed, and Evaporated Dairy Product Manufacturing#31151
+naics#31152#Ice Cream and Frozen Dessert Manufacturing#3115
+naics#3116#Animal Slaughtering and Processing#311
+naics#31161#Animal Slaughtering and Processing#3116
+naics#311611#Animal (except Poultry) Slaughtering#31161
+naics#311612#Meat Processed from Carcasses#31161
+naics#311613#Rendering and Meat Byproduct Processing#31161
+naics#311615#Poultry Processing#31161
+naics#3117#Seafood Product Preparation and Packaging#311
+naics#31171#Seafood Product Preparation and Packaging#3117
+naics#311711#Seafood Canning#31171
+naics#311712#Fresh and Frozen Seafood Processing#31171
+naics#3118#Bakeries and Tortilla Manufacturing#311
+naics#31181#Bread and Bakery Product Manufacturing#3118
+naics#311811#Retail Bakeries#31181
+naics#311812#Commercial Bakeries#31181
+naics#311813#Frozen Cakes, Pies, and Other Pastries Manufacturing#31181
+naics#31182#Cookie, Cracker, and Pasta Manufacturing#3118
+naics#311821#Cookie and Cracker Manufacturing#31182
+naics#311822#Flour Mixes and Dough Manufacturing from Purchased Flour#31182
+naics#311823#Dry Pasta Manufacturing#31182
+naics#31183#Tortilla Manufacturing#3118
+naics#3119#Other Food Manufacturing#311
+naics#31191#Snack Food Manufacturing#3119
+naics#311911#Roasted Nuts and Peanut Butter Manufacturing#31191
+naics#311919#Other Snack Food Manufacturing#31191
+naics#31192#Coffee and Tea Manufacturing#3119
+naics#31193#Flavoring Syrup and Concentrate Manufacturing#3119
+naics#31194#Seasoning and Dressing Manufacturing#3119
+naics#311941#Mayonnaise, Dressing, and Other Prepared Sauce Manufacturing#31194
+naics#311942#Spice and Extract Manufacturing#31194
+naics#31199#All Other Food Manufacturing#3119
+naics#311991#Perishable Prepared Food Manufacturing#31199
+naics#311999#All Other Miscellaneous Food Manufacturing#31199
+naics#312#Beverage and Tobacco Product Manufacturing#31
+naics#3121#Beverage Manufacturing#312
+naics#31211#Soft Drink and Ice Manufacturing#3121
+naics#312111#Soft Drink Manufacturing#31211
+naics#312112#Bottled Water Manufacturing#31211
+naics#312113#Ice Manufacturing#31211
+naics#31212#Breweries#3121
+naics#31213#Wineries#3121
+naics#31214#Distilleries#3121
+naics#3122#Tobacco Manufacturing#312
+naics#31221#Tobacco Stemming and Redrying#3122
+naics#31222#Tobacco Product Manufacturing#3122
+naics#312221#Cigarette Manufacturing#31222
+naics#312229#Other Tobacco Product Manufacturing#31222
+naics#313#Textile Mills#31
+naics#3131#Fiber, Yarn, and Thread Mills#313
+naics#31311#Fiber, Yarn, and Thread Mills#3131
+naics#313111#Yarn Spinning Mills#31311
+naics#313112#Yarn Texturizing, Throwing, and Twisting Mills#31311
+naics#313113#Thread Mills#31311
+naics#3132#Fabric Mills#313
+naics#31321#Broadwoven Fabric Mills#3132
+naics#31322#Narrow Fabric Mills and Schiffli Machine Embroidery#3132
+naics#313221#Narrow Fabric Mills#31322
+naics#313222#Schiffli Machine Embroidery#31322
+naics#31323#Nonwoven Fabric Mills#3132
+naics#31324#Knit Fabric Mills#3132
+naics#313241#Weft Knit Fabric Mills#31324
+naics#313249#Other Knit Fabric and Lace Mills#31324
+naics#3133#Textile and Fabric Finishing and Fabric Coating Mills#313
+naics#31331#Textile and Fabric Finishing Mills#3133
+naics#313311#Broadwoven Fabric Finishing Mills#31331
+naics#313312#Textile and Fabric Finishing (except Broadwoven Fabric) Mills#31331
+naics#31332#Fabric Coating Mills#3133
+naics#314#Textile Product Mills#31
+naics#3141#Textile Furnishings Mills#314
+naics#31411#Carpet and Rug Mills#3141
+naics#31412#Curtain and Linen Mills#3141
+naics#314121#Curtain and Drapery Mills#31412
+naics#314129#Other Household Textile Product Mills#31412
+naics#3149#Other Textile Product Mills#314
+naics#31491#Textile Bag and Canvas Mills#3149
+naics#314911#Textile Bag Mills#31491
+naics#314912#Canvas and Related Product Mills#31491
+naics#31499#All Other Textile Product Mills#3149
+naics#314991#Rope, Cordage, and Twine Mills#31499
+naics#314992#Tire Cord and Tire Fabric Mills#31499
+naics#314999#All Other Miscellaneous Textile Product Mills#31499
+naics#315#Apparel Manufacturing#31
+naics#3151#Apparel Knitting Mills#315
+naics#31511#Hosiery and Sock Mills#3151
+naics#315111#Sheer Hosiery Mills#31511
+naics#315119#Other Hosiery and Sock Mills#31511
+naics#31519#Other Apparel Knitting Mills#3151
+naics#315191#Outerwear Knitting Mills#31519
+naics#315192#Underwear and Nightwear Knitting Mills#31519
+naics#3152#Cut and Sew Apparel Manufacturing#315
+naics#31521#Cut and Sew Apparel Contractors#3152
+naics#315211#Men's and Boys' Cut and Sew Apparel Contractors#31521
+naics#315212#Women's, Girls', and Infants' Cut and Sew Apparel Contractors#31521
+naics#31522#Men's and Boys' Cut and Sew Apparel Manufacturing#3152
+naics#315221#Men's and Boys' Cut and Sew Underwear and Nightwear Manufacturing#31522
+naics#315222#Men's and Boys' Cut and Sew Suit, Coat, and Overcoat Manufacturing#31522
+naics#315223#Men's and Boys' Cut and Sew Shirt (except Work Shirt) Manufacturing#31522
+naics#315224#Men's and Boys' Cut and Sew Trouser, Slack, and Jean Manufacturing#31522
+naics#315225#Men's and Boys' Cut and Sew Work Clothing Manufacturing#31522
+naics#315228#Men's and Boys' Cut and Sew Other Outerwear Manufacturing#31522
+naics#31523#Women's and Girls' Cut and Sew Apparel Manufacturing#3152
+naics#315231#Women's and Girls' Cut and Sew Lingerie, Loungewear, and Nightwear Manufacturing#31523
+naics#315232#Women's and Girls' Cut and Sew Blouse and Shirt Manufacturing#31523
+naics#315233#Women's and Girls' Cut and Sew Dress Manufacturing#31523
+naics#315234#Women's and Girls' Cut and Sew Suit, Coat, Tailored Jacket, and Skirt Manufacturing#31523
+naics#315239#Women's and Girls' Cut and Sew Other Outerwear Manufacturing#31523
+naics#31529#Other Cut and Sew Apparel Manufacturing#3152
+naics#315291#Infants' Cut and Sew Apparel Manufacturing#31529
+naics#315292#Fur and Leather Apparel Manufacturing#31529
+naics#315299#All Other Cut and Sew Apparel Manufacturing#31529
+naics#3159#Apparel Accessories and Other Apparel Manufacturing#315
+naics#31599#Apparel Accessories and Other Apparel Manufacturing#3159
+naics#315991#Hat, Cap, and Millinery Manufacturing#31599
+naics#315992#Glove and Mitten Manufacturing#31599
+naics#315993#Men's and Boys' Neckwear Manufacturing#31599
+naics#315999#Other Apparel Accessories and Other Apparel Manufacturing#31599
+naics#316#Leather and Allied Product Manufacturing#31
+naics#3161#Leather and Hide Tanning and Finishing#316
+naics#31611#Leather and Hide Tanning and Finishing#3161
+naics#3162#Footwear Manufacturing#316
+naics#31621#Footwear Manufacturing#3162
+naics#316211#Rubber and Plastics Footwear Manufacturing#31621
+naics#316212#House Slipper Manufacturing#31621
+naics#316213#Men's Footwear (except Athletic) Manufacturing#31621
+naics#316214#Women's Footwear (except Athletic) Manufacturing#31621
+naics#316219#Other Footwear Manufacturing#31621
+naics#3169#Other Leather and Allied Product Manufacturing#316
+naics#31699#Other Leather and Allied Product Manufacturing#3169
+naics#316991#Luggage Manufacturing#31699
+naics#316992#Women's Handbag and Purse Manufacturing#31699
+naics#316993#Personal Leather Good (except Women's Handbag and Purse) Manufacturing#31699
+naics#316999#All Other Leather Good Manufacturing#31699
+naics#32#Manufacturing#32
+naics#321#Wood Product Manufacturing#32
+naics#3211#Sawmills and Wood Preservation#321
+naics#32111#Sawmills and Wood Preservation#3211
+naics#321113#Sawmills#32111
+naics#321114#Wood Preservation#32111
+naics#3212#Veneer, Plywood, and Engineered Wood Product Manufacturing#321
+naics#32121#Veneer, Plywood, and Engineered Wood Product Manufacturing#3212
+naics#321211#Hardwood Veneer and Plywood Manufacturing#32121
+naics#321212#Softwood Veneer and Plywood Manufacturing#32121
+naics#321213#Engineered Wood Member (except Truss) Manufacturing#32121
+naics#321214#Truss Manufacturing#32121
+naics#321219#Reconstituted Wood Product Manufacturing#32121
+naics#3219#Other Wood Product Manufacturing#321
+naics#32191#Millwork#3219
+naics#321911#Wood Window and Door Manufacturing#32191
+naics#321912#Cut Stock, Resawing Lumber, and Planing#32191
+naics#321918#Other Millwork (including Flooring)#32191
+naics#32192#Wood Container and Pallet Manufacturing#3219
+naics#32199#All Other Wood Product Manufacturing#3219
+naics#321991#Manufactured Home (Mobile Home) Manufacturing#32199
+naics#321992#Prefabricated Wood Building Manufacturing#32199
+naics#321999#All Other Miscellaneous Wood Product Manufacturing#32199
+naics#322#Paper Manufacturing#32
+naics#3221#Pulp, Paper, and Paperboard Mills#322
+naics#32211#Pulp Mills#3221
+naics#32212#Paper Mills#3221
+naics#322121#Paper (except Newsprint) Mills#32212
+naics#322122#Newsprint Mills#32212
+naics#32213#Paperboard Mills#3221
+naics#3222#Converted Paper Product Manufacturing#322
+naics#32221#Paperboard Container Manufacturing#3222
+naics#322211#Corrugated and Solid Fiber Box Manufacturing#32221
+naics#322212#Folding Paperboard Box Manufacturing#32221
+naics#322213#Setup Paperboard Box Manufacturing#32221
+naics#322214#Fiber Can, Tube, Drum, and Similar Products Manufacturing#32221
+naics#322215#Nonfolding Sanitary Food Container Manufacturing#32221
+naics#32222#Paper Bag and Coated and Treated Paper Manufacturing#3222
+naics#322221#Coated and Laminated Packaging Paper and Plastics Film Manufacturing#32222
+naics#322222#Coated and Laminated Paper Manufacturing#32222
+naics#322223#Plastics, Foil, and Coated Paper Bag Manufacturing#32222
+naics#322224#Uncoated Paper and Multiwall Bag Manufacturing#32222
+naics#322225#Laminated Aluminum Foil Manufacturing for Flexible Packaging Uses#32222
+naics#322226#Surface-Coated Paperboard Manufacturing#32222
+naics#32223#Stationery Product Manufacturing#3222
+naics#322231#Die-Cut Paper and Paperboard Office Supplies Manufacturing#32223
+naics#322232#Envelope Manufacturing#32223
+naics#322233#Stationery, Tablet, and Related Product Manufacturing#32223
+naics#32229#Other Converted Paper Product Manufacturing#3222
+naics#322291#Sanitary Paper Product Manufacturing#32229
+naics#322299#All Other Converted Paper Product Manufacturing#32229
+naics#323#Printing and Related Support Activities#32
+naics#3231#Printing and Related Support Activities#323
+naics#32311#Printing#3231
+naics#323110#Commercial Lithographic Printing#32311
+naics#323111#Commercial Gravure Printing#32311
+naics#323112#Commercial Flexographic Printing#32311
+naics#323113#Commercial Screen Printing#32311
+naics#323114#Quick Printing#32311
+naics#323115#Digital Printing#32311
+naics#323116#Manifold Business Forms Printing#32311
+naics#323117#Books Printing#32311
+naics#323118#Blankbook, Looseleaf Binders, and Devices Manufacturing#32311
+naics#323119#Other Commercial Printing#32311
+naics#32312#Support Activities for Printing#3231
+naics#323121#Tradebinding and Related Work#32312
+naics#323122#Prepress Services#32312
+naics#324#Petroleum and Coal Products Manufacturing#32
+naics#3241#Petroleum and Coal Products Manufacturing#324
+naics#32411#Petroleum Refineries#3241
+naics#32412#Asphalt Paving, Roofing, and Saturated Materials Manufacturing#3241
+naics#324121#Asphalt Paving Mixture and Block Manufacturing#32412
+naics#324122#Asphalt Shingle and Coating Materials Manufacturing#32412
+naics#32419#Other Petroleum and Coal Products Manufacturing#3241
+naics#324191#Petroleum Lubricating Oil and Grease Manufacturing#32419
+naics#324199#All Other Petroleum and Coal Products Manufacturing#32419
+naics#325#Chemical Manufacturing#32
+naics#3251#Basic Chemical Manufacturing#325
+naics#32511#Petrochemical Manufacturing#3251
+naics#32512#Industrial Gas Manufacturing#3251
+naics#32513#Synthetic Dye and Pigment Manufacturing#3251
+naics#325131#Inorganic Dye and Pigment Manufacturing#32513
+naics#325132#Synthetic Organic Dye and Pigment Manufacturing#32513
+naics#32518#Other Basic Inorganic Chemical Manufacturing#3251
+naics#325181#Alkalies and Chlorine Manufacturing#32518
+naics#325182#Carbon Black Manufacturing#32518
+naics#325188#All Other Basic Inorganic Chemical Manufacturing#32518
+naics#32519#Other Basic Organic Chemical Manufacturing#3251
+naics#325191#Gum and Wood Chemical Manufacturing#32519
+naics#325192#Cyclic Crude and Intermediate Manufacturing#32519
+naics#325193#Ethyl Alcohol Manufacturing#32519
+naics#325199#All Other Basic Organic Chemical Manufacturing#32519
+naics#3252#Resin, Synthetic Rubber, and Artificial and Synthetic Fibers and Filaments Manufacturing#325
+naics#32521#Resin and Synthetic Rubber Manufacturing#3252
+naics#325211#Plastics Material and Resin Manufacturing#32521
+naics#325212#Synthetic Rubber Manufacturing#32521
+naics#32522#Artificial and Synthetic Fibers and Filaments Manufacturing#3252
+naics#325221#Cellulosic Organic Fiber Manufacturing#32522
+naics#325222#Noncellulosic Organic Fiber Manufacturing#32522
+naics#3253#Pesticide, Fertilizer, and Other Agricultural Chemical Manufacturing#325
+naics#32531#Fertilizer Manufacturing#3253
+naics#325311#Nitrogenous Fertilizer Manufacturing#32531
+naics#325312#Phosphatic Fertilizer Manufacturing#32531
+naics#325314#Fertilizer (Mixing Only) Manufacturing#32531
+naics#32532#Pesticide and Other Agricultural Chemical Manufacturing#3253
+naics#3254#Pharmaceutical and Medicine Manufacturing#325
+naics#32541#Pharmaceutical and Medicine Manufacturing#3254
+naics#325411#Medicinal and Botanical Manufacturing#32541
+naics#325412#Pharmaceutical Preparation Manufacturing#32541
+naics#325413#In-Vitro Diagnostic Substance Manufacturing#32541
+naics#325414#Biological Product (except Diagnostic) Manufacturing#32541
+naics#3255#Paint, Coating, and Adhesive Manufacturing#325
+naics#32551#Paint and Coating Manufacturing#3255
+naics#32552#Adhesive Manufacturing#3255
+naics#3256#Soap, Cleaning Compound, and Toilet Preparation Manufacturing#325
+naics#32561#Soap and Cleaning Compound Manufacturing#3256
+naics#325611#Soap and Other Detergent Manufacturing#32561
+naics#325612#Polish and Other Sanitation Good Manufacturing#32561
+naics#325613#Surface Active Agent Manufacturing#32561
+naics#32562#Toilet Preparation Manufacturing#3256
+naics#3259#Other Chemical Product and Preparation Manufacturing#325
+naics#32591#Printing Ink Manufacturing#3259
+naics#32592#Explosives Manufacturing#3259
+naics#32599#All Other Chemical Product and Preparation Manufacturing#3259
+naics#325991#Custom Compounding of Purchased Resins#32599
+naics#325992#Photographic Film, Paper, Plate, and Chemical Manufacturing#32599
+naics#325998#All Other Miscellaneous Chemical Product and Preparation Manufacturing#32599
+naics#326#Plastics and Rubber Products Manufacturing#32
+naics#3261#Plastics Product Manufacturing#326
+naics#32611#Unsupported Plastics Film, Sheet, and Bag Manufacturing#3261
+naics#326111#Unsupported Plastics Bag Manufacturing#32611
+naics#326112#Unsupported Plastics Packaging Film and Sheet Manufacturing#32611
+naics#326113#Unsupported Plastics Film and Sheet (except Packaging) Manufacturing#32611
+naics#32612#Plastics Pipe, Pipe Fitting, and Unsupported Profile Shape Manufacturing#3261
+naics#326121#Unsupported Plastics Profile Shape Manufacturing#32612
+naics#326122#Plastics Pipe and Pipe Fitting Manufacturing#32612
+naics#32613#Laminated Plastics Plate, Sheet, and Shape Manufacturing#3261
+naics#32614#Polystyrene Foam Product Manufacturing#3261
+naics#32615#Urethane and Other Foam Product (except Polystyrene) Manufacturing#3261
+naics#32616#Plastics Bottle Manufacturing#3261
+naics#32619#Other Plastics Product Manufacturing#3261
+naics#326191#Plastics Plumbing Fixture Manufacturing#32619
+naics#326192#Resilient Floor Covering Manufacturing#32619
+naics#326199#All Other Plastics Product Manufacturing#32619
+naics#3262#Rubber Product Manufacturing#326
+naics#32621#Tire Manufacturing#3262
+naics#326211#Tire Manufacturing (except Retreading)#32621
+naics#326212#Tire Retreading#32621
+naics#32622#Rubber and Plastics Hoses and Belting Manufacturing#3262
+naics#32629#Other Rubber Product Manufacturing#3262
+naics#326291#Rubber Product Manufacturing for Mechanical Use#32629
+naics#326299#All Other Rubber Product Manufacturing#32629
+naics#327#Nonmetallic Mineral Product Manufacturing#32
+naics#3271#Clay Product and Refractory Manufacturing#327
+naics#32711#Pottery, Ceramics, and Plumbing Fixture Manufacturing#3271
+naics#327111#Vitreous China Plumbing Fixture and China and Earthenware Bathroom Accessories Manufacturing#32711
+naics#327112#Vitreous China, Fine Earthenware, and Other Pottery Product Manufacturing#32711
+naics#327113#Porcelain Electrical Supply Manufacturing#32711
+naics#32712#Clay Building Material and Refractories Manufacturing#3271
+naics#327121#Brick and Structural Clay Tile Manufacturing#32712
+naics#327122#Ceramic Wall and Floor Tile Manufacturing#32712
+naics#327123#Other Structural Clay Product Manufacturing#32712
+naics#327124#Clay Refractory Manufacturing#32712
+naics#327125#Nonclay Refractory Manufacturing#32712
+naics#3272#Glass and Glass Product Manufacturing#327
+naics#32721#Glass and Glass Product Manufacturing#3272
+naics#327211#Flat Glass Manufacturing#32721
+naics#327212#Other Pressed and Blown Glass and Glassware Manufacturing#32721
+naics#327213#Glass Container Manufacturing#32721
+naics#327215#Glass Product Manufacturing Made of Purchased Glass#32721
+naics#3273#Cement and Concrete Product Manufacturing#327
+naics#32731#Cement Manufacturing#3273
+naics#32732#Ready-Mix Concrete Manufacturing#3273
+naics#32733#Concrete Pipe, Brick, and Block Manufacturing#3273
+naics#327331#Concrete Block and Brick Manufacturing#32733
+naics#327332#Concrete Pipe Manufacturing#32733
+naics#32739#Other Concrete Product Manufacturing#3273
+naics#3274#Lime and Gypsum Product Manufacturing#327
+naics#32741#Lime Manufacturing#3274
+naics#32742#Gypsum Product Manufacturing#3274
+naics#3279#Other Nonmetallic Mineral Product Manufacturing#327
+naics#32791#Abrasive Product Manufacturing#3279
+naics#32799#All Other Nonmetallic Mineral Product Manufacturing#3279
+naics#327991#Cut Stone and Stone Product Manufacturing#32799
+naics#327992#Ground or Treated Mineral and Earth Manufacturing#32799
+naics#327993#Mineral Wool Manufacturing#32799
+naics#327999#All Other Miscellaneous Nonmetallic Mineral Product Manufacturing#32799
+naics#33#Manufacturing#33
+naics#331#Primary Metal Manufacturing#33
+naics#3311#Iron and Steel Mills and Ferroalloy Manufacturing#331
+naics#33111#Iron and Steel Mills and Ferroalloy Manufacturing#3311
+naics#331111#Iron and Steel Mills#33111
+naics#331112#Electrometallurgical Ferroalloy Product Manufacturing#33111
+naics#3312#Steel Product Manufacturing from Purchased Steel#331
+naics#33121#Iron and Steel Pipe and Tube Manufacturing from Purchased Steel#3312
+naics#33122#Rolling and Drawing of Purchased Steel#3312
+naics#331221#Rolled Steel Shape Manufacturing#33122
+naics#331222#Steel Wire Drawing#33122
+naics#3313#Alumina and Aluminum Production and Processing#331
+naics#33131#Alumina and Aluminum Production and Processing#3313
+naics#331311#Alumina Refining#33131
+naics#331312#Primary Aluminum Production#33131
+naics#331314#Secondary Smelting and Alloying of Aluminum#33131
+naics#331315#Aluminum Sheet, Plate, and Foil Manufacturing#33131
+naics#331316#Aluminum Extruded Product Manufacturing#33131
+naics#331319#Other Aluminum Rolling and Drawing#33131
+naics#3314#Nonferrous Metal (except Aluminum) Production and Processing#331
+naics#33141#Nonferrous Metal (except Aluminum) Smelting and Refining#3314
+naics#331411#Primary Smelting and Refining of Copper#33141
+naics#331419#Primary Smelting and Refining of Nonferrous Metal (except Copper and Aluminum)#33141
+naics#33142#Copper Rolling, Drawing, Extruding, and Alloying#3314
+naics#331421#Copper Rolling, Drawing, and Extruding#33142
+naics#331422#Copper Wire (except Mechanical) Drawing#33142
+naics#331423#Secondary Smelting, Refining, and Alloying of Copper#33142
+naics#33149#Nonferrous Metal (except Copper and Aluminum) Rolling, Drawing, Extruding, and Alloying#3314
+naics#331491#Nonferrous Metal (except Copper and Aluminum) Rolling, Drawing, and Extruding#33149
+naics#331492#Secondary Smelting, Refining, and Alloying of Nonferrous Metal (except Copper and Aluminum)#33149
+naics#3315#Foundries#331
+naics#33151#Ferrous Metal Foundries#3315
+naics#331511#Iron Foundries#33151
+naics#331512#Steel Investment Foundries#33151
+naics#331513#Steel Foundries (except Investment)#33151
+naics#33152#Nonferrous Metal Foundries#3315
+naics#331521#Aluminum Die-Casting Foundries#33152
+naics#331522#Nonferrous (except Aluminum) Die-Casting Foundries#33152
+naics#331524#Aluminum Foundries (except Die-Casting)#33152
+naics#331525#Copper Foundries (except Die-Casting)#33152
+naics#331528#Other Nonferrous Foundries (except Die-Casting)#33152
+naics#332#Fabricated Metal Product Manufacturing#33
+naics#3321#Forging and Stamping#332
+naics#33211#Forging and Stamping#3321
+naics#332111#Iron and Steel Forging#33211
+naics#332112#Nonferrous Forging#33211
+naics#332114#Custom Roll Forming#33211
+naics#332115#Crown and Closure Manufacturing#33211
+naics#332116#Metal Stamping#33211
+naics#332117#Powder Metallurgy Part Manufacturing#33211
+naics#3322#Cutlery and Handtool Manufacturing#332
+naics#33221#Cutlery and Handtool Manufacturing#3322
+naics#332211#Cutlery and Flatware (except Precious) Manufacturing#33221
+naics#332212#Hand and Edge Tool Manufacturing#33221
+naics#332213#Saw Blade and Handsaw Manufacturing#33221
+naics#332214#Kitchen Utensil, Pot, and Pan Manufacturing#33221
+naics#3323#Architectural and Structural Metals Manufacturing#332
+naics#33231#Plate Work and Fabricated Structural Product Manufacturing#3323
+naics#332311#Prefabricated Metal Building and Component Manufacturing#33231
+naics#332312#Fabricated Structural Metal Manufacturing#33231
+naics#332313#Plate Work Manufacturing#33231
+naics#33232#Ornamental and Architectural Metal Products Manufacturing#3323
+naics#332321#Metal Window and Door Manufacturing#33232
+naics#332322#Sheet Metal Work Manufacturing#33232
+naics#332323#Ornamental and Architectural Metal Work Manufacturing#33232
+naics#3324#Boiler, Tank, and Shipping Container Manufacturing#332
+naics#33241#Power Boiler and Heat Exchanger Manufacturing#3324
+naics#33242#Metal Tank (Heavy Gauge) Manufacturing#3324
+naics#33243#Metal Can, Box, and Other Metal Container (Light Gauge) Manufacturing#3324
+naics#332431#Metal Can Manufacturing#33243
+naics#332439#Other Metal Container Manufacturing#33243
+naics#3325#Hardware Manufacturing#332
+naics#33251#Hardware Manufacturing#3325
+naics#3326#Spring and Wire Product Manufacturing#332
+naics#33261#Spring and Wire Product Manufacturing#3326
+naics#332611#Spring (Heavy Gauge) Manufacturing#33261
+naics#332612#Spring (Light Gauge) Manufacturing#33261
+naics#332618#Other Fabricated Wire Product Manufacturing#33261
+naics#3327#Machine Shops; Turned Product; and Screw, Nut, and Bolt Manufacturing#332
+naics#33271#Machine Shops#3327
+naics#33272#Turned Product and Screw, Nut, and Bolt Manufacturing#3327
+naics#332721#Precision Turned Product Manufacturing#33272
+naics#332722#Bolt, Nut, Screw, Rivet, and Washer Manufacturing#33272
+naics#3328#Coating, Engraving, Heat Treating, and Allied Activities#332
+naics#33281#Coating, Engraving, Heat Treating, and Allied Activities#3328
+naics#332811#Metal Heat Treating#33281
+naics#332812#Metal Coating, Engraving (except Jewelry and Silverware), and Allied Services to Manufacturers#33281
+naics#332813#Electroplating, Plating, Polishing, Anodizing, and Coloring#33281
+naics#3329#Other Fabricated Metal Product Manufacturing#332
+naics#33291#Metal Valve Manufacturing#3329
+naics#332911#Industrial Valve Manufacturing#33291
+naics#332912#Fluid Power Valve and Hose Fitting Manufacturing#33291
+naics#332913#Plumbing Fixture Fitting and Trim Manufacturing#33291
+naics#332919#Other Metal Valve and Pipe Fitting Manufacturing#33291
+naics#33299#All Other Fabricated Metal Product Manufacturing#3329
+naics#332991#Ball and Roller Bearing Manufacturing#33299
+naics#332992#Small Arms Ammunition Manufacturing#33299
+naics#332993#Ammunition (except Small Arms) Manufacturing#33299
+naics#332994#Small Arms Manufacturing#33299
+naics#332995#Other Ordnance and Accessories Manufacturing#33299
+naics#332996#Fabricated Pipe and Pipe Fitting Manufacturing#33299
+naics#332997#Industrial Pattern Manufacturing#33299
+naics#332998#Enameled Iron and Metal Sanitary Ware Manufacturing#33299
+naics#332999#All Other Miscellaneous Fabricated Metal Product Manufacturing#33299
+naics#333#Machinery Manufacturing#33
+naics#3331#Agriculture, Construction, and Mining Machinery Manufacturing#333
+naics#33311#Agricultural Implement Manufacturing#3331
+naics#333111#Farm Machinery and Equipment Manufacturing#33311
+naics#333112#Lawn and Garden Tractor and Home Lawn and Garden Equipment Manufacturing#33311
+naics#33312#Construction Machinery Manufacturing#3331
+naics#33313#Mining and Oil and Gas Field Machinery Manufacturing#3331
+naics#333131#Mining Machinery and Equipment Manufacturing#33313
+naics#333132#Oil and Gas Field Machinery and Equipment Manufacturing#33313
+naics#3332#Industrial Machinery Manufacturing#333
+naics#33321#Sawmill and Woodworking Machinery Manufacturing#3332
+naics#33322#Plastics and Rubber Industry Machinery Manufacturing#3332
+naics#33329#Other Industrial Machinery Manufacturing#3332
+naics#333291#Paper Industry Machinery Manufacturing#33329
+naics#333292#Textile Machinery Manufacturing#33329
+naics#333293#Printing Machinery and Equipment Manufacturing#33329
+naics#333294#Food Product Machinery Manufacturing#33329
+naics#333295#Semiconductor Machinery Manufacturing#33329
+naics#333298#All Other Industrial Machinery Manufacturing#33329
+naics#3333#Commercial and Service Industry Machinery Manufacturing#333
+naics#33331#Commercial and Service Industry Machinery Manufacturing#3333
+naics#333311#Automatic Vending Machine Manufacturing#33331
+naics#333312#Commercial Laundry, Drycleaning, and Pressing Machine Manufacturing#33331
+naics#333313#Office Machinery Manufacturing#33331
+naics#333314#Optical Instrument and Lens Manufacturing#33331
+naics#333315#Photographic and Photocopying Equipment Manufacturing#33331
+naics#333319#Other Commercial and Service Industry Machinery Manufacturing#33331
+naics#3334#Ventilation, Heating, Air-Conditioning, and Commercial Refrigeration Equipment Manufacturing#333
+naics#33341#Ventilation, Heating, Air-Conditioning, and Commercial Refrigeration Equipment Manufacturing#3334
+naics#333411#Air Purification Equipment Manufacturing#33341
+naics#333412#Industrial and Commercial Fan and Blower Manufacturing#33341
+naics#333414#Heating Equipment (except Warm Air Furnaces) Manufacturing#33341
+naics#333415#Air-Conditioning and Warm Air Heating Equipment and Commercial and Industrial Refrigeration Equipment Manufacturing#33341
+naics#3335#Metalworking Machinery Manufacturing#333
+naics#33351#Metalworking Machinery Manufacturing#3335
+naics#333511#Industrial Mold Manufacturing#33351
+naics#333512#Machine Tool (Metal Cutting Types) Manufacturing#33351
+naics#333513#Machine Tool (Metal Forming Types) Manufacturing#33351
+naics#333514#Special Die and Tool, Die Set, Jig, and Fixture Manufacturing#33351
+naics#333515#Cutting Tool and Machine Tool Accessory Manufacturing#33351
+naics#333516#Rolling Mill Machinery and Equipment Manufacturing#33351
+naics#333518#Other Metalworking Machinery Manufacturing#33351
+naics#3336#Engine, Turbine, and Power Transmission Equipment Manufacturing#333
+naics#33361#Engine, Turbine, and Power Transmission Equipment Manufacturing#3336
+naics#333611#Turbine and Turbine Generator Set Units Manufacturing#33361
+naics#333612#Speed Changer, Industrial High-Speed Drive, and Gear Manufacturing#33361
+naics#333613#Mechanical Power Transmission Equipment Manufacturing#33361
+naics#333618#Other Engine Equipment Manufacturing#33361
+naics#3339#Other General Purpose Machinery Manufacturing#333
+naics#33391#Pump and Compressor Manufacturing#3339
+naics#333911#Pump and Pumping Equipment Manufacturing#33391
+naics#333912#Air and Gas Compressor Manufacturing#33391
+naics#333913#Measuring and Dispensing Pump Manufacturing#33391
+naics#33392#Material Handling Equipment Manufacturing#3339
+naics#333921#Elevator and Moving Stairway Manufacturing#33392
+naics#333922#Conveyor and Conveying Equipment Manufacturing#33392
+naics#333923#Overhead Traveling Crane, Hoist, and Monorail System Manufacturing#33392
+naics#333924#Industrial Truck, Tractor, Trailer, and Stacker Machinery Manufacturing#33392
+naics#33399#All Other General Purpose Machinery Manufacturing#3339
+naics#333991#Power-Driven Handtool Manufacturing#33399
+naics#333992#Welding and Soldering Equipment Manufacturing#33399
+naics#333993#Packaging Machinery Manufacturing#33399
+naics#333994#Industrial Process Furnace and Oven Manufacturing#33399
+naics#333995#Fluid Power Cylinder and Actuator Manufacturing#33399
+naics#333996#Fluid Power Pump and Motor Manufacturing#33399
+naics#333997#Scale and Balance (except Laboratory) Manufacturing#33399
+naics#333999#All Other Miscellaneous General Purpose Machinery Manufacturing#33399
+naics#334#Computer and Electronic Product Manufacturing#33
+naics#3341#Computer and Peripheral Equipment Manufacturing#334
+naics#33411#Computer and Peripheral Equipment Manufacturing#3341
+naics#334111#Electronic Computer Manufacturing#33411
+naics#334112#Computer Storage Device Manufacturing#33411
+naics#334113#Computer Terminal Manufacturing#33411
+naics#334119#Other Computer Peripheral Equipment Manufacturing#33411
+naics#3342#Communications Equipment Manufacturing#334
+naics#33421#Telephone Apparatus Manufacturing#3342
+naics#33422#Radio and Television Broadcasting and Wireless Communications Equipment Manufacturing#3342
+naics#33429#Other Communications Equipment Manufacturing#3342
+naics#3343#Audio and Video Equipment Manufacturing#334
+naics#33431#Audio and Video Equipment Manufacturing#3343
+naics#3344#Semiconductor and Other Electronic Component Manufacturing#334
+naics#33441#Semiconductor and Other Electronic Component Manufacturing#3344
+naics#334411#Electron Tube Manufacturing#33441
+naics#334412#Bare Printed Circuit Board Manufacturing#33441
+naics#334413#Semiconductor and Related Device Manufacturing#33441
+naics#334414#Electronic Capacitor Manufacturing#33441
+naics#334415#Electronic Resistor Manufacturing#33441
+naics#334416#Electronic Coil, Transformer, and Other Inductor Manufacturing#33441
+naics#334417#Electronic Connector Manufacturing#33441
+naics#334418#Printed Circuit Assembly (Electronic Assembly) Manufacturing#33441
+naics#334419#Other Electronic Component Manufacturing#33441
+naics#3345#Navigational, Measuring, Electromedical, and Control Instruments Manufacturing#334
+naics#33451#Navigational, Measuring, Electromedical, and Control Instruments Manufacturing#3345
+naics#334510#Electromedical and Electrotherapeutic Apparatus Manufacturing#33451
+naics#334511#Search, Detection, Navigation, Guidance, Aeronautical, and Nautical System and Instrument Manufacturing#33451
+naics#334512#Automatic Environmental Control Manufacturing for Residential, Commercial, and Appliance Use#33451
+naics#334513#Instruments and Related Products Manufacturing for Measuring, Displaying, and Controlling Industrial Process Variables#33451
+naics#334514#Totalizing Fluid Meter and Counting Device Manufacturing#33451
+naics#334515#Instrument Manufacturing for Measuring and Testing Electricity and Electrical Signals#33451
+naics#334516#Analytical Laboratory Instrument Manufacturing#33451
+naics#334517#Irradiation Apparatus Manufacturing#33451
+naics#334518#Watch, Clock, and Part Manufacturing#33451
+naics#334519#Other Measuring and Controlling Device Manufacturing#33451
+naics#3346#Manufacturing and Reproducing Magnetic and Optical Media#334
+naics#33461#Manufacturing and Reproducing Magnetic and Optical Media#3346
+naics#334611#Software Reproducing#33461
+naics#334612#Prerecorded Compact Disc (except Software), Tape, and Record Reproducing#33461
+naics#334613#Magnetic and Optical Recording Media Manufacturing#33461
+naics#335#Electrical Equipment, Appliance, and Component Manufacturing#33
+naics#3351#Electric Lighting Equipment Manufacturing#335
+naics#33511#Electric Lamp Bulb and Part Manufacturing#3351
+naics#33512#Lighting Fixture Manufacturing#3351
+naics#335121#Residential Electric Lighting Fixture Manufacturing#33512
+naics#335122#Commercial, Industrial, and Institutional Electric Lighting Fixture Manufacturing#33512
+naics#335129#Other Lighting Equipment Manufacturing#33512
+naics#3352#Household Appliance Manufacturing#335
+naics#33521#Small Electrical Appliance Manufacturing#3352
+naics#335211#Electric Housewares and Household Fan Manufacturing#33521
+naics#335212#Household Vacuum Cleaner Manufacturing#33521
+naics#33522#Major Appliance Manufacturing#3352
+naics#335221#Household Cooking Appliance Manufacturing#33522
+naics#335222#Household Refrigerator and Home Freezer Manufacturing#33522
+naics#335224#Household Laundry Equipment Manufacturing#33522
+naics#335228#Other Major Household Appliance Manufacturing#33522
+naics#3353#Electrical Equipment Manufacturing#335
+naics#33531#Electrical Equipment Manufacturing#3353
+naics#335311#Power, Distribution, and Specialty Transformer Manufacturing#33531
+naics#335312#Motor and Generator Manufacturing#33531
+naics#335313#Switchgear and Switchboard Apparatus Manufacturing#33531
+naics#335314#Relay and Industrial Control Manufacturing#33531
+naics#3359#Other Electrical Equipment and Component Manufacturing#335
+naics#33591#Battery Manufacturing#3359
+naics#335911#Storage Battery Manufacturing#33591
+naics#335912#Primary Battery Manufacturing#33591
+naics#33592#Communication and Energy Wire and Cable Manufacturing#3359
+naics#335921#Fiber Optic Cable Manufacturing#33592
+naics#335929#Other Communication and Energy Wire Manufacturing#33592
+naics#33593#Wiring Device Manufacturing#3359
+naics#335931#Current-Carrying Wiring Device Manufacturing#33593
+naics#335932#Noncurrent-Carrying Wiring Device Manufacturing#33593
+naics#33599#All Other Electrical Equipment and Component Manufacturing#3359
+naics#335991#Carbon and Graphite Product Manufacturing#33599
+naics#335999#All Other Miscellaneous Electrical Equipment and Component Manufacturing#33599
+naics#336#Transportation Equipment Manufacturing#33
+naics#3361#Motor Vehicle Manufacturing#336
+naics#33611#Automobile and Light Duty Motor Vehicle Manufacturing#3361
+naics#336111#Automobile Manufacturing#33611
+naics#336112#Light Truck and Utility Vehicle Manufacturing#33611
+naics#33612#Heavy Duty Truck Manufacturing#3361
+naics#3362#Motor Vehicle Body and Trailer Manufacturing#336
+naics#33621#Motor Vehicle Body and Trailer Manufacturing#3362
+naics#336211#Motor Vehicle Body Manufacturing#33621
+naics#336212#Truck Trailer Manufacturing#33621
+naics#336213#Motor Home Manufacturing#33621
+naics#336214#Travel Trailer and Camper Manufacturing#33621
+naics#3363#Motor Vehicle Parts Manufacturing#336
+naics#33631#Motor Vehicle Gasoline Engine and Engine Parts Manufacturing#3363
+naics#336311#Carburetor, Piston, Piston Ring, and Valve Manufacturing#33631
+naics#336312#Gasoline Engine and Engine Parts Manufacturing#33631
+naics#33632#Motor Vehicle Electrical and Electronic Equipment Manufacturing#3363
+naics#336321#Vehicular Lighting Equipment Manufacturing#33632
+naics#336322#Other Motor Vehicle Electrical and Electronic Equipment Manufacturing#33632
+naics#33633#Motor Vehicle Steering and Suspension Components (except Spring) Manufacturing#3363
+naics#33634#Motor Vehicle Brake System Manufacturing#3363
+naics#33635#Motor Vehicle Transmission and Power Train Parts Manufacturing#3363
+naics#33636#Motor Vehicle Seating and Interior Trim Manufacturing#3363
+naics#33637#Motor Vehicle Metal Stamping#3363
+naics#33639#Other Motor Vehicle Parts Manufacturing#3363
+naics#336391#Motor Vehicle Air-Conditioning Manufacturing#33639
+naics#336399#All Other Motor Vehicle Parts Manufacturing#33639
+naics#3364#Aerospace Product and Parts Manufacturing#336
+naics#33641#Aerospace Product and Parts Manufacturing#3364
+naics#336411#Aircraft Manufacturing#33641
+naics#336412#Aircraft Engine and Engine Parts Manufacturing#33641
+naics#336413#Other Aircraft Parts and Auxiliary Equipment Manufacturing#33641
+naics#336414#Guided Missile and Space Vehicle Manufacturing#33641
+naics#336415#Guided Missile and Space Vehicle Propulsion Unit and Propulsion Unit Parts Manufacturing#33641
+naics#336419#Other Guided Missile and Space Vehicle Parts and Auxiliary Equipment Manufacturing#33641
+naics#3365#Railroad Rolling Stock Manufacturing#336
+naics#33651#Railroad Rolling Stock Manufacturing#3365
+naics#3366#Ship and Boat Building#336
+naics#33661#Ship and Boat Building#3366
+naics#336611#Ship Building and Repairing#33661
+naics#336612#Boat Building#33661
+naics#3369#Other Transportation Equipment Manufacturing#336
+naics#33699#Other Transportation Equipment Manufacturing#3369
+naics#336991#Motorcycle, Bicycle, and Parts Manufacturing#33699
+naics#336992#Military Armored Vehicle, Tank, and Tank Component Manufacturing#33699
+naics#336999#All Other Transportation Equipment Manufacturing#33699
+naics#337#Furniture and Related Product Manufacturing#33
+naics#3371#Household and Institutional Furniture and Kitchen Cabinet Manufacturing#337
+naics#33711#Wood Kitchen Cabinet and Countertop Manufacturing#3371
+naics#33712#Household and Institutional Furniture Manufacturing#3371
+naics#337121#Upholstered Household Furniture Manufacturing#33712
+naics#337122#Nonupholstered Wood Household Furniture Manufacturing#33712
+naics#337124#Metal Household Furniture Manufacturing#33712
+naics#337125#Household Furniture (except Wood and Metal) Manufacturing#33712
+naics#337127#Institutional Furniture Manufacturing#33712
+naics#337129#Wood Television, Radio, and Sewing Machine Cabinet Manufacturing#33712
+naics#3372#Office Furniture (including Fixtures) Manufacturing#337
+naics#33721#Office Furniture (including Fixtures) Manufacturing#3372
+naics#337211#Wood Office Furniture Manufacturing#33721
+naics#337212#Custom Architectural Woodwork and Millwork Manufacturing#33721
+naics#337214#Office Furniture (except Wood) Manufacturing#33721
+naics#337215#Showcase, Partition, Shelving, and Locker Manufacturing#33721
+naics#3379#Other Furniture Related Product Manufacturing#337
+naics#33791#Mattress Manufacturing#3379
+naics#33792#Blind and Shade Manufacturing#3379
+naics#339#Miscellaneous Manufacturing#33
+naics#3391#Medical Equipment and Supplies Manufacturing#339
+naics#33911#Medical Equipment and Supplies Manufacturing#3391
+naics#339111#Laboratory Apparatus and Furniture Manufacturing#33911
+naics#339112#Surgical and Medical Instrument Manufacturing#33911
+naics#339113#Surgical Appliance and Supplies Manufacturing#33911
+naics#339114#Dental Equipment and Supplies Manufacturing#33911
+naics#339115#Ophthalmic Goods Manufacturing#33911
+naics#339116#Dental Laboratories#33911
+naics#3399#Other Miscellaneous Manufacturing#339
+naics#33991#Jewelry and Silverware Manufacturing#3399
+naics#339911#Jewelry (except Costume) Manufacturing#33991
+naics#339912#Silverware and Hollowware Manufacturing#33991
+naics#339913#Jewelers' Material and Lapidary Work Manufacturing#33991
+naics#339914#Costume Jewelry and Novelty Manufacturing#33991
+naics#33992#Sporting and Athletic Goods Manufacturing#3399
+naics#33993#Doll, Toy, and Game Manufacturing#3399
+naics#339931#Doll and Stuffed Toy Manufacturing#33993
+naics#339932#Game, Toy, and Children's Vehicle Manufacturing#33993
+naics#33994#Office Supplies (except Paper) Manufacturing#3399
+naics#339941#Pen and Mechanical Pencil Manufacturing#33994
+naics#339942#Lead Pencil and Art Good Manufacturing#33994
+naics#339943#Marking Device Manufacturing#33994
+naics#339944#Carbon Paper and Inked Ribbon Manufacturing#33994
+naics#33995#Sign Manufacturing#3399
+naics#33999#All Other Miscellaneous Manufacturing#3399
+naics#339991#Gasket, Packing, and Sealing Device Manufacturing#33999
+naics#339992#Musical Instrument Manufacturing#33999
+naics#339993#Fastener, Button, Needle, and Pin Manufacturing#33999
+naics#339994#Broom, Brush, and Mop Manufacturing#33999
+naics#339995#Burial Casket Manufacturing#33999
+naics#339999#All Other Miscellaneous Manufacturing#33999
+naics#42#Wholesale Trade#42
+naics#421#Wholesale Trade, Durable Goods#42
+naics#4211#Motor Vehicle and Motor Vehicle Parts and Supplies Wholesalers#421
+naics#42111#Automobile and Other Motor Vehicle Wholesalers#4211
+naics#42112#Motor Vehicle Supplies and New Parts Wholesalers#4211
+naics#42113#Tire and Tube Wholesalers#4211
+naics#42114#Motor Vehicle Parts (Used) Wholesalers#4211
+naics#4212#Furniture and Home Furnishing Wholesalers#421
+naics#42121#Furniture Wholesalers#4212
+naics#42122#Home Furnishing Wholesalers#4212
+naics#4213#Lumber and Other Construction Materials Wholesalers#421
+naics#42131#Lumber, Plywood, Millwork, and Wood Panel Wholesalers#4213
+naics#42132#Brick, Stone, and Related Construction Material Wholesalers#4213
+naics#42133#Roofing, Siding, and Insulation Material Wholesalers#4213
+naics#42139#Other Construction Material Wholesalers#4213
+naics#4214#Professional and Commercial Equipment and Supplies Wholesalers#421
+naics#42141#Photographic Equipment and Supplies Wholesalers#4214
+naics#42142#Office Equipment Wholesalers#4214
+naics#42143#Computer and Computer Peripheral Equipment and Software Wholesalers#4214
+naics#42144#Other Commercial Equipment Wholesalers#4214
+naics#42145#Medical, Dental, and Hospital Equipment and Supplies Wholesalers#4214
+naics#42146#Ophthalmic Goods Wholesalers#4214
+naics#42149#Other Professional Equipment and Supplies Wholesalers#4214
+naics#4215#Metal and Mineral (except Petroleum) Wholesalers#421
+naics#42151#Metal Service Centers and Offices#4215
+naics#42152#Coal and Other Mineral and Ore Wholesalers#4215
+naics#4216#Electrical Goods Wholesalers#421
+naics#42161#Electrical Apparatus and Equipment, Wiring Supplies, and Construction Material Wholesalers#4216
+naics#42162#Electrical Appliance, Television, and Radio Set Wholesalers#4216
+naics#42169#Other Electronic Parts and Equipment Wholesalers#4216
+naics#4217#Hardware, and Plumbing and Heating Equipment and Supplies Wholesalers#421
+naics#42171#Hardware Wholesalers#4217
+naics#42172#Plumbing and Heating Equipment and Supplies (Hydronics) Wholesalers#4217
+naics#42173#Warm Air Heating and Air-Conditioning Equipment and Supplies Wholesalers#4217
+naics#42174#Refrigeration Equipment and Supplies Wholesalers#4217
+naics#4218#Machinery, Equipment, and Supplies Wholesalers#421
+naics#42181#Construction and Mining (except Oil Well) Machinery and Equipment Wholesalers#4218
+naics#42182#Farm and Garden Machinery and Equipment Wholesalers#4218
+naics#42183#Industrial Machinery and Equipment Wholesalers#4218
+naics#42184#Industrial Supplies Wholesalers#4218
+naics#42185#Service Establishment Equipment and Supplies Wholesalers#4218
+naics#42186#Transportation Equipment and Supplies (except Motor Vehicle) Wholesalers#4218
+naics#4219#Miscellaneous Durable Goods Wholesalers#421
+naics#42191#Sporting and Recreational Goods and Supplies Wholesalers#4219
+naics#42192#Toy and Hobby Goods and Supplies Wholesalers#4219
+naics#42193#Recyclable Material Wholesalers#4219
+naics#42194#Jewelry, Watch, Precious Stone, and Precious Metal Wholesalers#4219
+naics#42199#Other Miscellaneous Durable Goods Wholesalers#4219
+naics#422#Wholesale Trade, Nondurable Goods#42
+naics#4221#Paper and Paper Product Wholesalers#422
+naics#42211#Printing and Writing Paper Wholesalers#4221
+naics#42212#Stationery and Office Supplies Wholesalers#4221
+naics#42213#Industrial and Personal Service Paper Wholesalers#4221
+naics#4222#Drugs and Druggists' Sundries Wholesalers#422
+naics#42221#Drugs and Druggists' Sundries Wholesalers#4222
+naics#4223#Apparel, Piece Goods, and Notions Wholesalers#422
+naics#42231#Piece Goods, Notions, and Other Dry Goods Wholesalers#4223
+naics#42232#Men's and Boys' Clothing and Furnishings Wholesalers#4223
+naics#42233#Women's, Children's, and Infants' Clothing and Accessories Wholesalers#4223
+naics#42234#Footwear Wholesalers#4223
+naics#4224#Grocery and Related Product Wholesalers#422
+naics#42241#General Line Grocery Wholesalers#4224
+naics#42242#Packaged Frozen Food Wholesalers#4224
+naics#42243#Dairy Product (except Dried or Canned) Wholesalers#4224
+naics#42244#Poultry and Poultry Product Wholesalers#4224
+naics#42245#Confectionery Wholesalers#4224
+naics#42246#Fish and Seafood Wholesalers#4224
+naics#42247#Meat and Meat Product Wholesalers#4224
+naics#42248#Fresh Fruit and Vegetable Wholesalers#4224
+naics#42249#Other Grocery and Related Products Wholesalers#4224
+naics#4225#Farm Product Raw Material Wholesalers#422
+naics#42251#Grain and Field Bean Wholesalers#4225
+naics#42252#Livestock Wholesalers#4225
+naics#42259#Other Farm Product Raw Material Wholesalers#4225
+naics#4226#Chemical and Allied Products Wholesalers#422
+naics#42261#Plastics Materials and Basic Forms and Shapes Wholesalers#4226
+naics#42269#Other Chemical and Allied Products Wholesalers#4226
+naics#4227#Petroleum and Petroleum Products Wholesalers#422
+naics#42271#Petroleum Bulk Stations and Terminals#4227
+naics#42272#Petroleum and Petroleum Products Wholesalers (except Bulk Stations and Terminals)#4227
+naics#4228#Beer, Wine, and Distilled Alcoholic Beverage Wholesalers#422
+naics#42281#Beer and Ale Wholesalers#4228
+naics#42282#Wine and Distilled Alcoholic Beverage Wholesalers#4228
+naics#4229#Miscellaneous Nondurable Goods Wholesalers#422
+naics#42291#Farm Supplies Wholesalers#4229
+naics#42292#Book, Periodical, and Newspaper Wholesalers#4229
+naics#42293#Flower, Nursery Stock, and Florists' Supplies Wholesalers#4229
+naics#42294#Tobacco and Tobacco Product Wholesalers#4229
+naics#42295#Paint, Varnish, and Supplies Wholesalers#4229
+naics#42299#Other Miscellaneous Nondurable Goods Wholesalers#4229
+naics#44#Retail Trade#44
+naics#441#Motor Vehicle and Parts Dealers#44
+naics#4411#Automobile Dealers#441
+naics#44111#New Car Dealers#4411
+naics#44112#Used Car Dealers#4411
+naics#4412#Other Motor Vehicle Dealers#441
+naics#44121#Recreational Vehicle Dealers#4412
+naics#44122#Motorcycle, Boat, and Other Motor Vehicle Dealers#4412
+naics#441221#Motorcycle Dealers#44122
+naics#441222#Boat Dealers#44122
+naics#441229#All Other Motor Vehicle Dealers#44122
+naics#4413#Automotive Parts, Accessories, and Tire Stores#441
+naics#44131#Automotive Parts and Accessories Stores#4413
+naics#44132#Tire Dealers#4413
+naics#442#Furniture and Home Furnishings Stores#44
+naics#4421#Furniture Stores#442
+naics#44211#Furniture Stores#4421
+naics#4422#Home Furnishings Stores#442
+naics#44221#Floor Covering Stores#4422
+naics#44229#Other Home Furnishings Stores#4422
+naics#442291#Window Treatment Stores#44229
+naics#442299#All Other Home Furnishings Stores#44229
+naics#443#Electronics and Appliance Stores#44
+naics#4431#Electronics and Appliance Stores#443
+naics#44311#Appliance, Television, and Other Electronics Stores#4431
+naics#443111#Household Appliance Stores#44311
+naics#443112#Radio, Television, and Other Electronics Stores#44311
+naics#44312#Computer and Software Stores#4431
+naics#44313#Camera and Photographic Supplies Stores#4431
+naics#444#Building Material and Garden Equipment and Supplies Dealers#44
+naics#4441#Building Material and Supplies Dealers#444
+naics#44411#Home Centers#4441
+naics#44412#Paint and Wallpaper Stores#4441
+naics#44413#Hardware Stores#4441
+naics#44419#Other Building Material Dealers#4441
+naics#4442#Lawn and Garden Equipment and Supplies Stores#444
+naics#44421#Outdoor Power Equipment Stores#4442
+naics#44422#Nursery and Garden Centers#4442
+naics#445#Food and Beverage Stores#44
+naics#4451#Grocery Stores#445
+naics#44511#Supermarkets and Other Grocery (except Convenience) Stores#4451
+naics#44512#Convenience Stores#4451
+naics#4452#Specialty Food Stores#445
+naics#44521#Meat Markets#4452
+naics#44522#Fish and Seafood Markets#4452
+naics#44523#Fruit and Vegetable Markets#4452
+naics#44529#Other Specialty Food Stores#4452
+naics#445291#Baked Goods Stores#44529
+naics#445292#Confectionery and Nut Stores#44529
+naics#445299#All Other Specialty Food Stores#44529
+naics#4453#Beer, Wine, and Liquor Stores#445
+naics#44531#Beer, Wine, and Liquor Stores#4453
+naics#446#Health and Personal Care Stores#44
+naics#4461#Health and Personal Care Stores#446
+naics#44611#Pharmacies and Drug Stores#4461
+naics#44612#Cosmetics, Beauty Supplies, and Perfume Stores#4461
+naics#44613#Optical Goods Stores#4461
+naics#44619#Other Health and Personal Care Stores#4461
+naics#446191#Food (Health) Supplement Stores#44619
+naics#446199#All Other Health and Personal Care Stores#44619
+naics#447#Gasoline Stations#44
+naics#4471#Gasoline Stations#447
+naics#44711#Gasoline Stations with Convenience Stores#4471
+naics#44719#Other Gasoline Stations#4471
+naics#448#Clothing and Clothing Accessories Stores#44
+naics#4481#Clothing Stores#448
+naics#44811#Men's Clothing Stores#4481
+naics#44812#Women's Clothing Stores#4481
+naics#44813#Children's and Infants' Clothing Stores#4481
+naics#44814#Family Clothing Stores#4481
+naics#44815#Clothing Accessories Stores#4481
+naics#44819#Other Clothing Stores#4481
+naics#4482#Shoe Stores#448
+naics#44821#Shoe Stores#4482
+naics#4483#Jewelry, Luggage, and Leather Goods Stores#448
+naics#44831#Jewelry Stores#4483
+naics#44832#Luggage and Leather Goods Stores#4483
+naics#45#Retail Trade#45
+naics#451#Sporting Goods, Hobby, Book, and Music Stores#45
+naics#4511#Sporting Goods, Hobby, and Musical Instrument Stores#451
+naics#45111#Sporting Goods Stores#4511
+naics#45112#Hobby, Toy, and Game Stores#4511
+naics#45113#Sewing, Needlework, and Piece Goods Stores#4511
+naics#45114#Musical Instrument and Supplies Stores#4511
+naics#4512#Book, Periodical, and Music Stores#451
+naics#45121#Book Stores and News Dealers#4512
+naics#451211#Book Stores#45121
+naics#451212#News Dealers and Newsstands#45121
+naics#45122#Prerecorded Tape, Compact Disc, and Record Stores#4512
+naics#452#General Merchandise Stores#45
+naics#4521#Department Stores#452
+naics#45211#Department Stores#4521
+naics#4529#Other General Merchandise Stores#452
+naics#45291#Warehouse Clubs and Superstores#4529
+naics#45299#All Other General Merchandise Stores#4529
+naics#453#Miscellaneous Store Retailers#45
+naics#4531#Florists#453
+naics#45311#Florists#4531
+naics#4532#Office Supplies, Stationery, and Gift Stores#453
+naics#45321#Office Supplies and Stationery Stores#4532
+naics#45322#Gift, Novelty, and Souvenir Stores#4532
+naics#4533#Used Merchandise Stores#453
+naics#45331#Used Merchandise Stores#4533
+naics#4539#Other Miscellaneous Store Retailers#453
+naics#45391#Pet and Pet Supplies Stores#4539
+naics#45392#Art Dealers#4539
+naics#45393#Manufactured (Mobile) Home Dealers#4539
+naics#45399#All Other Miscellaneous Store Retailers#4539
+naics#453991#Tobacco Stores#45399
+naics#453998#All Other Miscellaneous Store Retailers (except Tobacco Stores)#45399
+naics#454#Nonstore Retailers#45
+naics#4541#Electronic Shopping and Mail-Order Houses#454
+naics#45411#Electronic Shopping and Mail-Order Houses#4541
+naics#4542#Vending Machine Operators#454
+naics#45421#Vending Machine Operators#4542
+naics#4543#Direct Selling Establishments#454
+naics#45431#Fuel Dealers#4543
+naics#454311#Heating Oil Dealers#45431
+naics#454312#Liquefied Petroleum Gas (Bottled Gas) Dealers#45431
+naics#454319#Other Fuel Dealers#45431
+naics#45439#Other Direct Selling Establishments#4543
+naics#48#Transportation and Warehousing#48
+naics#481#Air Transportation#48
+naics#4811#Scheduled Air Transportation#481
+naics#48111#Scheduled Air Transportation#4811
+naics#481111#Scheduled Passenger Air Transportation#48111
+naics#481112#Scheduled Freight Air Transportation#48111
+naics#4812#Nonscheduled Air Transportation#481
+naics#48121#Nonscheduled Air Transportation#4812
+naics#481211#Nonscheduled Chartered Passenger Air Transportation#48121
+naics#481212#Nonscheduled Chartered Freight Air Transportation#48121
+naics#481219#Other Nonscheduled Air Transportation#48121
+naics#482#Rail Transportation#48
+naics#4821#Rail Transportation#482
+naics#48211#Rail Transportation#4821
+naics#482111#Line-Haul Railroads#48211
+naics#482112#Short Line Railroads#48211
+naics#483#Water Transportation#48
+naics#4831#Deep Sea, Coastal, and Great Lakes Water Transportation#483
+naics#48311#Deep Sea, Coastal, and Great Lakes Water Transportation#4831
+naics#483111#Deep Sea Freight Transportation#48311
+naics#483112#Deep Sea Passenger Transportation#48311
+naics#483113#Coastal and Great Lakes Freight Transportation#48311
+naics#483114#Coastal and Great Lakes Passenger Transportation#48311
+naics#4832#Inland Water Transportation#483
+naics#48321#Inland Water Transportation#4832
+naics#483211#Inland Water Freight Transportation#48321
+naics#483212#Inland Water Passenger Transportation#48321
+naics#484#Truck Transportation#48
+naics#4841#General Freight Trucking#484
+naics#48411#General Freight Trucking, Local#4841
+naics#48412#General Freight Trucking, Long-Distance#4841
+naics#484121#General Freight Trucking, Long-Distance, Truckload#48412
+naics#484122#General Freight Trucking, Long-Distance, Less Than Truckload#48412
+naics#4842#Specialized Freight Trucking#484
+naics#48421#Used Household and Office Goods Moving#4842
+naics#48422#Specialized Freight (except Used Goods) Trucking, Local#4842
+naics#48423#Specialized Freight (except Used Goods) Trucking, Long-Distance#4842
+naics#485#Transit and Ground Passenger Transportation#48
+naics#4851#Urban Transit Systems#485
+naics#48511#Urban Transit Systems#4851
+naics#485111#Mixed Mode Transit Systems#48511
+naics#485112#Commuter Rail Systems#48511
+naics#485113#Bus and Other Motor Vehicle Transit Systems#48511
+naics#485119#Other Urban Transit Systems#48511
+naics#4852#Interurban and Rural Bus Transportation#485
+naics#48521#Interurban and Rural Bus Transportation#4852
+naics#4853#Taxi and Limousine Service#485
+naics#48531#Taxi Service#4853
+naics#48532#Limousine Service#4853
+naics#4854#School and Employee Bus Transportation#485
+naics#48541#School and Employee Bus Transportation#4854
+naics#4855#Charter Bus Industry#485
+naics#48551#Charter Bus Industry#4855
+naics#4859#Other Transit and Ground Passenger Transportation#485
+naics#48599#Other Transit and Ground Passenger Transportation#4859
+naics#485991#Special Needs Transportation#48599
+naics#485999#All Other Transit and Ground Passenger Transportation#48599
+naics#486#Pipeline Transportation#48
+naics#4861#Pipeline Transportation of Crude Oil#486
+naics#48611#Pipeline Transportation of Crude Oil#4861
+naics#4862#Pipeline Transportation of Natural Gas#486
+naics#48621#Pipeline Transportation of Natural Gas#4862
+naics#4869#Other Pipeline Transportation#486
+naics#48691#Pipeline Transportation of Refined Petroleum Products#4869
+naics#48699#All Other Pipeline Transportation#4869
+naics#487#Scenic and Sightseeing Transportation#48
+naics#4871#Scenic and Sightseeing Transportation, Land#487
+naics#48711#Scenic and Sightseeing Transportation, Land#4871
+naics#4872#Scenic and Sightseeing Transportation, Water#487
+naics#48721#Scenic and Sightseeing Transportation, Water#4872
+naics#4879#Scenic and Sightseeing Transportation, Other#487
+naics#48799#Scenic and Sightseeing Transportation, Other#4879
+naics#488#Support Activities for Transportation#48
+naics#4881#Support Activities for Air Transportation#488
+naics#48811#Airport Operations#4881
+naics#488111#Air Traffic Control#48811
+naics#488119#Other Airport Operations#48811
+naics#48819#Other Support Activities for Air Transportation#4881
+naics#4882#Support Activities for Rail Transportation#488
+naics#48821#Support Activities for Rail Transportation#4882
+naics#4883#Support Activities for Water Transportation#488
+naics#48831#Port and Harbor Operations#4883
+naics#48832#Marine Cargo Handling#4883
+naics#48833#Navigational Services to Shipping#4883
+naics#48839#Other Support Activities for Water Transportation#4883
+naics#4884#Support Activities for Road Transportation#488
+naics#48841#Motor Vehicle Towing#4884
+naics#48849#Other Support Activities for Road Transportation#4884
+naics#4885#Freight Transportation Arrangement#488
+naics#48851#Freight Transportation Arrangement#4885
+naics#4889#Other Support Activities for Transportation#488
+naics#48899#Other Support Activities for Transportation#4889
+naics#488991#Packing and Crating#48899
+naics#488999#All Other Support Activities for Transportation#48899
+naics#49#Transportation and Warehousing#49
+naics#491#Postal Service#49
+naics#4911#Postal Service#491
+naics#49111#Postal Service#4911
+naics#492#Couriers and Messengers#49
+naics#4921#Couriers#492
+naics#49211#Couriers#4921
+naics#4922#Local Messengers and Local Delivery#492
+naics#49221#Local Messengers and Local Delivery#4922
+naics#493#Warehousing and Storage#49
+naics#4931#Warehousing and Storage#493
+naics#49311#General Warehousing and Storage#4931
+naics#49312#Refrigerated Warehousing and Storage#4931
+naics#49313#Farm Product Warehousing and Storage#4931
+naics#49319#Other Warehousing and Storage#4931
+naics#51#Information#51
+naics#511#Publishing Industries#51
+naics#5111#Newspaper, Periodical, Book, and Database Publishers#511
+naics#51111#Newspaper Publishers#5111
+naics#51112#Periodical Publishers#5111
+naics#51113#Book Publishers#5111
+naics#51114#Database and Directory Publishers#5111
+naics#51119#Other Publishers#5111
+naics#511191#Greeting Card Publishers#51119
+naics#511199#All Other Publishers#51119
+naics#5112#Software Publishers#511
+naics#51121#Software Publishers#5112
+naics#512#Motion Picture and Sound Recording Industries#51
+naics#5121#Motion Picture and Video Industries#512
+naics#51211#Motion Picture and Video Production#5121
+naics#51212#Motion Picture and Video Distribution#5121
+naics#51213#Motion Picture and Video Exhibition#5121
+naics#512131#Motion Picture Theaters (except Drive-Ins)#51213
+naics#512132#Drive-In Motion Picture Theaters#51213
+naics#51219#Postproduction Services and Other Motion Picture and Video Industries#5121
+naics#512191#Teleproduction and Other Postproduction Services#51219
+naics#512199#Other Motion Picture and Video Industries#51219
+naics#5122#Sound Recording Industries#512
+naics#51221#Record Production#5122
+naics#51222#Integrated Record Production/Distribution#5122
+naics#51223#Music Publishers#5122
+naics#51224#Sound Recording Studios#5122
+naics#51229#Other Sound Recording Industries#5122
+naics#513#Broadcasting and Telecommunications#51
+naics#5131#Radio and Television Broadcasting#513
+naics#51311#Radio Broadcasting#5131
+naics#513111#Radio Networks#51311
+naics#513112#Radio Stations#51311
+naics#51312#Television Broadcasting#5131
+naics#5132#Cable Networks and Program Distribution#513
+naics#51321#Cable Networks#5132
+naics#51322#Cable and Other Program Distribution#5132
+naics#5133#Telecommunications#513
+naics#51331#Wired Telecommunications Carriers#5133
+naics#51332#Wireless Telecommunications Carriers (except Satellite)#5133
+naics#513321#Paging#51332
+naics#513322#Cellular and Other Wireless Telecommunications#51332
+naics#51333#Telecommunications Resellers#5133
+naics#51334#Satellite Telecommunications#5133
+naics#51339#Other Telecommunications#5133
+naics#514#Information Services and Data Processing Services#51
+naics#5141#Information Services#514
+naics#51411#News Syndicates#5141
+naics#51412#Libraries and Archives#5141
+naics#51419#Other Information Services#5141
+naics#514191#On-Line Information Services#51419
+naics#514199#All Other Information Services#51419
+naics#5142#Data Processing Services#514
+naics#51421#Data Processing Services#5142
+naics#52#Finance and Insurance#52
+naics#521#Monetary Authorities - Central Bank#52
+naics#5211#Monetary Authorities - Central Bank#521
+naics#52111#Monetary Authorities - Central Bank#5211
+naics#522#Credit Intermediation and Related Activities#52
+naics#5221#Depository Credit Intermediation#522
+naics#52211#Commercial Banking#5221
+naics#52212#Savings Institutions#5221
+naics#52213#Credit Unions#5221
+naics#52219#Other Depository Credit Intermediation#5221
+naics#5222#Nondepository Credit Intermediation#522
+naics#52221#Credit Card Issuing#5222
+naics#52222#Sales Financing#5222
+naics#52229#Other Nondepository Credit Intermediation#5222
+naics#522291#Consumer Lending#52229
+naics#522292#Real Estate Credit#52229
+naics#522293#International Trade Financing#52229
+naics#522294#Secondary Market Financing#52229
+naics#522298#All Other Nondepository Credit Intermediation#52229
+naics#5223#Activities Related to Credit Intermediation#522
+naics#52231#Mortgage and Nonmortgage Loan Brokers#5223
+naics#52232#Financial Transactions Processing, Reserve, and Clearinghouse Activities#5223
+naics#52239#Other Activities Related to Credit Intermediation#5223
+naics#523#Securities, Commodity Contracts, and Other Financial Investments and Related Activities#52
+naics#5231#Securities and Commodity Contracts Intermediation and Brokerage#523
+naics#52311#Investment Banking and Securities Dealing#5231
+naics#52312#Securities Brokerage#5231
+naics#52313#Commodity Contracts Dealing#5231
+naics#52314#Commodity Contracts Brokerage#5231
+naics#5232#Securities and Commodity Exchanges#523
+naics#52321#Securities and Commodity Exchanges#5232
+naics#5239#Other Financial Investment Activities#523
+naics#52391#Miscellaneous Intermediation#5239
+naics#52392#Portfolio Management#5239
+naics#52393#Investment Advice#5239
+naics#52399#All Other Financial Investment Activities#5239
+naics#523991#Trust, Fiduciary, and Custody Activities#52399
+naics#523999#Miscellaneous Financial Investment Activities#52399
+naics#524#Insurance Carriers and Related Activities#52
+naics#5241#Insurance Carriers#524
+naics#52411#Direct Life, Health, and Medical Insurance Carriers#5241
+naics#524113#Direct Life Insurance Carriers#52411
+naics#524114#Direct Health and Medical Insurance Carriers#52411
+naics#52412#Direct Insurance (except Life, Health, and Medical) Carriers#5241
+naics#524126#Direct Property and Casualty Insurance Carriers#52412
+naics#524127#Direct Title Insurance Carriers#52412
+naics#524128#Other Direct Insurance (except Life, Health, and Medical) Carriers#52412
+naics#52413#Reinsurance Carriers#5241
+naics#5242#Agencies, Brokerages, and Other Insurance Related Activities#524
+naics#52421#Insurance Agencies and Brokerages#5242
+naics#52429#Other Insurance Related Activities#5242
+naics#524291#Claims Adjusting#52429
+naics#524292#Third Party Administration of Insurance and Pension Funds#52429
+naics#524298#All Other Insurance Related Activities#52429
+naics#525#Funds, Trusts, and Other Financial Vehicles#52
+naics#5251#Insurance and Employee Benefit Funds#525
+naics#52511#Pension Funds#5251
+naics#52512#Health and Welfare Funds#5251
+naics#52519#Other Insurance Funds#5251
+naics#5259#Other Investment Pools and Funds#525
+naics#52591#Open-End Investment Funds#5259
+naics#52592#Trusts, Estates, and Agency Accounts#5259
+naics#52593#Real Estate Investment Trusts#5259
+naics#52599#Other Financial Vehicles#5259
+naics#53#Real Estate and Rental and Leasing#53
+naics#531#Real Estate#53
+naics#5311#Lessors of Real Estate#531
+naics#53111#Lessors of Residential Buildings and Dwellings#5311
+naics#53112#Lessors of Nonresidential Buildings (except Miniwarehouses)#5311
+naics#53113#Lessors of Miniwarehouses and Self-Storage Units#5311
+naics#53119#Lessors of Other Real Estate Property#5311
+naics#5312#Offices of Real Estate Agents and Brokers#531
+naics#53121#Offices of Real Estate Agents and Brokers#5312
+naics#5313#Activities Related to Real Estate#531
+naics#53131#Real Estate Property Managers#5313
+naics#531311#Residential Property Managers#53131
+naics#531312#Nonresidential Property Managers#53131
+naics#53132#Offices of Real Estate Appraisers#5313
+naics#53139#Other Activities Related to Real Estate#5313
+naics#532#Rental and Leasing Services#53
+naics#5321#Automotive Equipment Rental and Leasing#532
+naics#53211#Passenger Car Rental and Leasing#5321
+naics#532111#Passenger Car Rental#53211
+naics#532112#Passenger Car Leasing#53211
+naics#53212#Truck, Utility Trailer, and RV (Recreational Vehicle) Rental and Leasing#5321
+naics#5322#Consumer Goods Rental#532
+naics#53221#Consumer Electronics and Appliances Rental#5322
+naics#53222#Formal Wear and Costume Rental#5322
+naics#53223#Video Tape and Disc Rental#5322
+naics#53229#Other Consumer Goods Rental#5322
+naics#532291#Home Health Equipment Rental#53229
+naics#532292#Recreational Goods Rental#53229
+naics#532299#All Other Consumer Goods Rental#53229
+naics#5323#General Rental Centers#532
+naics#53231#General Rental Centers#5323
+naics#5324#Commercial and Industrial Machinery and Equipment Rental and Leasing#532
+naics#53241#Construction, Transportation, Mining, and Forestry Machinery and Equipment Rental and Leasing#5324
+naics#532411#Commercial Air, Rail, and Water Transportation Equipment Rental and Leasing#53241
+naics#532412#Construction, Mining, and Forestry Machinery and Equipment Rental and Leasing#53241
+naics#53242#Office Machinery and Equipment Rental and Leasing#5324
+naics#53249#Other Commercial and Industrial Machinery and Equipment Rental and Leasing#5324
+naics#533#Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)#53
+naics#5331#Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)#533
+naics#53311#Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)#5331
+naics#54#Professional, Scientific, and Technical Services#54
+naics#541#Professional, Scientific, and Technical Services#54
+naics#5411#Legal Services#541
+naics#54111#Offices of Lawyers#5411
+naics#54112#Offices of Notaries#5411
+naics#54119#Other Legal Services#5411
+naics#541191#Title Abstract and Settlement Offices#54119
+naics#541199#All Other Legal Services#54119
+naics#5412#Accounting, Tax Preparation, Bookkeeping, and Payroll Services#541
+naics#54121#Accounting, Tax Preparation, Bookkeeping, and Payroll Services#5412
+naics#541211#Offices of Certified Public Accountants#54121
+naics#541213#Tax Preparation Services#54121
+naics#541214#Payroll Services#54121
+naics#541219#Other Accounting Services#54121
+naics#5413#Architectural, Engineering, and Related Services#541
+naics#54131#Architectural Services#5413
+naics#54132#Landscape Architectural Services#5413
+naics#54133#Engineering Services#5413
+naics#54134#Drafting Services#5413
+naics#54135#Building Inspection Services#5413
+naics#54136#Geophysical Surveying and Mapping Services#5413
+naics#54137#Surveying and Mapping (except Geophysical) Services#5413
+naics#54138#Testing Laboratories#5413
+naics#5414#Specialized Design Services#541
+naics#54141#Interior Design Services#5414
+naics#54142#Industrial Design Services#5414
+naics#54143#Graphic Design Services#5414
+naics#54149#Other Specialized Design Services#5414
+naics#5415#Computer Systems Design and Related Services#541
+naics#54151#Computer Systems Design and Related Services#5415
+naics#541511#Custom Computer Programming Services#54151
+naics#541512#Computer Systems Design Services#54151
+naics#541513#Computer Facilities Management Services#54151
+naics#541519#Other Computer Related Services#54151
+naics#5416#Management, Scientific, and Technical Consulting Services#541
+naics#54161#Management Consulting Services#5416
+naics#541611#Administrative Management and General Management Consulting Services#54161
+naics#541612#Human Resources and Executive Search Consulting Services#54161
+naics#541613#Marketing Consulting Services#54161
+naics#541614#Process, Physical Distribution, and Logistics Consulting Services#54161
+naics#541618#Other Management Consulting Services#54161
+naics#54162#Environmental Consulting Services#5416
+naics#54169#Other Scientific and Technical Consulting Services#5416
+naics#5417#Scientific Research and Development Services#541
+naics#54171#Research and Development in the Physical, Engineering, and Life Sciences#5417
+naics#54172#Research and Development in the Social Sciences and Humanities#5417
+naics#5418#Advertising and Related Services#541
+naics#54181#Advertising Agencies#5418
+naics#54182#Public Relations Agencies#5418
+naics#54183#Media Buying Agencies#5418
+naics#54184#Media Representatives#5418
+naics#54185#Display Advertising#5418
+naics#54186#Direct Mail Advertising#5418
+naics#54187#Advertising Material Distribution Services#5418
+naics#54189#Other Services Related to Advertising#5418
+naics#5419#Other Professional, Scientific, and Technical Services#541
+naics#54191#Marketing Research and Public Opinion Polling#5419
+naics#54192#Photographic Services#5419
+naics#541921#Photography Studios, Portrait#54192
+naics#541922#Commercial Photography#54192
+naics#54193#Translation and Interpretation Services#5419
+naics#54194#Veterinary Services#5419
+naics#54199#All Other Professional, Scientific, and Technical Services#5419
+naics#55#Management of Companies and Enterprises#55
+naics#551#Management of Companies and Enterprises#55
+naics#5511#Management of Companies and Enterprises#551
+naics#55111#Management of Companies and Enterprises#5511
+naics#551111#Offices of Bank Holding Companies#55111
+naics#551112#Offices of Other Holding Companies#55111
+naics#551114#Corporate, Subsidiary, and Regional Managing Offices#55111
+naics#56#Administrative and Support and Waste Management and Remediation Services#56
+naics#561#Administrative and Support Services#56
+naics#5611#Office Administrative Services#561
+naics#56111#Office Administrative Services#5611
+naics#5612#Facilities Support Services#561
+naics#56121#Facilities Support Services#5612
+naics#5613#Employment Services#561
+naics#56131#Employment Placement Agencies#5613
+naics#56132#Temporary Help Services#5613
+naics#56133#Employee Leasing Services#5613
+naics#5614#Business Support Services#561
+naics#56141#Document Preparation Services#5614
+naics#56142#Telephone Call Centers#5614
+naics#561421#Telephone Answering Services#56142
+naics#561422#Telemarketing Bureaus#56142
+naics#56143#Business Service Centers#5614
+naics#561431#Private Mail Centers#56143
+naics#561439#Other Business Service Centers (including Copy Shops)#56143
+naics#56144#Collection Agencies#5614
+naics#56145#Credit Bureaus#5614
+naics#56149#Other Business Support Services#5614
+naics#561491#Repossession Services#56149
+naics#561492#Court Reporting and Stenotype Services#56149
+naics#561499#All Other Business Support Services#56149
+naics#5615#Travel Arrangement and Reservation Services#561
+naics#56151#Travel Agencies#5615
+naics#56152#Tour Operators#5615
+naics#56159#Other Travel Arrangement and Reservation Services#5615
+naics#561591#Convention and Visitors Bureaus#56159
+naics#561599#All Other Travel Arrangement and Reservation Services#56159
+naics#5616#Investigation and Security Services#561
+naics#56161#Investigation, Guard, and Armored Car Services#5616
+naics#561611#Investigation Services#56161
+naics#561612#Security Guards and Patrol Services#56161
+naics#561613#Armored Car Services#56161
+naics#56162#Security Systems Services#5616
+naics#561621#Security Systems Services (except Locksmiths)#56162
+naics#561622#Locksmiths#56162
+naics#5617#Services to Buildings and Dwellings#561
+naics#56171#Exterminating and Pest Control Services#5617
+naics#56172#Janitorial Services#5617
+naics#56173#Landscaping Services#5617
+naics#56174#Carpet and Upholstery Cleaning Services#5617
+naics#56179#Other Services to Buildings and Dwellings#5617
+naics#5619#Other Support Services#561
+naics#56191#Packaging and Labeling Services#5619
+naics#56192#Convention and Trade Show Organizers#5619
+naics#56199#All Other Support Services#5619
+naics#562#Waste Management and Remediation Services#56
+naics#5621#Waste Collection#562
+naics#56211#Waste Collection#5621
+naics#562111#Solid Waste Collection#56211
+naics#562112#Hazardous Waste Collection#56211
+naics#562119#Other Waste Collection#56211
+naics#5622#Waste Treatment and Disposal#562
+naics#56221#Waste Treatment and Disposal#5622
+naics#562211#Hazardous Waste Treatment and Disposal#56221
+naics#562212#Solid Waste Landfill#56221
+naics#562213#Solid Waste Combustors and Incinerators#56221
+naics#562219#Other Nonhazardous Waste Treatment and Disposal#56221
+naics#5629#Remediation and Other Waste Management Services#562
+naics#56291#Remediation Services#5629
+naics#56292#Materials Recovery Facilities#5629
+naics#56299#All Other Waste Management Services#5629
+naics#562991#Septic Tank and Related Services#56299
+naics#562998#All Other Miscellaneous Waste Management Services#56299
+naics#61#Educational Services#61
+naics#611#Educational Services#61
+naics#6111#Elementary and Secondary Schools#611
+naics#61111#Elementary and Secondary Schools#6111
+naics#6112#Junior Colleges#611
+naics#61121#Junior Colleges#6112
+naics#6113#Colleges, Universities, and Professional Schools#611
+naics#61131#Colleges, Universities, and Professional Schools#6113
+naics#6114#Business Schools and Computer and Management Training#611
+naics#61141#Business and Secretarial Schools#6114
+naics#61142#Computer Training#6114
+naics#61143#Professional and Management Development Training#6114
+naics#6115#Technical and Trade Schools#611
+naics#61151#Technical and Trade Schools#6115
+naics#611511#Cosmetology and Barber Schools#61151
+naics#611512#Flight Training#61151
+naics#611513#Apprenticeship Training#61151
+naics#611519#Other Technical and Trade Schools#61151
+naics#6116#Other Schools and Instruction#611
+naics#61161#Fine Arts Schools#6116
+naics#61162#Sports and Recreation Instruction#6116
+naics#61163#Language Schools#6116
+naics#61169#All Other Schools and Instruction#6116
+naics#611691#Exam Preparation and Tutoring#61169
+naics#611692#Automobile Driving Schools#61169
+naics#611699#All Other Miscellaneous Schools and Instruction#61169
+naics#6117#Educational Support Services#611
+naics#61171#Educational Support Services#6117
+naics#62#Health Care and Social Assistance#62
+naics#621#Ambulatory Health Care Services#62
+naics#6211#Offices of Physicians#621
+naics#62111#Offices of Physicians#6211
+naics#621111#Offices of Physicians (except Mental Health Specialists)#62111
+naics#621112#Offices of Physicians, Mental Health Specialists#62111
+naics#6212#Offices of Dentists#621
+naics#62121#Offices of Dentists#6212
+naics#6213#Offices of Other Health Practitioners#621
+naics#62131#Offices of Chiropractors#6213
+naics#62132#Offices of Optometrists#6213
+naics#62133#Offices of Mental Health Practitioners (except Physicians)#6213
+naics#62134#Offices of Physical, Occupational and Speech Therapists, and Audiologists#6213
+naics#62139#Offices of All Other Health Practitioners#6213
+naics#621391#Offices of Podiatrists#62139
+naics#621399#Offices of All Other Miscellaneous Health Practitioners#62139
+naics#6214#Outpatient Care Centers#621
+naics#62141#Family Planning Centers#6214
+naics#62142#Outpatient Mental Health and Substance Abuse Centers#6214
+naics#62149#Other Outpatient Care Centers#6214
+naics#621491#HMO Medical Centers#62149
+naics#621492#Kidney Dialysis Centers#62149
+naics#621493#Freestanding Ambulatory Surgical and Emergency Centers#62149
+naics#621498#All Other Outpatient Care Centers#62149
+naics#6215#Medical and Diagnostic Laboratories#621
+naics#62151#Medical and Diagnostic Laboratories#6215
+naics#621511#Medical Laboratories#62151
+naics#621512#Diagnostic Imaging Centers#62151
+naics#6216#Home Health Care Services#621
+naics#62161#Home Health Care Services#6216
+naics#6219#Other Ambulatory Health Care Services#621
+naics#62191#Ambulance Services#6219
+naics#62199#All Other Ambulatory Health Care Services#6219
+naics#621991#Blood and Organ Banks#62199
+naics#621999#All Other Miscellaneous Ambulatory Health Care Services#62199
+naics#622#Hospitals#62
+naics#6221#General Medical and Surgical Hospitals#622
+naics#62211#General Medical and Surgical Hospitals#6221
+naics#6222#Psychiatric and Substance Abuse Hospitals#622
+naics#62221#Psychiatric and Substance Abuse Hospitals#6222
+naics#6223#Specialty (except Psychiatric and Substance Abuse) Hospitals#622
+naics#62231#Specialty (except Psychiatric and Substance Abuse) Hospitals#6223
+naics#623#Nursing and Residential Care Facilities#62
+naics#6231#Nursing Care Facilities#623
+naics#62311#Nursing Care Facilities#6231
+naics#6232#Residential Mental Retardation, Mental Health and Substance Abuse Facilities#623
+naics#62321#Residential Mental Retardation Facilities#6232
+naics#62322#Residential Mental Health and Substance Abuse Facilities#6232
+naics#6233#Community Care Facilities for the Elderly#623
+naics#62331#Community Care Facilities for the Elderly#6233
+naics#623311#Continuing Care Retirement Communities#62331
+naics#623312#Homes for the Elderly#62331
+naics#6239#Other Residential Care Facilities#623
+naics#62399#Other Residential Care Facilities#6239
+naics#624#Social Assistance#62
+naics#6241#Individual and Family Services#624
+naics#62411#Child and Youth Services#6241
+naics#62412#Services for the Elderly and Persons with Disabilities#6241
+naics#62419#Other Individual and Family Services#6241
+naics#6242#Community Food and Housing, and Emergency and Other Relief Services#624
+naics#62421#Community Food Services#6242
+naics#62422#Community Housing Services#6242
+naics#624221#Temporary Shelters#62422
+naics#624229#Other Community Housing Services#62422
+naics#62423#Emergency and Other Relief Services#6242
+naics#6243#Vocational Rehabilitation Services#624
+naics#62431#Vocational Rehabilitation Services#6243
+naics#6244#Child Day Care Services#624
+naics#62441#Child Day Care Services#6244
+naics#71#Arts, Entertainment, and Recreation#71
+naics#711#Performing Arts, Spectator Sports, and Related Industries#71
+naics#7111#Performing Arts Companies#711
+naics#71111#Theater Companies and Dinner Theaters#7111
+naics#71112#Dance Companies#7111
+naics#71113#Musical Groups and Artists#7111
+naics#71119#Other Performing Arts Companies#7111
+naics#7112#Spectator Sports#711
+naics#71121#Spectator Sports#7112
+naics#711211#Sports Teams and Clubs#71121
+naics#711212#Racetracks#71121
+naics#711219#Other Spectator Sports#71121
+naics#7113#Promoters of Performing Arts, Sports, and Similar Events#711
+naics#71131#Promoters of Performing Arts, Sports, and Similar Events with Facilities#7113
+naics#71132#Promoters of Performing Arts, Sports, and Similar Events without Facilities#7113
+naics#7114#Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures#711
+naics#71141#Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures#7114
+naics#7115#Independent Artists, Writers, and Performers#711
+naics#71151#Independent Artists, Writers, and Performers#7115
+naics#712#Museums, Historical Sites, and Similar Institutions#71
+naics#7121#Museums, Historical Sites, and Similar Institutions#712
+naics#71211#Museums#7121
+naics#71212#Historical Sites#7121
+naics#71213#Zoos and Botanical Gardens#7121
+naics#71219#Nature Parks and Other Similar Institutions#7121
+naics#713#Amusement, Gambling, and Recreation Industries#71
+naics#7131#Amusement Parks and Arcades#713
+naics#71311#Amusement and Theme Parks#7131
+naics#71312#Amusement Arcades#7131
+naics#7132#Gambling Industries#713
+naics#71321#Casinos (except Casino Hotels)#7132
+naics#71329#Other Gambling Industries#7132
+naics#7139#Other Amusement and Recreation Industries#713
+naics#71391#Golf Courses and Country Clubs#7139
+naics#71392#Skiing Facilities#7139
+naics#71393#Marinas#7139
+naics#71394#Fitness and Recreational Sports Centers#7139
+naics#71395#Bowling Centers#7139
+naics#71399#All Other Amusement and Recreation Industries#7139
+naics#72#Accommodation and Food Services#72
+naics#721#Accommodation#72
+naics#7211#Traveler Accommodation#721
+naics#72111#Hotels (except Casino Hotels) and Motels#7211
+naics#72112#Casino Hotels#7211
+naics#72119#Other Traveler Accommodation#7211
+naics#721191#Bed-and-Breakfast Inns#72119
+naics#721199#All Other Traveler Accommodation#72119
+naics#7212#RV (Recreational Vehicle) Parks and Recreational Camps#721
+naics#72121#RV (Recreational Vehicle) Parks and Recreational Camps#7212
+naics#721211#RV (Recreational Vehicle) Parks and Campgrounds#72121
+naics#721214#Recreational and Vacation Camps (except Campgrounds)#72121
+naics#7213#Rooming and Boarding Houses#721
+naics#72131#Rooming and Boarding Houses#7213
+naics#722#Food Services and Drinking Places#72
+naics#7221#Full-Service Restaurants#722
+naics#72211#Full-Service Restaurants#7221
+naics#7222#Limited-Service Eating Places#722
+naics#72221#Limited-Service Eating Places#7222
+naics#722211#Limited-Service Restaurants#72221
+naics#722212#Cafeterias#72221
+naics#722213#Snack and Nonalcoholic Beverage Bars#72221
+naics#7223#Special Food Services#722
+naics#72231#Food Service Contractors#7223
+naics#72232#Caterers#7223
+naics#72233#Mobile Food Services#7223
+naics#7224#Drinking Places (Alcoholic Beverages)#722
+naics#72241#Drinking Places (Alcoholic Beverages)#7224
+naics#81#Other Services (except Public Administration)#81
+naics#811#Repair and Maintenance#81
+naics#8111#Automotive Repair and Maintenance#811
+naics#81111#Automotive Mechanical and Electrical Repair and Maintenance#8111
+naics#811111#General Automotive Repair#81111
+naics#811112#Automotive Exhaust System Repair#81111
+naics#811113#Automotive Transmission Repair#81111
+naics#811118#Other Automotive Mechanical and Electrical Repair and Maintenance#81111
+naics#81112#Automotive Body, Paint, Interior, and Glass Repair#8111
+naics#811121#Automotive Body, Paint, and Interior Repair and Maintenance#81112
+naics#811122#Automotive Glass Replacement Shops#81112
+naics#81119#Other Automotive Repair and Maintenance#8111
+naics#811191#Automotive Oil Change and Lubrication Shops#81119
+naics#811192#Car Washes#81119
+naics#811198#All Other Automotive Repair and Maintenance#81119
+naics#8112#Electronic and Precision Equipment Repair and Maintenance#811
+naics#81121#Electronic and Precision Equipment Repair and Maintenance#8112
+naics#811211#Consumer Electronics Repair and Maintenance#81121
+naics#811212#Computer and Office Machine Repair and Maintenance#81121
+naics#811213#Communication Equipment Repair and Maintenance#81121
+naics#811219#Other Electronic and Precision Equipment Repair and Maintenance#81121
+naics#8113#Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance#811
+naics#81131#Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance#8113
+naics#8114#Personal and Household Goods Repair and Maintenance#811
+naics#81141#Home and Garden Equipment and Appliance Repair and Maintenance#8114
+naics#811411#Home and Garden Equipment Repair and Maintenance#81141
+naics#811412#Appliance Repair and Maintenance#81141
+naics#81142#Reupholstery and Furniture Repair#8114
+naics#81143#Footwear and Leather Goods Repair#8114
+naics#81149#Other Personal and Household Goods Repair and Maintenance#8114
+naics#812#Personal and Laundry Services#81
+naics#8121#Personal Care Services#812
+naics#81211#Hair, Nail, and Skin Care Services#8121
+naics#812111#Barber Shops#81211
+naics#812112#Beauty Salons#81211
+naics#812113#Nail Salons#81211
+naics#81219#Other Personal Care Services#8121
+naics#812191#Diet and Weight Reducing Centers#81219
+naics#812199#Other Personal Care Services#81219
+naics#8122#Death Care Services#812
+naics#81221#Funeral Homes and Funeral Services#8122
+naics#81222#Cemeteries and Crematories#8122
+naics#8123#Drycleaning and Laundry Services#812
+naics#81231#Coin-Operated Laundries and Drycleaners#8123
+naics#81232#Drycleaning and Laundry Services (except Coin-Operated)#8123
+naics#81233#Linen and Uniform Supply#8123
+naics#812331#Linen Supply#81233
+naics#812332#Industrial Launderers#81233
+naics#8129#Other Personal Services#812
+naics#81291#Pet Care (except Veterinary) Services#8129
+naics#81292#Photofinishing#8129
+naics#812921#Photofinishing Laboratories (except One-Hour)#81292
+naics#812922#One-Hour Photofinishing#81292
+naics#81293#Parking Lots and Garages#8129
+naics#81299#All Other Personal Services#8129
+naics#813#Religious, Grantmaking, Civic, Professional, and Similar Organizations#81
+naics#8131#Religious Organizations#813
+naics#81311#Religious Organizations#8131
+naics#8132#Grantmaking and Giving Services#813
+naics#81321#Grantmaking and Giving Services#8132
+naics#813211#Grantmaking Foundations#81321
+naics#813212#Voluntary Health Organizations#81321
+naics#813219#Other Grantmaking and Giving Services#81321
+naics#8133#Social Advocacy Organizations#813
+naics#81331#Social Advocacy Organizations#8133
+naics#813311#Human Rights Organizations#81331
+naics#813312#Environment, Conservation and Wildlife Organizations#81331
+naics#813319#Other Social Advocacy Organizations#81331
+naics#8134#Civic and Social Organizations#813
+naics#81341#Civic and Social Organizations#8134
+naics#8139#Business, Professional, Labor, Political, and Similar Organizations#813
+naics#81391#Business Associations#8139
+naics#81392#Professional Organizations#8139
+naics#81393#Labor Unions and Similar Labor Organizations#8139
+naics#81394#Political Organizations#8139
+naics#81399#Other Similar Organizations (except Business, Professional, Labor, and Political Organizations)#8139
+naics#814#Private Households#81
+naics#8141#Private Households#814
+naics#81411#Private Households#8141
+naics#92#Public Administration#92
+naics#921#Executive, Legislative, and Other General Government Support#92
+naics#9211#Executive, Legislative, and Other General Government Support#921
+naics#92111#Executive Offices#9211
+naics#92112#Legislative Bodies#9211
+naics#92113#Public Finance Activities#9211
+naics#92114#Executive and Legislative Offices, Combined#9211
+naics#92115#American Indian and Alaska Native Tribal Governments#9211
+naics#92119#Other General Government Support#9211
+naics#922#Justice, Public Order, and Safety Activities#92
+naics#9221#Justice, Public Order, and Safety Activities#922
+naics#92211#Courts#9221
+naics#92212#Police Protection#9221
+naics#92213#Legal Counsel and Prosecution#9221
+naics#92214#Correctional Institutions#9221
+naics#92215#Parole Offices and Probation Offices#9221
+naics#92216#Fire Protection#9221
+naics#92219#Other Justice, Public Order, and Safety Activities#9221
+naics#923#Administration of Human Resource Programs#92
+naics#9231#Administration of Human Resource Programs#923
+naics#92311#Administration of Education Programs#9231
+naics#92312#Administration of Public Health Programs#9231
+naics#92313#Administration of Human Resource Programs (except Education, Public Health, and Veterans' Affairs Programs)#9231
+naics#92314#Administration of Veterans' Affairs#9231
+naics#924#Administration of Environmental Quality Programs#92
+naics#9241#Administration of Environmental Quality Programs#924
+naics#92411#Administration of Air and Water Resource and Solid Waste Management Programs#9241
+naics#92412#Administration of Conservation Programs#9241
+naics#925#Administration of Housing Programs, Urban Planning, and Community Development#92
+naics#9251#Administration of Housing Programs, Urban Planning, and Community Development#925
+naics#92511#Administration of Housing Programs#9251
+naics#92512#Administration of Urban Planning and Community and Rural Development#9251
+naics#926#Administration of Economic Programs#92
+naics#9261#Administration of Economic Programs#926
+naics#92611#Administration of General Economic Programs#9261
+naics#92612#Regulation and Administration of Transportation Programs#9261
+naics#92613#Regulation and Administration of Communications, Electric, Gas, and Other Utilities#9261
+naics#92614#Regulation of Agricultural Marketing and Commodities#9261
+naics#92615#Regulation, Licensing, and Inspection of Miscellaneous Commercial Sectors#9261
+naics#927#Space Research and Technology#92
+naics#9271#Space Research and Technology#927
+naics#92711#Space Research and Technology#9271
+naics#928#National Security and International Affairs#92
+naics#9281#National Security and International Affairs#928
+naics#92811#National Security#9281
+naics#92812#International Affairs#9281
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/unspsc-data.txt b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/unspsc-data.txt
new file mode 100644
index 000000000..17835141a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/data/unspsc-data.txt
@@ -0,0 +1,17054 @@
+unspsc7#10.00.00.00.00#Live Plant and Animal Material and Accessories and Supplies#10.00.00.00.00
+unspsc7#10.10.00.00.00#Live animals#10.00.00.00.00
+unspsc7#10.10.15.00.00#Livestock#10.10.00.00.00
+unspsc7#10.10.15.01.00#Cats#10.10.15.00.00
+unspsc7#10.10.15.02.00#Dogs#10.10.15.00.00
+unspsc7#10.10.15.04.00#Mink#10.10.15.00.00
+unspsc7#10.10.15.05.00#Rats#10.10.15.00.00
+unspsc7#10.10.15.06.00#Horses#10.10.15.00.00
+unspsc7#10.10.15.07.00#Sheep#10.10.15.00.00
+unspsc7#10.10.15.08.00#Goats#10.10.15.00.00
+unspsc7#10.10.15.09.00#Asses#10.10.15.00.00
+unspsc7#10.10.15.10.00#Mice#10.10.15.00.00
+unspsc7#10.10.15.11.00#Swine#10.10.15.00.00
+unspsc7#10.10.15.12.00#Rabbits#10.10.15.00.00
+unspsc7#10.10.15.13.00#Guinea pigs#10.10.15.00.00
+unspsc7#10.10.15.14.00#Primates#10.10.15.00.00
+unspsc7#10.10.15.15.00#Armadillos#10.10.15.00.00
+unspsc7#10.10.15.16.00#Cattle#10.10.15.00.00
+unspsc7#10.10.15.17.00#Camels#10.10.15.00.00
+unspsc7#10.10.16.00.00#Birds and fowl#10.10.00.00.00
+unspsc7#10.10.16.01.00#Live chickens#10.10.16.00.00
+unspsc7#10.10.16.02.00#Live ducks#10.10.16.00.00
+unspsc7#10.10.16.03.00#Live turkeys#10.10.16.00.00
+unspsc7#10.10.16.04.00#Live geese#10.10.16.00.00
+unspsc7#10.10.16.05.00#Live pheasants#10.10.16.00.00
+unspsc7#10.10.17.00.00#Live fish#10.10.00.00.00
+unspsc7#10.10.17.01.00#Live salmon#10.10.17.00.00
+unspsc7#10.10.17.02.00#Live trout#10.10.17.00.00
+unspsc7#10.10.17.03.00#Live talapia#10.10.17.00.00
+unspsc7#10.10.17.04.00#Live carp#10.10.17.00.00
+unspsc7#10.10.17.05.00#Live eels#10.10.17.00.00
+unspsc7#10.10.18.00.00#Shellfish and aquatic invertebrates#10.10.00.00.00
+unspsc7#10.10.18.01.00#Live shrimp#10.10.18.00.00
+unspsc7#10.10.18.02.00#Live clams#10.10.18.00.00
+unspsc7#10.10.18.03.00#Live mussels#10.10.18.00.00
+unspsc7#10.10.18.04.00#Live oysters#10.10.18.00.00
+unspsc7#10.10.18.05.00#Live crabs#10.10.18.00.00
+unspsc7#10.10.18.06.00#Live abalone#10.10.18.00.00
+unspsc7#10.10.18.07.00#Live octopi#10.10.18.00.00
+unspsc7#10.10.18.08.00#Live squid#10.10.18.00.00
+unspsc7#10.10.19.00.00#Insects#10.10.00.00.00
+unspsc7#10.10.19.01.00#Butterflies#10.10.19.00.00
+unspsc7#10.10.19.02.00#Beetles#10.10.19.00.00
+unspsc7#10.10.19.03.00#Bees#10.10.19.00.00
+unspsc7#10.10.19.04.00#Silkworms#10.10.19.00.00
+unspsc7#10.10.20.00.00#Wild animals#10.10.00.00.00
+unspsc7#10.10.20.01.00#Elephants#10.10.20.00.00
+unspsc7#10.10.20.02.00#Live foxes#10.10.20.00.00
+unspsc7#10.11.00.00.00#Domestic pet products#10.00.00.00.00
+unspsc7#10.11.11.00.00#Pet food bowls or equipment#10.11.00.00.00
+unspsc7#10.11.12.00.00#Medicated pet treatments#10.11.00.00.00
+unspsc7#10.11.13.00.00#Domestic pet treatments and accessories and equipment#10.11.00.00.00
+unspsc7#10.11.13.01.00#Pet toys#10.11.13.00.00
+unspsc7#10.11.13.02.00#Pet grooming products#10.11.13.00.00
+unspsc7#10.11.13.03.00#Pet litter or equipment for pet waste management#10.11.13.00.00
+unspsc7#10.11.13.04.00#Pet food bowls or equipment#10.11.13.00.00
+unspsc7#10.11.13.05.00#Medicated pet treatments#10.11.13.00.00
+unspsc7#10.12.00.00.00#Animal feed#10.00.00.00.00
+unspsc7#10.12.15.00.00#Livestock feed#10.12.00.00.00
+unspsc7#10.12.15.01.00#Pure wheat bran#10.12.15.00.00
+unspsc7#10.12.15.02.00#Feed oats#10.12.15.00.00
+unspsc7#10.12.15.03.00#Feed corn#10.12.15.00.00
+unspsc7#10.12.15.04.00#Feed sorghum#10.12.15.00.00
+unspsc7#10.12.15.05.00#Hay#10.12.15.00.00
+unspsc7#10.12.15.06.00#Oil cake#10.12.15.00.00
+unspsc7#10.12.16.00.00#Bird and fowl food#10.12.00.00.00
+unspsc7#10.12.16.01.00#Live food for birds#10.12.16.00.00
+unspsc7#10.12.16.02.00#Bird seed#10.12.16.00.00
+unspsc7#10.12.16.03.00#Bird treats or snacks#10.12.16.00.00
+unspsc7#10.12.16.04.00#Poultry food#10.12.16.00.00
+unspsc7#10.12.17.00.00#Fish food#10.12.00.00.00
+unspsc7#10.12.17.01.00#Fresh or frozen brine#10.12.17.00.00
+unspsc7#10.12.17.02.00#Fish food pellets#10.12.17.00.00
+unspsc7#10.12.17.03.00#Fish food flakes#10.12.17.00.00
+unspsc7#10.12.18.00.00#Dog and cat food#10.12.00.00.00
+unspsc7#10.12.18.01.00#Dry food for dogs#10.12.18.00.00
+unspsc7#10.12.18.02.00#Moist food for dogs#10.12.18.00.00
+unspsc7#10.12.18.03.00#Milk for dogs or cats#10.12.18.00.00
+unspsc7#10.12.18.04.00#Dry food for cats#10.12.18.00.00
+unspsc7#10.12.18.05.00#Moist food for cats#10.12.18.00.00
+unspsc7#10.12.18.06.00#Treats or snacks for cats or dogs#10.12.18.00.00
+unspsc7#10.12.19.00.00#Rodent food#10.12.00.00.00
+unspsc7#10.12.19.01.00#Pelletized food for rodents#10.12.19.00.00
+unspsc7#10.12.20.00.00#Reptile food#10.12.00.00.00
+unspsc7#10.12.20.01.00#Pelletized food for reptiles#10.12.20.00.00
+unspsc7#10.12.20.02.00#Moist food for reptiles#10.12.20.00.00
+unspsc7#10.12.20.03.00#Live food for reptiles#10.12.20.00.00
+unspsc7#10.13.00.00.00#Animal containment and habitats#10.00.00.00.00
+unspsc7#10.13.15.00.00#Animal shelters#10.13.00.00.00
+unspsc7#10.13.15.06.00#Livestock stables#10.13.15.00.00
+unspsc7#10.13.15.07.00#Domesticized pet houses#10.13.15.00.00
+unspsc7#10.13.15.08.00#Pet beds#10.13.15.00.00
+unspsc7#10.13.16.00.00#Animal containment#10.13.00.00.00
+unspsc7#10.13.16.01.00#Cages#10.13.16.00.00
+unspsc7#10.13.16.02.00#Kennels#10.13.16.00.00
+unspsc7#10.13.16.03.00#Animal carrying cases#10.13.16.00.00
+unspsc7#10.13.16.04.00#Dog runs#10.13.16.00.00
+unspsc7#10.13.17.00.00#Animal habitats#10.13.00.00.00
+unspsc7#10.13.17.01.00#Terrariums#10.13.17.00.00
+unspsc7#10.13.17.02.00#Aquariums#10.13.17.00.00
+unspsc7#10.14.00.00.00#Saddlery and harness goods#10.00.00.00.00
+unspsc7#10.14.15.00.00#Saddlery#10.14.00.00.00
+unspsc7#10.14.15.01.00#Saddles#10.14.15.00.00
+unspsc7#10.14.15.02.00#Whips#10.14.15.00.00
+unspsc7#10.14.16.00.00#Harness goods#10.14.00.00.00
+unspsc7#10.14.16.01.00#Bridles#10.14.16.00.00
+unspsc7#10.14.16.02.00#Yokes#10.14.16.00.00
+unspsc7#10.14.16.03.00#Horse bits#10.14.16.00.00
+unspsc7#10.14.16.04.00#Reins#10.14.16.00.00
+unspsc7#10.14.16.05.00#Stirrups#10.14.16.00.00
+unspsc7#10.14.16.06.00#Leashes or leads#10.14.16.00.00
+unspsc7#10.14.16.07.00#Collars#10.14.16.00.00
+unspsc7#10.14.16.08.00#Harnesses#10.14.16.00.00
+unspsc7#10.14.16.09.00#Restraints#10.14.16.00.00
+unspsc7#10.15.00.00.00#Seeds and bulbs and seedlings and cuttings#10.00.00.00.00
+unspsc7#10.15.15.00.00#Vegetable seeds and seedlings#10.15.00.00.00
+unspsc7#10.15.15.01.00#Bean seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.02.00#Carrot seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.03.00#Celery seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.04.00#Chili seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.05.00#Courgette seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.06.00#Cow pea seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.07.00#Cucumber seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.08.00#Eggplant seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.09.00#Endive seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.10.00#Garlic seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.11.00#Leek seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.12.00#Lettuce seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.13.00#Corn seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.14.00#Melon seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.15.00#Onion seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.16.00#Soya seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.17.00#Spinach seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.18.00#Tomato seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.19.00#Turnip seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.20.00#Chard seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.21.00#Sweet pepper seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.22.00#Beet seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.23.00#Cauliflower seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.15.24.00#Parsely seeds or seedlings#10.15.15.00.00
+unspsc7#10.15.16.00.00#Cereal seeds#10.15.00.00.00
+unspsc7#10.15.16.01.00#Wheat seeds#10.15.16.00.00
+unspsc7#10.15.16.02.00#Colza seeds#10.15.16.00.00
+unspsc7#10.15.16.03.00#Barley seeds#10.15.16.00.00
+unspsc7#10.15.16.04.00#Millet seeds#10.15.16.00.00
+unspsc7#10.15.16.05.00#Oat seeds#10.15.16.00.00
+unspsc7#10.15.16.06.00#Sesame seeds#10.15.16.00.00
+unspsc7#10.15.16.07.00#Linseed seeds#10.15.16.00.00
+unspsc7#10.15.16.08.00#Castor oil seeds#10.15.16.00.00
+unspsc7#10.15.16.09.00#Maize seeds#10.15.16.00.00
+unspsc7#10.15.16.10.00#Rye seeds#10.15.16.00.00
+unspsc7#10.15.16.11.00#Sorghum seeds#10.15.16.00.00
+unspsc7#10.15.17.00.00#Grass and forage seeds and seedlings#10.15.00.00.00
+unspsc7#10.15.17.01.00#Rice seeds or seedlings#10.15.17.00.00
+unspsc7#10.15.17.02.00#Clover seeds or seedling#10.15.17.00.00
+unspsc7#10.15.17.03.00#Alfalfa seeds or seedlings#10.15.17.00.00
+unspsc7#10.15.17.04.00#Grass seeds or seedlings#10.15.17.00.00
+unspsc7#10.15.18.00.00#Spice crop seeds and seedlings#10.15.00.00.00
+unspsc7#10.15.18.01.00#Pepper seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.02.00#Vanilla seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.03.00#Cinnamon seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.04.00#Clove seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.05.00#Coriander seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.06.00#Ginger seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.07.00#Saffron seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.08.00#Thyme seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.09.00#Curry seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.10.00#Mustard seeds or seedlings#10.15.18.00.00
+unspsc7#10.15.18.11.00#Ginseng roots or seedlings#10.15.18.00.00
+unspsc7#10.15.19.00.00#Flower seeds and bulbs and seedlings and cuttings#10.15.00.00.00
+unspsc7#10.15.19.01.00#Tulip seeds or bulbs or seedlings or cuttings#10.15.19.00.00
+unspsc7#10.15.19.02.00#Rose seeds or seedlings or cuttings#10.15.19.00.00
+unspsc7#10.15.19.03.00#Daffodil seeds or bulbs or seedlings or cuttings#10.15.19.00.00
+unspsc7#10.15.19.04.00#Sunflower seeds#10.15.19.00.00
+unspsc7#10.15.19.05.00#Hyacinth bulbs or shoots#10.15.19.00.00
+unspsc7#10.15.19.06.00#Lily Bulbs#10.15.19.00.00
+unspsc7#10.15.20.00.00#Tree and shrub seeds and cuttings#10.15.00.00.00
+unspsc7#10.15.20.01.00#Fruit tree seeds or cuttings#10.15.20.00.00
+unspsc7#10.15.20.02.00#Conifer tree seeds or cuttings#10.15.20.00.00
+unspsc7#10.15.20.03.00#Nut tree seeds or cuttings#10.15.20.00.00
+unspsc7#10.15.21.00.00#Residues other than animal feed#10.15.00.00.00
+unspsc7#10.15.21.01.00#Residues babool seed extraction#10.15.21.00.00
+unspsc7#10.15.21.02.00#Residues of rape seeds#10.15.21.00.00
+unspsc7#10.15.21.03.00#Residue of linseed#10.15.21.00.00
+unspsc7#10.15.21.04.00#Oil cake of neem#10.15.21.00.00
+unspsc7#10.15.22.00.00#Fibrous crop seeds and seedlings#10.15.00.00.00
+unspsc7#10.15.22.01.00#Cotton seeds or seedlings#10.15.22.00.00
+unspsc7#10.16.00.00.00#Floriculture and silviculture products#10.00.00.00.00
+unspsc7#10.16.15.00.00#Trees and shrubs#10.16.00.00.00
+unspsc7#10.16.15.01.00#Olive trees#10.16.15.00.00
+unspsc7#10.16.15.02.00#Coffee shrubs#10.16.15.00.00
+unspsc7#10.16.15.03.00#Cocoa trees#10.16.15.00.00
+unspsc7#10.16.15.04.00#Apple trees#10.16.15.00.00
+unspsc7#10.16.15.05.00#Peach trees#10.16.15.00.00
+unspsc7#10.16.15.06.00#Orange trees#10.16.15.00.00
+unspsc7#10.16.15.07.00#Rhodendron shrubs#10.16.15.00.00
+unspsc7#10.16.15.08.00#Tea shrubs#10.16.15.00.00
+unspsc7#10.16.15.09.00#Conifer trees#10.16.15.00.00
+unspsc7#10.16.15.10.00#Spruce trees#10.16.15.00.00
+unspsc7#10.16.15.11.00#Pine trees#10.16.15.00.00
+unspsc7#10.16.15.12.00#Fir trees#10.16.15.00.00
+unspsc7#10.16.16.00.00#Floral plants#10.16.00.00.00
+unspsc7#10.16.16.01.00#Rose plants#10.16.16.00.00
+unspsc7#10.16.16.02.00#Poinsettias plants#10.16.16.00.00
+unspsc7#10.16.16.03.00#Orchids plants#10.16.16.00.00
+unspsc7#10.16.16.04.00#Azaleas plants#10.16.16.00.00
+unspsc7#10.16.16.05.00#Cactus plants#10.16.16.00.00
+unspsc7#10.16.17.00.00#Cut flowers#10.16.00.00.00
+unspsc7#10.16.17.01.00#Cut gladiolus#10.16.17.00.00
+unspsc7#10.16.17.02.00#Cut lilies#10.16.17.00.00
+unspsc7#10.16.17.03.00#Cut carnations#10.16.17.00.00
+unspsc7#10.16.17.04.00#Cut tulips#10.16.17.00.00
+unspsc7#10.16.17.05.00#Cut roses#10.16.17.00.00
+unspsc7#10.16.18.00.00#Non flowering plants#10.16.00.00.00
+unspsc7#10.16.18.01.00#Ferns#10.16.18.00.00
+unspsc7#10.16.18.02.00#Ivies#10.16.18.00.00
+unspsc7#10.16.18.03.00#Philodendrons#10.16.18.00.00
+unspsc7#10.16.19.00.00#Dried floral products#10.16.00.00.00
+unspsc7#10.16.19.01.00#Dried pods#10.16.19.00.00
+unspsc7#10.16.19.02.00#Dried leafy greenery#10.16.19.00.00
+unspsc7#10.16.19.03.00#Dried fern greenery#10.16.19.00.00
+unspsc7#10.16.19.04.00#Dried full flowers#10.16.19.00.00
+unspsc7#10.16.19.05.00#Dried twigs or sticks#10.16.19.00.00
+unspsc7#10.16.19.06.00#Dried grass plumes#10.16.19.00.00
+unspsc7#10.16.19.07.00#Dried pressed flowers#10.16.19.00.00
+unspsc7#10.16.19.08.00#Dried flower petals#10.16.19.00.00
+unspsc7#10.17.00.00.00#Fertilizers and plant nutrients and herbicides#10.00.00.00.00
+unspsc7#10.17.15.00.00#Organic fertilizers and plant nutrients#10.17.00.00.00
+unspsc7#10.17.15.01.00#Manure or guano#10.17.15.00.00
+unspsc7#10.17.15.02.00#Plant hormones#10.17.15.00.00
+unspsc7#10.17.15.03.00#Fish meal#10.17.15.00.00
+unspsc7#10.17.16.00.00#Chemical fertilizers and plant nutrients#10.17.00.00.00
+unspsc7#10.17.16.01.00#Nitrogenous fertilizer#10.17.16.00.00
+unspsc7#10.17.16.02.00#Potassic fertilizer#10.17.16.00.00
+unspsc7#10.17.16.03.00#Phosphatic fertilizer#10.17.16.00.00
+unspsc7#10.17.16.04.00#Sulphuric fertilizer#10.17.16.00.00
+unspsc7#10.17.16.05.00#Nitrogen Phosphorous Potassium Mixtures (NPK)#10.17.16.00.00
+unspsc7#10.17.17.00.00#Herbicides#10.17.00.00.00
+unspsc7#10.17.17.01.00#Weed killer#10.17.17.00.00
+unspsc7#10.17.17.02.00#Fungicides#10.17.17.00.00
+unspsc7#10.19.00.00.00#Pest control products#10.00.00.00.00
+unspsc7#10.19.15.00.00#Insecticides and insect control traps#10.19.00.00.00
+unspsc7#10.19.15.01.00#Spray insecticides#10.19.15.00.00
+unspsc7#10.19.15.02.00#Bait insecticides#10.19.15.00.00
+unspsc7#10.19.15.03.00#Silicic acid#10.19.15.00.00
+unspsc7#10.19.15.04.00#Flying insect control traps#10.19.15.00.00
+unspsc7#10.19.16.00.00#Rodenticides#10.19.00.00.00
+unspsc7#10.19.16.01.00#Extruded baits#10.19.16.00.00
+unspsc7#10.19.16.02.00#Meal or pellet or seed baits#10.19.16.00.00
+unspsc7#10.19.16.03.00#Liquid baits#10.19.16.00.00
+unspsc7#10.19.16.04.00#Tracking powders#10.19.16.00.00
+unspsc7#10.19.17.00.00#Animal control traps#10.19.00.00.00
+unspsc7#10.19.17.01.00#Mouse or rat traps#10.19.17.00.00
+unspsc7#10.19.17.02.00#Wire cage traps#10.19.17.00.00
+unspsc7#11.00.00.00.00#Mineral and Textile and Inedible Plant and Animal Materials#11.00.00.00.00
+unspsc7#11.10.00.00.00#Minerals and ores and metals#11.00.00.00.00
+unspsc7#11.10.15.00.00#Minerals#11.10.00.00.00
+unspsc7#11.10.15.01.00#Mica#11.10.15.00.00
+unspsc7#11.10.15.02.00#Emery#11.10.15.00.00
+unspsc7#11.10.15.03.00#Quartz#11.10.15.00.00
+unspsc7#11.10.15.04.00#Pyrite#11.10.15.00.00
+unspsc7#11.10.15.05.00#Sulphur#11.10.15.00.00
+unspsc7#11.10.15.06.00#Chalk#11.10.15.00.00
+unspsc7#11.10.15.07.00#Graphite#11.10.15.00.00
+unspsc7#11.10.15.08.00#Dolomite#11.10.15.00.00
+unspsc7#11.10.15.09.00#Magnesite#11.10.15.00.00
+unspsc7#11.10.15.10.00#Asbestos#11.10.15.00.00
+unspsc7#11.10.15.11.00#Calcium#11.10.15.00.00
+unspsc7#11.10.15.12.00#Borate#11.10.15.00.00
+unspsc7#11.10.15.13.00#Cryolite#11.10.15.00.00
+unspsc7#11.10.15.14.00#Feldspar#11.10.15.00.00
+unspsc7#11.10.15.15.00#Leucite#11.10.15.00.00
+unspsc7#11.10.15.16.00#Nephelite#11.10.15.00.00
+unspsc7#11.10.15.17.00#Steatite#11.10.15.00.00
+unspsc7#11.10.15.18.00#Talc#11.10.15.00.00
+unspsc7#11.10.15.19.00#Diamonds#11.10.15.00.00
+unspsc7#11.10.15.20.00#Garnets#11.10.15.00.00
+unspsc7#11.10.15.21.00#Silicon carbide#11.10.15.00.00
+unspsc7#11.10.15.22.00#Activated carbon#11.10.15.00.00
+unspsc7#11.10.15.23.00#Mulite#11.10.15.00.00
+unspsc7#11.10.15.24.00#Flourospar#11.10.15.00.00
+unspsc7#11.10.15.25.00#Keiserite#11.10.15.00.00
+unspsc7#11.10.15.26.00#Carnallite#11.10.15.00.00
+unspsc7#11.10.16.00.00#Ores#11.10.00.00.00
+unspsc7#11.10.16.01.00#Iron ore#11.10.16.00.00
+unspsc7#11.10.16.02.00#Titanium ore#11.10.16.00.00
+unspsc7#11.10.16.03.00#Uranium ore#11.10.16.00.00
+unspsc7#11.10.16.04.00#Copper ore#11.10.16.00.00
+unspsc7#11.10.16.05.00#Aluminum ore#11.10.16.00.00
+unspsc7#11.10.16.06.00#Nickel ore#11.10.16.00.00
+unspsc7#11.10.16.07.00#Silver ore#11.10.16.00.00
+unspsc7#11.10.16.08.00#Lead ore#11.10.16.00.00
+unspsc7#11.10.16.09.00#Zinc ore#11.10.16.00.00
+unspsc7#11.10.16.10.00#Tin ore#11.10.16.00.00
+unspsc7#11.10.16.11.00#Manganese ore#11.10.16.00.00
+unspsc7#11.10.16.12.00#Chromium ore#11.10.16.00.00
+unspsc7#11.10.16.13.00#Tungsten or wolfram ore#11.10.16.00.00
+unspsc7#11.10.16.14.00#Molybdenum ore#11.10.16.00.00
+unspsc7#11.10.16.15.00#Cobalt ore#11.10.16.00.00
+unspsc7#11.10.16.16.00#Gold ore#11.10.16.00.00
+unspsc7#11.10.16.17.00#Tantalum ore#11.10.16.00.00
+unspsc7#11.10.16.18.00#Platinum ore#11.10.16.00.00
+unspsc7#11.10.16.19.00#Vermiculite ore#11.10.16.00.00
+unspsc7#11.10.16.20.00#Thorium ore#11.10.16.00.00
+unspsc7#11.10.16.21.00#Kyanite ore#11.10.16.00.00
+unspsc7#11.10.16.22.00#Antimony ores#11.10.16.00.00
+unspsc7#11.10.16.23.00#Zirconium ores#11.10.16.00.00
+unspsc7#11.10.17.00.00#Base metals#11.10.00.00.00
+unspsc7#11.10.17.01.00#Slag or ash#11.10.17.00.00
+unspsc7#11.10.17.02.00#Natural graphite#11.10.17.00.00
+unspsc7#11.10.17.03.00#Titanium#11.10.17.00.00
+unspsc7#11.10.17.04.00#Steel#11.10.17.00.00
+unspsc7#11.10.17.05.00#Aluminum#11.10.17.00.00
+unspsc7#11.10.17.06.00#Nickel#11.10.17.00.00
+unspsc7#11.10.17.07.00#Magnesium#11.10.17.00.00
+unspsc7#11.10.17.08.00#Bismuth#11.10.17.00.00
+unspsc7#11.10.17.09.00#Antimony#11.10.17.00.00
+unspsc7#11.10.17.10.00#Cadmium#11.10.17.00.00
+unspsc7#11.10.17.11.00#Non ferrous alloy#11.10.17.00.00
+unspsc7#11.10.17.12.00#Ferrous alloy#11.10.17.00.00
+unspsc7#11.10.17.13.00#Iron#11.10.17.00.00
+unspsc7#11.10.17.14.00#Lead#11.10.17.00.00
+unspsc7#11.10.17.15.00#Copper#11.10.17.00.00
+unspsc7#11.10.18.00.00#Precious metals#11.10.00.00.00
+unspsc7#11.10.18.01.00#Gold#11.10.18.00.00
+unspsc7#11.10.18.02.00#Silver#11.10.18.00.00
+unspsc7#11.10.18.03.00#Platinum#11.10.18.00.00
+unspsc7#11.11.00.00.00#Earth and stone#11.00.00.00.00
+unspsc7#11.11.15.00.00#Dirt and soil#11.11.00.00.00
+unspsc7#11.11.15.01.00#Soil#11.11.15.00.00
+unspsc7#11.11.15.02.00#Fill dirt#11.11.15.00.00
+unspsc7#11.11.15.03.00#Topsoil#11.11.15.00.00
+unspsc7#11.11.16.00.00#Stone#11.11.00.00.00
+unspsc7#11.11.16.01.00#Gypsum#11.11.16.00.00
+unspsc7#11.11.16.02.00#Travertine#11.11.16.00.00
+unspsc7#11.11.16.03.00#Ecaussine or alabaster#11.11.16.00.00
+unspsc7#11.11.16.04.00#Granite#11.11.16.00.00
+unspsc7#11.11.16.05.00#Marble#11.11.16.00.00
+unspsc7#11.11.16.06.00#Slate#11.11.16.00.00
+unspsc7#11.11.16.07.00#Sandstone#11.11.16.00.00
+unspsc7#11.11.16.08.00#Limestone#11.11.16.00.00
+unspsc7#11.11.16.09.00#Basalt#11.11.16.00.00
+unspsc7#11.11.16.10.00#Pumice stone#11.11.16.00.00
+unspsc7#11.11.17.00.00#Sand#11.11.00.00.00
+unspsc7#11.11.17.01.00#Silica sand#11.11.17.00.00
+unspsc7#11.11.18.00.00#Clays#11.11.00.00.00
+unspsc7#11.11.18.01.00#Terra cotta#11.11.18.00.00
+unspsc7#11.11.18.02.00#Fireclay#11.11.18.00.00
+unspsc7#11.11.18.03.00#Kaolin or other kaolinic clays#11.11.18.00.00
+unspsc7#11.11.18.04.00#Bentonite#11.11.18.00.00
+unspsc7#11.11.18.05.00#Andalusite#11.11.18.00.00
+unspsc7#11.11.18.06.00#Mullite#11.11.18.00.00
+unspsc7#11.11.18.07.00#Chamotte#11.11.18.00.00
+unspsc7#11.11.18.08.00#Common clay#11.11.18.00.00
+unspsc7#11.11.18.09.00#Ball clay#11.11.18.00.00
+unspsc7#11.11.18.10.00#Fullers earth#11.11.18.00.00
+unspsc7#11.12.00.00.00#Non edible plant and forestry products#11.00.00.00.00
+unspsc7#11.12.15.00.00#Sap#11.12.00.00.00
+unspsc7#11.12.15.02.00#Rosin#11.12.15.00.00
+unspsc7#11.12.15.03.00#Lac#11.12.15.00.00
+unspsc7#11.12.16.00.00#Wood#11.12.00.00.00
+unspsc7#11.12.16.03.00#Logs#11.12.16.00.00
+unspsc7#11.12.16.04.00#Soft timber#11.12.16.00.00
+unspsc7#11.12.16.05.00#Rattan#11.12.16.00.00
+unspsc7#11.12.16.06.00#Cork#11.12.16.00.00
+unspsc7#11.12.16.07.00#Wood pulp#11.12.16.00.00
+unspsc7#11.12.16.08.00#Bamboo#11.12.16.00.00
+unspsc7#11.12.16.09.00#Plywood#11.12.16.00.00
+unspsc7#11.12.16.10.00#Hardwoods#11.12.16.00.00
+unspsc7#11.12.17.00.00#Forestry by products#11.12.00.00.00
+unspsc7#11.12.17.01.00#Saw dust#11.12.17.00.00
+unspsc7#11.12.17.02.00#Wood chips#11.12.17.00.00
+unspsc7#11.12.17.03.00#Peat moss#11.12.17.00.00
+unspsc7#11.12.17.04.00#Wood shavings#11.12.17.00.00
+unspsc7#11.12.17.05.00#Bark#11.12.17.00.00
+unspsc7#11.12.17.06.00#Mulch#11.12.17.00.00
+unspsc7#11.12.17.07.00#Wood wool#11.12.17.00.00
+unspsc7#11.12.17.08.00#Wood flour#11.12.17.00.00
+unspsc7#11.12.17.09.00#Balsams#11.12.17.00.00
+unspsc7#11.12.18.00.00#Plant fibers#11.12.00.00.00
+unspsc7#11.12.18.01.00#Hemp#11.12.18.00.00
+unspsc7#11.12.18.02.00#Cotton#11.12.18.00.00
+unspsc7#11.12.18.03.00#Flax#11.12.18.00.00
+unspsc7#11.12.18.04.00#Jute#11.12.18.00.00
+unspsc7#11.12.18.05.00#Sisal#11.12.18.00.00
+unspsc7#11.12.18.06.00#Coconut fibres or coir#11.12.18.00.00
+unspsc7#11.12.18.07.00#Abaca fibers#11.12.18.00.00
+unspsc7#11.12.18.08.00#Ramie#11.12.18.00.00
+unspsc7#11.12.18.09.00#Straw#11.12.18.00.00
+unspsc7#11.12.18.10.00#Broom corn or istle or piassava#11.12.18.00.00
+unspsc7#11.12.19.00.00#Perfumery products#11.12.00.00.00
+unspsc7#11.12.19.01.00#Licorice roots#11.12.19.00.00
+unspsc7#11.13.00.00.00#Non edible animal products#11.00.00.00.00
+unspsc7#11.13.15.00.00#Animal hides and skins and animal textile materials#11.13.00.00.00
+unspsc7#11.13.15.01.00#Feathers#11.13.15.00.00
+unspsc7#11.13.15.02.00#Furs#11.13.15.00.00
+unspsc7#11.13.15.03.00#Animal hair#11.13.15.00.00
+unspsc7#11.13.15.04.00#Hides#11.13.15.00.00
+unspsc7#11.13.15.05.00#Unprocessed mohair#11.13.15.00.00
+unspsc7#11.13.15.06.00#Unprocessed wool#11.13.15.00.00
+unspsc7#11.13.15.07.00#Suede#11.13.15.00.00
+unspsc7#11.13.15.08.00#Full grain leather#11.13.15.00.00
+unspsc7#11.13.16.00.00#Other animal products#11.13.00.00.00
+unspsc7#11.13.16.01.00#Ivory#11.13.16.00.00
+unspsc7#11.13.16.02.00#Semen#11.13.16.00.00
+unspsc7#11.13.16.03.00#Excretions#11.13.16.00.00
+unspsc7#11.13.16.04.00#Fish eggs#11.13.16.00.00
+unspsc7#11.13.16.05.00#Bones#11.13.16.00.00
+unspsc7#11.13.16.06.00#Animal horns#11.13.16.00.00
+unspsc7#11.13.16.07.00#Embryos#11.13.16.00.00
+unspsc7#11.13.16.08.00#Shell articles#11.13.16.00.00
+unspsc7#11.14.00.00.00#Scrap and waste materials#11.00.00.00.00
+unspsc7#11.14.15.00.00#Metal waste and scrap#11.14.00.00.00
+unspsc7#11.14.15.01.00#Ferrous metal waste or scrap#11.14.15.00.00
+unspsc7#11.14.15.02.00#Non ferrous metal waste or scrap#11.14.15.00.00
+unspsc7#11.14.15.03.00#Automotive wrecking for waste or scrap#11.14.15.00.00
+unspsc7#11.14.16.00.00#Non metallic waste and scrap#11.14.00.00.00
+unspsc7#11.14.16.01.00#Textile waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.02.00#Plastic waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.03.00#Oil wastes#11.14.16.00.00
+unspsc7#11.14.16.04.00#Paper wastes#11.14.16.00.00
+unspsc7#11.14.16.05.00#Glass waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.06.00#Wood waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.07.00#Rubber waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.08.00#Hazardous waste or scrap#11.14.16.00.00
+unspsc7#11.14.16.09.00#Composition leather#11.14.16.00.00
+unspsc7#11.14.16.10.00#Leather waste and scrap#11.14.16.00.00
+unspsc7#11.14.17.00.00#Food and tobacco waste and scrap#11.14.00.00.00
+unspsc7#11.14.17.01.00#Food waste or scrap#11.14.17.00.00
+unspsc7#11.14.17.02.00#Tobacco waste or scrap#11.14.17.00.00
+unspsc7#11.15.00.00.00#Fibers and threads and yarns#11.00.00.00.00
+unspsc7#11.15.15.00.00#Fibers#11.15.00.00.00
+unspsc7#11.15.15.01.00#Acetate fibers#11.15.15.00.00
+unspsc7#11.15.15.02.00#Nylon fibers#11.15.15.00.00
+unspsc7#11.15.15.03.00#Polyester fibers#11.15.15.00.00
+unspsc7#11.15.15.04.00#Acrylic fibers#11.15.15.00.00
+unspsc7#11.15.15.05.00#Viscose fibers#11.15.15.00.00
+unspsc7#11.15.15.06.00#Rayon fibers#11.15.15.00.00
+unspsc7#11.15.15.07.00#Cotton fibers#11.15.15.00.00
+unspsc7#11.15.15.08.00#Wool fibers#11.15.15.00.00
+unspsc7#11.15.15.09.00#Silk fibers#11.15.15.00.00
+unspsc7#11.15.15.10.00#Vegetable fibers#11.15.15.00.00
+unspsc7#11.15.15.11.00#Polypropylene fibers#11.15.15.00.00
+unspsc7#11.15.15.12.00#Glass fibers#11.15.15.00.00
+unspsc7#11.15.15.13.00#Ceramic fibers#11.15.15.00.00
+unspsc7#11.15.15.14.00#Polymer aramid fibers#11.15.15.00.00
+unspsc7#11.15.15.15.00#Asbestos fibers#11.15.15.00.00
+unspsc7#11.15.16.00.00#Threads#11.15.00.00.00
+unspsc7#11.15.16.01.00#Cotton thread#11.15.16.00.00
+unspsc7#11.15.16.02.00#Silk thread#11.15.16.00.00
+unspsc7#11.15.16.03.00#Polyester thread#11.15.16.00.00
+unspsc7#11.15.16.04.00#Polyamide thread#11.15.16.00.00
+unspsc7#11.15.16.05.00#Bismalemide thread#11.15.16.00.00
+unspsc7#11.15.16.06.00#Fiberglass thread#11.15.16.00.00
+unspsc7#11.15.16.07.00#Graphite thread#11.15.16.00.00
+unspsc7#11.15.16.08.00#Nylon thread#11.15.16.00.00
+unspsc7#11.15.16.09.00#Resin impregnated thread#11.15.16.00.00
+unspsc7#11.15.16.10.00#Rubber or latex thread#11.15.16.00.00
+unspsc7#11.15.16.11.00#Spandex thread#11.15.16.00.00
+unspsc7#11.15.17.00.00#Yarns#11.15.00.00.00
+unspsc7#11.15.17.01.00#Wool yarn#11.15.17.00.00
+unspsc7#11.15.17.02.00#Cotton yarn#11.15.17.00.00
+unspsc7#11.15.17.03.00#Polyester yarn#11.15.17.00.00
+unspsc7#11.15.17.04.00#Acrylic yarn#11.15.17.00.00
+unspsc7#11.15.17.05.00#Silk yarn#11.15.17.00.00
+unspsc7#11.15.17.06.00#Ramie yarn#11.15.17.00.00
+unspsc7#11.15.17.07.00#Flax yarn#11.15.17.00.00
+unspsc7#11.15.17.08.00#Animal hair yarn#11.15.17.00.00
+unspsc7#11.15.17.09.00#Synthetic yarn#11.15.17.00.00
+unspsc7#11.15.17.10.00#Jute yarn#11.15.17.00.00
+unspsc7#11.15.17.11.00#Coir yarn#11.15.17.00.00
+unspsc7#11.15.17.12.00#Paper yarn#11.15.17.00.00
+unspsc7#11.15.17.13.00#Hemp yarn#11.15.17.00.00
+unspsc7#11.16.00.00.00#Fabrics and leather materials#11.00.00.00.00
+unspsc7#11.16.15.00.00#Silk fabrics#11.16.00.00.00
+unspsc7#11.16.15.01.00#Plain weave silk fabrics#11.16.15.00.00
+unspsc7#11.16.15.02.00#Jacquard weave silk fabrics#11.16.15.00.00
+unspsc7#11.16.15.03.00#Knit silk fabrics#11.16.15.00.00
+unspsc7#11.16.15.04.00#Silk velvets fabrics#11.16.15.00.00
+unspsc7#11.16.16.00.00#Wool fabrics#11.16.00.00.00
+unspsc7#11.16.16.01.00#Plain weave wool fabrics#11.16.16.00.00
+unspsc7#11.16.16.02.00#Jacquard weave wool fabrics#11.16.16.00.00
+unspsc7#11.16.16.03.00#Knit wool fabrics#11.16.16.00.00
+unspsc7#11.16.17.00.00#Cotton fabrics#11.16.00.00.00
+unspsc7#11.16.17.01.00#Plain weave cotton fabrics#11.16.17.00.00
+unspsc7#11.16.17.02.00#Twill weave cotton fabrics#11.16.17.00.00
+unspsc7#11.16.17.03.00#Cotton oxford cloths#11.16.17.00.00
+unspsc7#11.16.17.04.00#Knit cotton fabrics#11.16.17.00.00
+unspsc7#11.16.17.05.00#Cotton velvet fabrics#11.16.17.00.00
+unspsc7#11.16.18.00.00#Synthetic fabrics#11.16.00.00.00
+unspsc7#11.16.18.01.00#Plain weave synthetic fabrics#11.16.18.00.00
+unspsc7#11.16.18.02.00#Jacquard weave synthetic fabrics#11.16.18.00.00
+unspsc7#11.16.18.03.00#Dobby weave synthetic fabrics#11.16.18.00.00
+unspsc7#11.16.18.04.00#Knit synthetic fabrics#11.16.18.00.00
+unspsc7#11.16.18.05.00#Synthetic velvet fabrics#11.16.18.00.00
+unspsc7#11.16.19.00.00#Artificial fabrics#11.16.00.00.00
+unspsc7#11.16.19.01.00#Plain weave artificial fabrics#11.16.19.00.00
+unspsc7#11.16.19.02.00#Jacquard weave artificial fabrics#11.16.19.00.00
+unspsc7#11.16.19.03.00#Dobby weave artificial fabrics#11.16.19.00.00
+unspsc7#11.16.19.04.00#Knit artificial fabrics#11.16.19.00.00
+unspsc7#11.16.19.05.00#Artifical velvet fabrics#11.16.19.00.00
+unspsc7#11.16.20.00.00#Fabrics of vegetable material other than cotton#11.16.00.00.00
+unspsc7#11.16.20.01.00#Plain weave non cotton vegetable fiber fabrics#11.16.20.00.00
+unspsc7#11.16.20.02.00#Knit non cotton vegetable fiber fabrics#11.16.20.00.00
+unspsc7#11.16.20.03.00#Hessian or hemp or jute cloth#11.16.20.00.00
+unspsc7#11.16.21.00.00#Specialty fabrics or cloth#11.16.00.00.00
+unspsc7#11.16.21.01.00#Cheese cloth or fabric#11.16.21.00.00
+unspsc7#11.16.21.02.00#Bismalemide fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.03.00#Fiberglass fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.04.00#Graphite fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.05.00#Glass fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.07.00#Resin impregnated fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.08.00#Wire mesh fabric or cloth#11.16.21.00.00
+unspsc7#11.16.21.09.00#Lace#11.16.21.00.00
+unspsc7#11.16.21.10.00#Netting#11.16.21.00.00
+unspsc7#11.16.21.11.00#Mesh#11.16.21.00.00
+unspsc7#11.16.21.12.00#Coated fabrics#11.16.21.00.00
+unspsc7#11.16.21.13.00#Upholstery fabrics#11.16.21.00.00
+unspsc7#11.16.21.14.00#Hook and loop fabrics or tapes#11.16.21.00.00
+unspsc7#11.16.21.15.00#Elastic braid#11.16.21.00.00
+unspsc7#11.16.21.16.00#Burlap cloth#11.16.21.00.00
+unspsc7#11.16.21.17.00#Rubber fabrics#11.16.21.00.00
+unspsc7#11.16.21.18.00#Paper yarn fabric#11.16.21.00.00
+unspsc7#11.16.21.19.00#Tracing cloth#11.16.21.00.00
+unspsc7#11.16.21.20.00#Bolting cloth#11.16.21.00.00
+unspsc7#11.16.21.21.00#Ornamental trimmings#11.16.21.00.00
+unspsc7#11.16.22.00.00#Nonwoven fabrics#11.16.00.00.00
+unspsc7#11.16.22.01.00#Spunbonded nonwovens#11.16.22.00.00
+unspsc7#11.16.22.02.00#Spunlaced nonwovens#11.16.22.00.00
+unspsc7#11.16.23.00.00#Leathers#11.16.00.00.00
+unspsc7#11.16.23.01.00#Chamois leather#11.16.23.00.00
+unspsc7#11.16.23.02.00#Goat leather#11.16.23.00.00
+unspsc7#11.16.23.03.00#Sheep leather#11.16.23.00.00
+unspsc7#11.16.23.04.00#Patent leather#11.16.23.00.00
+unspsc7#11.16.23.05.00#Cow leather#11.16.23.00.00
+unspsc7#11.16.23.06.00#Pig leather#11.16.23.00.00
+unspsc7#11.16.23.07.00#Synthetic or imitation leather#11.16.23.00.00
+unspsc7#11.16.23.08.00#Buffalo leather#11.16.23.00.00
+unspsc7#11.16.23.09.00#Reptile leather#11.16.23.00.00
+unspsc7#12.00.00.00.00#Chemicals including Bio Chemicals and Gas Materials#12.00.00.00.00
+unspsc7#12.10.00.00.00#Organic chemicals#12.00.00.00.00
+unspsc7#12.10.15.00.00#Alcohol#12.10.00.00.00
+unspsc7#12.10.15.01.00#Saturated monohydric alcohol#12.10.15.00.00
+unspsc7#12.10.15.02.00#Isopropyl alcohol#12.10.15.00.00
+unspsc7#12.10.15.03.00#Unsaturated monohydric alcohol#12.10.15.00.00
+unspsc7#12.10.15.04.00#Cyclic alcohol or their halogenated or sulphonated or nitrated derivatives#12.10.15.00.00
+unspsc7#12.10.15.05.00#Phenol alcohol#12.10.15.00.00
+unspsc7#12.10.15.06.00#Halogenated or sulphonated or nitrated or nitrosated derivatives of phenols#12.10.15.00.00
+unspsc7#12.10.15.07.00#Methylated spirit#12.10.15.00.00
+unspsc7#12.10.16.00.00#Ethers and alcohol peroxides and ether peroxides and other organic compounds#12.10.00.00.00
+unspsc7#12.10.16.01.00#Acyclic ethers#12.10.16.00.00
+unspsc7#12.10.16.02.00#Cyclonic or cyclenic or cycloterpenic ethers#12.10.16.00.00
+unspsc7#12.10.16.03.00#Ether or aromatic ether#12.10.16.00.00
+unspsc7#12.10.16.04.00#Ether alcohol#12.10.16.00.00
+unspsc7#12.10.16.05.00#Ether phenols or ether alcohol phenols#12.10.16.00.00
+unspsc7#12.10.16.06.00#Alcohol peroxides#12.10.16.00.00
+unspsc7#12.10.16.07.00#Oxirane or ethylene oxide#12.10.16.00.00
+unspsc7#12.10.16.08.00#Epichlorohydrin or 1 chloro 2 or 3 epoxypropane#12.10.16.00.00
+unspsc7#12.10.16.09.00#Epoxides or epoxyalcohols or epoxyphenols or epoxyethers#12.10.16.00.00
+unspsc7#12.10.16.10.00#Acetals or kemiacetals#12.10.16.00.00
+unspsc7#12.10.16.11.00#Acyclic aldehydes without other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.12.00#Cyclic aldehydes without other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.13.00#Alcohol aldehyde#12.10.16.00.00
+unspsc7#12.10.16.14.00#Paraformaldehyde#12.10.16.00.00
+unspsc7#12.10.16.15.00#Aldehydes#12.10.16.00.00
+unspsc7#12.10.16.16.00#Acyclic ketones without other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.17.00#Cyclonic or cyclenic or cycloterpenic ketones without other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.18.00#Ketones or aromatic without other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.19.00#Ketone alcohol or ketone aldehydes#12.10.16.00.00
+unspsc7#12.10.16.20.00#Ketone phenols or ketones with other oxygen function#12.10.16.00.00
+unspsc7#12.10.16.21.00#Quinones#12.10.16.00.00
+unspsc7#12.10.16.22.00#Rennet tablets#12.10.16.00.00
+unspsc7#12.10.16.23.00#Enzymes#12.10.16.00.00
+unspsc7#12.10.17.00.00#Monocarboxylic fatty acids or industrial acid oils from refining#12.10.00.00.00
+unspsc7#12.10.17.01.00#Oleic acid#12.10.17.00.00
+unspsc7#12.10.17.02.00#Industrial fatty alcohols#12.10.17.00.00
+unspsc7#12.10.17.03.00#Stearic acid#12.10.17.00.00
+unspsc7#12.10.17.04.00#Tall oil fatty acids#12.10.17.00.00
+unspsc7#12.10.17.05.00#Acid oils from refining#12.10.17.00.00
+unspsc7#12.10.18.00.00#Carboxylic acids and their anhydrides and halides and peroxides and peroxyacids#12.10.00.00.00
+unspsc7#12.10.18.01.00#Formic acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.02.00#Acetic acid or its salts or acetic anhydride#12.10.18.00.00
+unspsc7#12.10.18.03.00#Esters of acetic acid#12.10.18.00.00
+unspsc7#12.10.18.04.00#Mono or di trichloracetic acid or their salts or esters#12.10.18.00.00
+unspsc7#12.10.18.05.00#Propionic acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.06.00#Butyric acids or valeric acids or their salts or esters#12.10.18.00.00
+unspsc7#12.10.18.07.00#Palmitic acids or stearic acids or their salts or esters#12.10.18.00.00
+unspsc7#12.10.18.08.00#Saturated acrylic monocarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.09.00#Unsaturated acyclic monocarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.10.00#Cyclonic or cyclenic or cycloterpenic monocarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.11.00#Aromatic monocarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.12.00#Acyclic polycarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.13.00#Cyclonic or cyclenic or cycloterpenic polycarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.14.00#Aromatic polycarboxylic acids#12.10.18.00.00
+unspsc7#12.10.18.15.00#Lactic acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.16.00#Tartaric acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.17.00#Atric acid or ts salts or esters#12.10.18.00.00
+unspsc7#12.10.18.18.00#Glucaric acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.19.00#Phenylglyocolic acid or mandelic acid or its salts or esters#12.10.18.00.00
+unspsc7#12.10.18.20.00#Carboxylic acids with alcohol function but without other oxygen function#12.10.18.00.00
+unspsc7#12.10.18.21.00#Carboxylic acids with phenol function but without other oxygen function#12.10.18.00.00
+unspsc7#12.10.18.22.00#Carboxylic acids with aldehyde or ketone function#12.10.18.00.00
+unspsc7#12.10.19.00.00#Amine and oxygen function amino compounds and ureines#12.10.00.00.00
+unspsc7#12.10.19.01.00#Glutamic acid or its salts#12.10.19.00.00
+unspsc7#12.10.20.00.00#Organo sulfur compounds and other organo inorganic compounds#12.10.00.00.00
+unspsc7#12.10.20.01.00#Organo sulfur compounds#12.10.20.00.00
+unspsc7#12.10.20.02.00#Other organo inorganic compounds#12.10.20.00.00
+unspsc7#12.10.20.03.00#Compounds containing an unfused furan ring in the structure#12.10.20.00.00
+unspsc7#12.10.20.04.00#Lactines#12.10.20.00.00
+unspsc7#12.10.20.05.00#Compounds containing an unfused imidazole ring in the structure#12.10.20.00.00
+unspsc7#12.10.20.06.00#Compounds containing an unfused pyridine ring in the structure#12.10.20.00.00
+unspsc7#12.10.20.07.00#Compounds containing a quinoline or isoquinoline ring system#12.10.20.00.00
+unspsc7#12.10.20.08.00#Lactams#12.10.20.00.00
+unspsc7#12.10.20.09.00#Heterocyclic compounds with nitrogen hetero atom only#12.10.20.00.00
+unspsc7#12.10.20.10.00#Compounds containing an unfused thiazole ring in the structure#12.10.20.00.00
+unspsc7#12.10.21.00.00#Hydrocarbons and their halogenated and sulphonated and nitrosated derivatives#12.10.00.00.00
+unspsc7#12.10.21.01.00#Saturated acyclic hydrocarbons#12.10.21.00.00
+unspsc7#12.10.21.02.00#Unsaturated acyclic hydrocarbons#12.10.21.00.00
+unspsc7#12.10.21.03.00#Cyclic hydrocarbons#12.10.21.00.00
+unspsc7#12.10.21.04.00#Halogentated derivatives of hydrocarbons#12.10.21.00.00
+unspsc7#12.10.21.05.00#Refrigerants#12.10.21.00.00
+unspsc7#12.10.21.06.00#Sulphonated or nitrated or nitrosated derivatives of hydrocarbons#12.10.21.00.00
+unspsc7#12.10.21.07.00#Paraffin#12.10.21.00.00
+unspsc7#12.10.22.00.00#Phosphoric esters and their salts and esters of other organic acids#12.10.00.00.00
+unspsc7#12.10.22.01.00#Phosphoric esters or their salts#12.10.22.00.00
+unspsc7#12.11.00.00.00#Inorganic chemicals#12.00.00.00.00
+unspsc7#12.11.16.00.00#Chemical elements#12.11.00.00.00
+unspsc7#12.11.16.01.00#Chlorine#12.11.16.00.00
+unspsc7#12.11.16.02.00#Fluorine or bromine#12.11.16.00.00
+unspsc7#12.11.16.03.00#Chlorine liquid gas#12.11.16.00.00
+unspsc7#12.11.16.04.00#Sublimes or precipitated sulphur or colloidal sulphur#12.11.16.00.00
+unspsc7#12.11.16.05.00#Boron or tellurium#12.11.16.00.00
+unspsc7#12.11.16.06.00#Silicon#12.11.16.00.00
+unspsc7#12.11.16.07.00#Alkali metals#12.11.16.00.00
+unspsc7#12.11.16.08.00#Alkaline earth metals#12.11.16.00.00
+unspsc7#12.11.16.09.00#Mercury#12.11.16.00.00
+unspsc7#12.11.16.10.00#Hydrogen chloride or hydrochloric acid#12.11.16.00.00
+unspsc7#12.11.16.11.00#Chlorosulfuric acid#12.11.16.00.00
+unspsc7#12.11.16.12.00#Sulphuric acid#12.11.16.00.00
+unspsc7#12.11.16.13.00#Phosphorus pentaoxide or phosphoric acid or polyphosphoric acids#12.11.16.00.00
+unspsc7#12.11.16.14.00#Oxides of boron or boric acids#12.11.16.00.00
+unspsc7#12.11.16.15.00#Hydrogen fluoride or hydrofluoric acid#12.11.16.00.00
+unspsc7#12.11.16.16.00#Silicon dioxide#12.11.16.00.00
+unspsc7#12.11.16.17.00#Sulphur dioxide#12.11.16.00.00
+unspsc7#12.11.16.18.00#Hydrocyanic acid#12.11.16.00.00
+unspsc7#12.11.16.19.00#Halides or halide oxides of non metals#12.11.16.00.00
+unspsc7#12.11.16.20.00#Sulphides of non metals#12.11.16.00.00
+unspsc7#12.11.16.21.00#Sodium or potassium hydroxide#12.11.16.00.00
+unspsc7#12.11.16.22.00#Hydroxide or peroxide of magnesium or oxides#12.11.16.00.00
+unspsc7#12.11.16.23.00#Aluminum hydroxide#12.11.16.00.00
+unspsc7#12.11.16.24.00#Hydroxide or hydroxylamine or their inorganic salts#12.11.16.00.00
+unspsc7#12.11.17.00.00#Metal oxides and hydroxides and peroxides#12.11.00.00.00
+unspsc7#12.11.17.01.00#Zinc oxide or zinc peroxide#12.11.17.00.00
+unspsc7#12.11.17.02.00#Chromium oxides or hydroxides#12.11.17.00.00
+unspsc7#12.11.17.03.00#Manganese oxides#12.11.17.00.00
+unspsc7#12.11.17.04.00#Iron oxides or hydroxides or earth colours#12.11.17.00.00
+unspsc7#12.11.17.05.00#Cobalt oxides or hydroxides or commercial cobalt oxides#12.11.17.00.00
+unspsc7#12.11.17.06.00#Titanium oxides#12.11.17.00.00
+unspsc7#12.11.17.07.00#Lead oxides or red lead or orange lead#12.11.17.00.00
+unspsc7#12.11.17.08.00#Lithium oxide or hydroxide#12.11.17.00.00
+unspsc7#12.11.17.09.00#Vanadium oxides or hydroxides#12.11.17.00.00
+unspsc7#12.11.17.10.00#Nickel oxides or hydroxides#12.11.17.00.00
+unspsc7#12.11.17.11.00#Copper oxides or hydroxides#12.11.17.00.00
+unspsc7#12.11.17.12.00#Germanium oxides or zirconium dioxide#12.11.17.00.00
+unspsc7#12.11.17.13.00#Molybdenum oxides or hydroxides#12.11.17.00.00
+unspsc7#12.11.17.14.00#Antimony oxides#12.11.17.00.00
+unspsc7#12.11.18.00.00#Salts of oxometallic and peroxometallic acids and other inorganic acids#12.11.00.00.00
+unspsc7#12.11.18.01.00#Aluminates#12.11.18.00.00
+unspsc7#12.11.18.02.00#Zinc or lead chromate#12.11.18.00.00
+unspsc7#12.11.18.03.00#Sodium dichromate#12.11.18.00.00
+unspsc7#12.11.18.04.00#Potassium dichromate#12.11.18.00.00
+unspsc7#12.11.18.05.00#Other chromate or dichromate or peroxochromates#12.11.18.00.00
+unspsc7#12.11.18.06.00#Manganites or manganates or permanganates#12.11.18.00.00
+unspsc7#12.11.18.07.00#Molybdates#12.11.18.00.00
+unspsc7#12.11.18.08.00#Tungstates or wolframates#12.11.18.00.00
+unspsc7#12.11.18.09.00#Silver compounds#12.11.18.00.00
+unspsc7#12.11.18.10.00#Gold compounds#12.11.18.00.00
+unspsc7#12.11.18.11.00#Other compounds or amalgams#12.11.18.00.00
+unspsc7#12.11.18.12.00#Amalgams other than amalgams of precious metals#12.11.18.00.00
+unspsc7#12.11.19.00.00#Salts and peroxysalts of inorganic acids and metal#12.11.00.00.00
+unspsc7#12.11.19.01.00#Fluorides or fluorosilicates or fluoroaluminates#12.11.19.00.00
+unspsc7#12.11.19.02.00#Chlorides#12.11.19.00.00
+unspsc7#12.11.19.03.00#Sodium chloride#12.11.19.00.00
+unspsc7#12.11.19.04.00#Sal ammoniac blocks#12.11.19.00.00
+unspsc7#12.11.19.05.00#Potassium iodinate#12.11.19.00.00
+unspsc7#12.11.19.06.00#Sulphides or polysulfides or dithionites or sulfoxylates#12.11.19.00.00
+unspsc7#12.11.19.07.00#Sulphites or thiosulfates#12.11.19.00.00
+unspsc7#12.11.19.08.00#Aluminum sulphate#12.11.19.00.00
+unspsc7#12.11.19.09.00#Colloidal precious metals#12.11.19.00.00
+unspsc7#12.11.19.10.00#Ferrous sulphate#12.11.19.00.00
+unspsc7#12.11.19.11.00#Silver nitrate#12.11.19.00.00
+unspsc7#12.11.19.12.00#Sodium dihydrogernorthophosphate#12.11.19.00.00
+unspsc7#12.11.19.13.00#Sodium phosphate dibasic#12.11.19.00.00
+unspsc7#12.11.19.14.00#Sodium bicarbonate#12.11.19.00.00
+unspsc7#12.11.19.15.00#Tri sodium citrate di hydrate#12.11.19.00.00
+unspsc7#12.11.19.16.00#Sodium carbonate#12.11.19.00.00
+unspsc7#12.11.19.17.00#Metallic sodium#12.11.19.00.00
+unspsc7#12.11.19.18.00#Sodium silicate liquids#12.11.19.00.00
+unspsc7#12.11.19.19.00#Sodium silicate binders#12.11.19.00.00
+unspsc7#12.11.20.00.00#Hydrogen peroxide and hydrides and nitrides and asides and silicides and borides#12.11.00.00.00
+unspsc7#12.11.20.01.00#Hydrogen peroxide#12.11.20.00.00
+unspsc7#12.11.20.02.00#Phosphides#12.11.20.00.00
+unspsc7#12.11.20.03.00#Carbides#12.11.20.00.00
+unspsc7#12.11.20.04.00#Calcium carbide#12.11.20.00.00
+unspsc7#12.11.20.05.00#Bromides#12.11.20.00.00
+unspsc7#12.11.21.00.00#Isotopes and their compounds inorganic and organic#12.11.00.00.00
+unspsc7#12.11.21.01.00#Deuterium#12.11.21.00.00
+unspsc7#12.11.21.02.00#Deuterated solvents#12.11.21.00.00
+unspsc7#12.11.21.03.00#Heavy water#12.11.21.00.00
+unspsc7#12.11.21.04.00#Alpha sources#12.11.21.00.00
+unspsc7#12.11.21.05.00#Beta sources#12.11.21.00.00
+unspsc7#12.11.21.06.00#Cobalt sources#12.11.21.00.00
+unspsc7#12.11.21.07.00#Gamma sources#12.11.21.00.00
+unspsc7#12.11.21.08.00#Neutron sources#12.11.21.00.00
+unspsc7#12.11.21.09.00#Radioisotope sources#12.11.21.00.00
+unspsc7#12.11.21.10.00#Calibration sources#12.11.21.00.00
+unspsc7#12.11.21.11.00#In vivo products#12.11.21.00.00
+unspsc7#12.11.21.12.00#Radiochemical isotopes#12.11.21.00.00
+unspsc7#12.11.21.13.00#Radiographic source#12.11.21.00.00
+unspsc7#12.11.21.14.00#Radioimmunoassay isotopes#12.11.21.00.00
+unspsc7#12.11.21.15.00#Tritium targets#12.11.21.00.00
+unspsc7#12.11.21.16.00#Excitation source or annular#12.11.21.00.00
+unspsc7#12.11.21.17.00#Radiopharmaceutical compounds for labelling#12.11.21.00.00
+unspsc7#12.11.21.18.00#Chemicals labelled C14#12.11.21.00.00
+unspsc7#12.11.21.19.00#Fissionable isotopes#12.11.21.00.00
+unspsc7#12.11.21.20.00#In vivo radioactive isotope products#12.11.21.00.00
+unspsc7#12.11.22.00.00#Cyanides#12.11.00.00.00
+unspsc7#12.11.22.01.00#Cyanides or cyanide oxides of sodium#12.11.22.00.00
+unspsc7#12.11.22.02.00#Complex cyanides or thiocyanates#12.11.22.00.00
+unspsc7#12.11.22.03.00#Cyanides or cyanide oxides#12.11.22.00.00
+unspsc7#12.12.00.00.00#Gases#12.00.00.00.00
+unspsc7#12.12.15.00.00#Industrial gases#12.12.00.00.00
+unspsc7#12.12.15.01.00#Nitrous oxide gas#12.12.15.00.00
+unspsc7#12.12.15.02.00#Helium gas#12.12.15.00.00
+unspsc7#12.12.15.04.00#Carbon monoxide#12.12.15.00.00
+unspsc7#12.12.15.05.00#Hydrogen gas#12.12.15.00.00
+unspsc7#12.12.15.06.00#Carbon dioxide#12.12.15.00.00
+unspsc7#12.12.15.07.00#Nitrogen gas#12.12.15.00.00
+unspsc7#12.12.15.08.00#Neon gas#12.12.15.00.00
+unspsc7#12.12.15.10.00#Oxygen#12.12.15.00.00
+unspsc7#12.12.16.00.00#Rare gases#12.12.00.00.00
+unspsc7#12.12.16.01.00#Xenon gas#12.12.16.00.00
+unspsc7#12.12.16.02.00#Radon gas#12.12.16.00.00
+unspsc7#12.12.16.03.00#Krypton gas#12.12.16.00.00
+unspsc7#12.12.16.04.00#Argon gas#12.12.16.00.00
+unspsc7#12.12.16.09.00#Xenon gas#12.12.16.00.00
+unspsc7#12.12.16.10.00#Radon gas#12.12.16.00.00
+unspsc7#12.12.16.11.00#Krypton gas#12.12.16.00.00
+unspsc7#12.12.16.12.00#Argon gas#12.12.16.00.00
+unspsc7#12.13.00.00.00#Explosive materials#12.00.00.00.00
+unspsc7#12.13.15.00.00#Explosives#12.13.00.00.00
+unspsc7#12.13.15.01.00#Dynamite#12.13.15.00.00
+unspsc7#12.13.15.02.00#Explosive cartridges#12.13.15.00.00
+unspsc7#12.13.15.03.00#Propellant explosives#12.13.15.00.00
+unspsc7#12.13.15.04.00#Explosive charges#12.13.15.00.00
+unspsc7#12.13.15.05.00#Plastic explosives#12.13.15.00.00
+unspsc7#12.13.15.06.00#Aluminized explosives#12.13.15.00.00
+unspsc7#12.13.15.07.00#Ammonium nitrate explosives#12.13.15.00.00
+unspsc7#12.13.15.08.00#Nitroglycerin powder explosives#12.13.15.00.00
+unspsc7#12.13.16.00.00#Pyrotechnics#12.13.00.00.00
+unspsc7#12.13.16.01.00#Fireworks#12.13.16.00.00
+unspsc7#12.13.16.02.00#Fog signals#12.13.16.00.00
+unspsc7#12.13.16.03.00#Rain rockets#12.13.16.00.00
+unspsc7#12.13.16.04.00#Flares#12.13.16.00.00
+unspsc7#12.13.16.05.00#Pyrotechnic materials for theater or television#12.13.16.00.00
+unspsc7#12.13.17.00.00#Igniters#12.13.00.00.00
+unspsc7#12.13.17.01.00#Blasting caps#12.13.17.00.00
+unspsc7#12.13.17.02.00#Detonators#12.13.17.00.00
+unspsc7#12.13.17.03.00#Explosives fuses#12.13.17.00.00
+unspsc7#12.13.17.04.00#Explosive initiators#12.13.17.00.00
+unspsc7#12.13.17.05.00#Explosive primers#12.13.17.00.00
+unspsc7#12.13.17.06.00#Matches#12.13.17.00.00
+unspsc7#12.13.17.07.00#Lighters#12.13.17.00.00
+unspsc7#12.13.18.00.00#Propellants#12.13.00.00.00
+unspsc7#12.13.18.01.00#Powder propellants#12.13.18.00.00
+unspsc7#12.13.18.02.00#Solid propellants#12.13.18.00.00
+unspsc7#12.13.18.03.00#Gun propellants#12.13.18.00.00
+unspsc7#12.13.18.04.00#High energy propellants#12.13.18.00.00
+unspsc7#12.13.18.05.00#Gelled propellants#12.13.18.00.00
+unspsc7#12.13.18.06.00#Hybrid propellants#12.13.18.00.00
+unspsc7#12.14.00.00.00#Elements and gases#12.00.00.00.00
+unspsc7#12.14.15.00.00#Earth metals#12.14.00.00.00
+unspsc7#12.14.15.01.00#Beryllium (Be)#12.14.15.00.00
+unspsc7#12.14.15.02.00#Magnesium (Mg)#12.14.15.00.00
+unspsc7#12.14.15.03.00#Calcium (Ca)#12.14.15.00.00
+unspsc7#12.14.15.04.00#Strontium (Sr)#12.14.15.00.00
+unspsc7#12.14.15.05.00#Barium (Ba)#12.14.15.00.00
+unspsc7#12.14.15.06.00#Radium (Ra)#12.14.15.00.00
+unspsc7#12.14.16.00.00#Rare earth metals#12.14.00.00.00
+unspsc7#12.14.16.01.00#Cerium (Ce)#12.14.16.00.00
+unspsc7#12.14.16.02.00#Dysprosium (Dy)#12.14.16.00.00
+unspsc7#12.14.16.03.00#Erbium (Er)#12.14.16.00.00
+unspsc7#12.14.16.04.00#Europium (Eu)#12.14.16.00.00
+unspsc7#12.14.16.05.00#Gadolinium (Gd)#12.14.16.00.00
+unspsc7#12.14.16.06.00#Holmium (Ho)#12.14.16.00.00
+unspsc7#12.14.16.07.00#Lanthanum (La)#12.14.16.00.00
+unspsc7#12.14.16.08.00#Lutetium (Lu)#12.14.16.00.00
+unspsc7#12.14.16.09.00#Neodymium (Nd)#12.14.16.00.00
+unspsc7#12.14.16.10.00#Praseodymium (Pr)#12.14.16.00.00
+unspsc7#12.14.16.11.00#Promethium (Pr)#12.14.16.00.00
+unspsc7#12.14.16.12.00#Samarium (Sm)#12.14.16.00.00
+unspsc7#12.14.16.13.00#Scandium (Sc)#12.14.16.00.00
+unspsc7#12.14.16.14.00#Terbium (Tb)#12.14.16.00.00
+unspsc7#12.14.16.15.00#Thulium (Tm)#12.14.16.00.00
+unspsc7#12.14.16.16.00#Ytterbium (Yb)#12.14.16.00.00
+unspsc7#12.14.16.17.00#Yttrium (Y)#12.14.16.00.00
+unspsc7#12.14.17.00.00#Transition metals#12.14.00.00.00
+unspsc7#12.14.17.01.00#Actinium (Ac)#12.14.17.00.00
+unspsc7#12.14.17.02.00#Aluminum (Al)#12.14.17.00.00
+unspsc7#12.14.17.03.00#Americium (Am)#12.14.17.00.00
+unspsc7#12.14.17.04.00#Antimony (Sb)#12.14.17.00.00
+unspsc7#12.14.17.05.00#Berkelium (Bk)#12.14.17.00.00
+unspsc7#12.14.17.06.00#Bismuth (Bi)#12.14.17.00.00
+unspsc7#12.14.17.07.00#Cadmium (Ca)#12.14.17.00.00
+unspsc7#12.14.17.08.00#Californium (Cf)#12.14.17.00.00
+unspsc7#12.14.17.09.00#Chromium (Cr)#12.14.17.00.00
+unspsc7#12.14.17.10.00#Cobalt (Co)#12.14.17.00.00
+unspsc7#12.14.17.11.00#Copper (Cu)#12.14.17.00.00
+unspsc7#12.14.17.12.00#Curium (Cm)#12.14.17.00.00
+unspsc7#12.14.17.13.00#Einsteinium (Es)#12.14.17.00.00
+unspsc7#12.14.17.14.00#Fermium (Fm)#12.14.17.00.00
+unspsc7#12.14.17.15.00#Gallium (Ga)#12.14.17.00.00
+unspsc7#12.14.17.16.00#Germanium (Ge)#12.14.17.00.00
+unspsc7#12.14.17.17.00#Gold (Au)#12.14.17.00.00
+unspsc7#12.14.17.18.00#Hafnium (Hf)#12.14.17.00.00
+unspsc7#12.14.17.19.00#Indium (In)#12.14.17.00.00
+unspsc7#12.14.17.20.00#Iridium (Ir)#12.14.17.00.00
+unspsc7#12.14.17.21.00#Iron (Fe)#12.14.17.00.00
+unspsc7#12.14.17.22.00#Lawrencium (Lr)#12.14.17.00.00
+unspsc7#12.14.17.23.00#Lead (Pb)#12.14.17.00.00
+unspsc7#12.14.17.24.00#Manganese (Mn)#12.14.17.00.00
+unspsc7#12.14.17.25.00#Mendelevium (Md)#12.14.17.00.00
+unspsc7#12.14.17.26.00#Mercury (Hg)#12.14.17.00.00
+unspsc7#12.14.17.27.00#Molybdenum (Mo)#12.14.17.00.00
+unspsc7#12.14.17.28.00#Neptunium (Np)#12.14.17.00.00
+unspsc7#12.14.17.29.00#Nickel (Ni)#12.14.17.00.00
+unspsc7#12.14.17.30.00#Niobium (Nb)#12.14.17.00.00
+unspsc7#12.14.17.31.00#Nobelium (No)#12.14.17.00.00
+unspsc7#12.14.17.32.00#Osmium (Os)#12.14.17.00.00
+unspsc7#12.14.17.33.00#Palladium (Pd)#12.14.17.00.00
+unspsc7#12.14.17.34.00#Platinum (Pt)#12.14.17.00.00
+unspsc7#12.14.17.35.00#Plutonium (Pu)#12.14.17.00.00
+unspsc7#12.14.17.36.00#Protactinium (Pa)#12.14.17.00.00
+unspsc7#12.14.17.37.00#Rhenium (Re)#12.14.17.00.00
+unspsc7#12.14.17.38.00#Rhodium (Rh)#12.14.17.00.00
+unspsc7#12.14.17.39.00#Ruthenium (Ru)#12.14.17.00.00
+unspsc7#12.14.17.40.00#Silver (Ag)#12.14.17.00.00
+unspsc7#12.14.17.41.00#Tantalum (Ta)#12.14.17.00.00
+unspsc7#12.14.17.42.00#Technetium (Te)#12.14.17.00.00
+unspsc7#12.14.17.43.00#Thallium (Tl)#12.14.17.00.00
+unspsc7#12.14.17.44.00#Thorium (Th)#12.14.17.00.00
+unspsc7#12.14.17.45.00#Tin (Sn)#12.14.17.00.00
+unspsc7#12.14.17.46.00#Titanium (Ti)#12.14.17.00.00
+unspsc7#12.14.17.47.00#Tungsten (W)#12.14.17.00.00
+unspsc7#12.14.17.48.00#Uranium (U)#12.14.17.00.00
+unspsc7#12.14.17.49.00#Vanadium (V)#12.14.17.00.00
+unspsc7#12.14.17.50.00#Zinc (Zn)#12.14.17.00.00
+unspsc7#12.14.17.51.00#Zirconium (Zr)#12.14.17.00.00
+unspsc7#12.14.17.52.00#Bohrium (Bh)#12.14.17.00.00
+unspsc7#12.14.17.53.00#Dubnium (Db)#12.14.17.00.00
+unspsc7#12.14.17.54.00#Hassium (Hs)#12.14.17.00.00
+unspsc7#12.14.17.55.00#Rutherfordium (Rf)#12.14.17.00.00
+unspsc7#12.14.17.56.00#Seaborgium (Sg)#12.14.17.00.00
+unspsc7#12.14.17.57.00#Ununnilium (Uum)#12.14.17.00.00
+unspsc7#12.14.17.58.00#Unununium (Uuu)#12.14.17.00.00
+unspsc7#12.14.17.59.00#Ununbium (Uub)#12.14.17.00.00
+unspsc7#12.14.17.60.00#Polonium ((Po)#12.14.17.00.00
+unspsc7#12.14.18.00.00#Alkali metals#12.14.00.00.00
+unspsc7#12.14.18.01.00#Cesium (Cs)#12.14.18.00.00
+unspsc7#12.14.18.02.00#Francium (Fm)#12.14.18.00.00
+unspsc7#12.14.18.03.00#Lithium (Li)#12.14.18.00.00
+unspsc7#12.14.18.04.00#Potassium (K)#12.14.18.00.00
+unspsc7#12.14.18.05.00#Rubidium (Rb)#12.14.18.00.00
+unspsc7#12.14.18.06.00#Sodium (Na)#12.14.18.00.00
+unspsc7#12.14.19.00.00#Non metals and pure and elemental gases#12.14.00.00.00
+unspsc7#12.14.19.01.00#Chlorine (Cl)#12.14.19.00.00
+unspsc7#12.14.19.02.00#Hydrogen (H)#12.14.19.00.00
+unspsc7#12.14.19.03.00#Nitrogen (N)#12.14.19.00.00
+unspsc7#12.14.19.04.00#Oxygen (O)#12.14.19.00.00
+unspsc7#12.14.19.05.00#Fluorine (F)#12.14.19.00.00
+unspsc7#12.14.19.06.00#Arsenic (As)#12.14.19.00.00
+unspsc7#12.14.19.07.00#Boron (Bh)#12.14.19.00.00
+unspsc7#12.14.19.08.00#Carbon (C)#12.14.19.00.00
+unspsc7#12.14.19.09.00#Phosphorus (P)#12.14.19.00.00
+unspsc7#12.14.19.10.00#Selenium (Se)#12.14.19.00.00
+unspsc7#12.14.19.11.00#Silicon (Si)#12.14.19.00.00
+unspsc7#12.14.19.12.00#Sulfur (S)#12.14.19.00.00
+unspsc7#12.14.19.13.00#Tellurium (Te)#12.14.19.00.00
+unspsc7#12.14.19.14.00#Astatine (At)#12.14.19.00.00
+unspsc7#12.14.19.15.00#Bromine Br#12.14.19.00.00
+unspsc7#12.14.19.16.00#Iodine (I)#12.14.19.00.00
+unspsc7#12.14.20.00.00#Noble gases#12.14.00.00.00
+unspsc7#12.14.20.01.00#Xenon gas (Xe)#12.14.20.00.00
+unspsc7#12.14.20.02.00#Radon gas (Rn)#12.14.20.00.00
+unspsc7#12.14.20.03.00#Krypton gas (Kr)#12.14.20.00.00
+unspsc7#12.14.20.04.00#Argon gas (Ar)#12.14.20.00.00
+unspsc7#12.14.20.05.00#Helium gas (He)#12.14.20.00.00
+unspsc7#12.14.20.06.00#Neon gas (Ne)#12.14.20.00.00
+unspsc7#12.14.21.00.00#Industrial use gases#12.14.00.00.00
+unspsc7#12.14.21.01.00#Hydrogen compound gases#12.14.21.00.00
+unspsc7#12.14.21.02.00#Chlorinated mixed gases#12.14.21.00.00
+unspsc7#12.14.21.03.00#Ammonia#12.14.21.00.00
+unspsc7#12.14.21.04.00#Carbon dioxide gas (CO2)#12.14.21.00.00
+unspsc7#12.14.21.05.00#Industrial air#12.14.21.00.00
+unspsc7#12.14.21.06.00#Inert gas mixtures#12.14.21.00.00
+unspsc7#12.15.00.00.00#Acids and their salts and esters#12.00.00.00.00
+unspsc7#12.15.15.00.00#Carboxylic acids and their salts and esters#12.15.00.00.00
+unspsc7#12.15.15.01.00#Acetic acid or its salts#12.15.15.00.00
+unspsc7#12.15.15.02.00#Acyclic acids#12.15.15.00.00
+unspsc7#12.15.15.03.00#Aldehydic acids#12.15.15.00.00
+unspsc7#12.15.15.04.00#Butyric acids#12.15.15.00.00
+unspsc7#12.15.15.05.00#Carbocylic acids#12.15.15.00.00
+unspsc7#12.15.15.06.00#Hydroxy acids#12.15.15.00.00
+unspsc7#12.15.15.07.00#Keto acids#12.15.15.00.00
+unspsc7#12.15.15.08.00#Propionic acids#12.15.15.00.00
+unspsc7#12.15.15.09.00#Acrylic acid esters#12.15.15.00.00
+unspsc7#12.15.15.10.00#Esters of methacrylic acid#12.15.15.00.00
+unspsc7#12.15.16.00.00#Heterocyclic acids and their salts and esters#12.15.00.00.00
+unspsc7#12.15.16.01.00#Indoleacetic acids#12.15.16.00.00
+unspsc7#12.15.16.02.00#Isonicotinic acids#12.15.16.00.00
+unspsc7#12.15.16.03.00#Isonipecotic acids#12.15.16.00.00
+unspsc7#12.15.16.04.00#Nicotinic acids#12.15.16.00.00
+unspsc7#12.15.16.05.00#Nipecotic acids#12.15.16.00.00
+unspsc7#12.15.16.06.00#Orotic acids#12.15.16.00.00
+unspsc7#12.15.16.07.00#Picolinic acids#12.15.16.00.00
+unspsc7#12.15.16.08.00#Pipecolic acids#12.15.16.00.00
+unspsc7#12.15.17.00.00#Fatty acids and their salts and esters#12.15.00.00.00
+unspsc7#12.15.17.01.00#Decanoic acids#12.15.17.00.00
+unspsc7#12.15.17.02.00#Unsaturated fatty acids#12.15.17.00.00
+unspsc7#12.15.17.03.00#Volatile fatty acids#12.15.17.00.00
+unspsc7#12.15.17.04.00#Heptanoic acids#12.15.17.00.00
+unspsc7#12.15.17.05.00#Lauric acids#12.15.17.00.00
+unspsc7#12.15.17.06.00#Mycolic acids#12.15.17.00.00
+unspsc7#12.15.17.07.00#Myristic acids#12.15.17.00.00
+unspsc7#12.15.17.08.00#Palmitic acids#12.15.17.00.00
+unspsc7#12.15.17.09.00#Stearic acids#12.15.17.00.00
+unspsc7#12.15.18.00.00#Non carboxylic acids and their salts#12.15.00.00.00
+unspsc7#12.15.18.01.00#Carbonic acids#12.15.18.00.00
+unspsc7#12.15.18.02.00#Nitric acids#12.15.18.00.00
+unspsc7#12.15.18.03.00#Phosphorous acids#12.15.18.00.00
+unspsc7#12.15.18.04.00#Sulfur acids#12.15.18.00.00
+unspsc7#12.15.18.05.00#Chlorides#12.15.18.00.00
+unspsc7#12.15.18.06.00#Hydrochlorides#12.15.18.00.00
+unspsc7#12.15.18.07.00#Nitrates or nitrites#12.15.18.00.00
+unspsc7#12.15.18.08.00#Silicates#12.15.18.00.00
+unspsc7#12.15.18.09.00#Phosphates or phosphides#12.15.18.00.00
+unspsc7#12.15.18.10.00#Bicarbonates or carbides or carbonates#12.15.18.00.00
+unspsc7#12.15.18.11.00#Fluorides#12.15.18.00.00
+unspsc7#12.15.18.12.00#Bromides or bromates#12.15.18.00.00
+unspsc7#12.15.18.13.00#Iodides or iodates#12.15.18.00.00
+unspsc7#12.15.19.00.00#Inorganic sulfur compounds#12.15.00.00.00
+unspsc7#12.15.19.01.00#Hydrogen sulfide#12.15.19.00.00
+unspsc7#12.15.19.02.00#Sulfuric Acid#12.15.19.00.00
+unspsc7#12.15.19.03.00#Sodium sulfate#12.15.19.00.00
+unspsc7#12.16.00.00.00#Additives#12.00.00.00.00
+unspsc7#12.16.15.00.00#Indicators and Reagents#12.16.00.00.00
+unspsc7#12.16.15.01.00#Affinity labels#12.16.15.00.00
+unspsc7#12.16.15.02.00#Cross linking agents#12.16.15.00.00
+unspsc7#12.16.15.03.00#Reagent kits#12.16.15.00.00
+unspsc7#12.16.15.04.00#Sulfhydryl reagents#12.16.15.00.00
+unspsc7#12.16.15.05.00#Intercalating agents#12.16.15.00.00
+unspsc7#12.16.15.06.00#Diverting agents#12.16.15.00.00
+unspsc7#12.16.16.00.00#Catalysts#12.16.00.00.00
+unspsc7#12.16.16.01.00#Acid catalysts#12.16.16.00.00
+unspsc7#12.16.16.02.00#Combustion catalysts#12.16.16.00.00
+unspsc7#12.16.16.03.00#Custom catalysts#12.16.16.00.00
+unspsc7#12.16.16.04.00#Cracking catalysts#12.16.16.00.00
+unspsc7#12.16.17.00.00#Buffers#12.16.00.00.00
+unspsc7#12.16.17.01.00#Ampholyte mixtures#12.16.17.00.00
+unspsc7#12.16.17.02.00#Bicarbonate buffers#12.16.17.00.00
+unspsc7#12.16.17.03.00#Other buffers#12.16.17.00.00
+unspsc7#12.16.17.04.00#Acid buffers#12.16.17.00.00
+unspsc7#12.16.17.05.00#Basic buffers#12.16.17.00.00
+unspsc7#12.16.17.06.00#Neutral buffers#12.16.17.00.00
+unspsc7#12.16.18.00.00#Colloids#12.16.00.00.00
+unspsc7#12.16.18.01.00#Gels#12.16.18.00.00
+unspsc7#12.16.18.02.00#Suspensions#12.16.18.00.00
+unspsc7#12.16.18.03.00#Aerosols#12.16.18.00.00
+unspsc7#12.16.18.04.00#Emulsions#12.16.18.00.00
+unspsc7#12.16.18.05.00#Natural gelling agents#12.16.18.00.00
+unspsc7#12.16.18.06.00#Synthetic gelling agents#12.16.18.00.00
+unspsc7#12.16.18.07.00#Gel stabilizers#12.16.18.00.00
+unspsc7#12.16.18.08.00#Suspending agents#12.16.18.00.00
+unspsc7#12.16.19.00.00#Surfactants#12.16.00.00.00
+unspsc7#12.16.19.01.00#Anti foaming agents#12.16.19.00.00
+unspsc7#12.16.19.02.00#Detergent surfactants#12.16.19.00.00
+unspsc7#12.16.19.03.00#Foaming agents#12.16.19.00.00
+unspsc7#12.16.19.04.00#Dispersing agents#12.16.19.00.00
+unspsc7#12.16.19.05.00#Flushes#12.16.19.00.00
+unspsc7#12.16.19.06.00#Wetting agents#12.16.19.00.00
+unspsc7#12.16.19.07.00#Water flood additives#12.16.19.00.00
+unspsc7#12.16.20.00.00#Plasticizers#12.16.00.00.00
+unspsc7#12.16.20.01.00#Phthalates#12.16.20.00.00
+unspsc7#12.16.20.02.00#Polymerics#12.16.20.00.00
+unspsc7#12.16.20.03.00#Agricultural oils#12.16.20.00.00
+unspsc7#12.16.20.04.00#Sulfonamides#12.16.20.00.00
+unspsc7#12.16.20.05.00#Glutarates#12.16.20.00.00
+unspsc7#12.16.21.00.00#Flame retardants#12.16.00.00.00
+unspsc7#12.16.21.01.00#Brominated#12.16.21.00.00
+unspsc7#12.16.22.00.00#Anti oxidants#12.16.00.00.00
+unspsc7#12.16.22.01.00#Ascorbic acid#12.16.22.00.00
+unspsc7#12.16.22.02.00#Beta carotene#12.16.22.00.00
+unspsc7#12.16.22.03.00#Butylated hydroxyanisole#12.16.22.00.00
+unspsc7#12.16.22.04.00#Butylated hydroxytoluene#12.16.22.00.00
+unspsc7#12.16.22.05.00#Calcium citrate#12.16.22.00.00
+unspsc7#12.16.22.06.00#Canthaxanthin#12.16.22.00.00
+unspsc7#12.16.22.07.00#Melatonin#12.16.22.00.00
+unspsc7#12.16.22.08.00#Nordihydroguaiaretic acid#12.16.22.00.00
+unspsc7#12.16.22.09.00#Propyl gallate#12.16.22.00.00
+unspsc7#12.16.22.10.00#Silymarin#12.16.22.00.00
+unspsc7#12.16.22.11.00#Sulfur dioxide#12.16.22.00.00
+unspsc7#12.16.23.00.00#Curing agents#12.16.00.00.00
+unspsc7#12.16.23.01.00#Waterborne curing agents#12.16.23.00.00
+unspsc7#12.16.23.02.00#Cement accelerators#12.16.23.00.00
+unspsc7#12.16.23.03.00#Cement retarders#12.16.23.00.00
+unspsc7#12.16.24.00.00#Polymer breakers#12.16.00.00.00
+unspsc7#12.16.24.01.00#Acidic polymer breakers#12.16.24.00.00
+unspsc7#12.16.24.02.00#Organic polymer breakers#12.16.24.00.00
+unspsc7#12.16.25.00.00#Emulsion breakers#12.16.00.00.00
+unspsc7#12.16.25.01.00#Water in oil emulsion breakers#12.16.25.00.00
+unspsc7#12.16.25.02.00#Oil in water emulsion breakers#12.16.25.00.00
+unspsc7#12.16.25.03.00#Flotation aids#12.16.25.00.00
+unspsc7#12.16.26.00.00#Clay stabilizers#12.16.00.00.00
+unspsc7#12.16.26.01.00#Inorganic clay stabilizers#12.16.26.00.00
+unspsc7#12.16.26.02.00#Organic clay stabilizers#12.16.26.00.00
+unspsc7#12.16.27.00.00#Fluid loss additives#12.16.00.00.00
+unspsc7#12.16.27.01.00#Natural polymer fluid loss additives#12.16.27.00.00
+unspsc7#12.16.27.02.00#Modified polymer fluid loss additives#12.16.27.00.00
+unspsc7#12.16.28.00.00#Friction reducers#12.16.00.00.00
+unspsc7#12.16.28.01.00#Anionic friction reducers#12.16.28.00.00
+unspsc7#12.16.28.02.00#Cationic friction reducers#12.16.28.00.00
+unspsc7#12.16.29.00.00#Paraffin asphaltene control agents#12.16.00.00.00
+unspsc7#12.16.29.01.00#Solvent type paraffin asphaltene control agents#12.16.29.00.00
+unspsc7#12.16.29.02.00#Crystal modified paraffin asphaltene control agents#12.16.29.00.00
+unspsc7#12.16.29.03.00#Dispersant type paraffin asphaltene control agents#12.16.29.00.00
+unspsc7#12.16.30.00.00#Mud removal mixtures#12.16.00.00.00
+unspsc7#12.16.30.01.00#Mud cleanout agents#12.16.30.00.00
+unspsc7#12.16.31.00.00#Anti sludgers#12.16.00.00.00
+unspsc7#12.16.31.01.00#Anti sludge additives#12.16.31.00.00
+unspsc7#12.16.32.00.00#Anti gas migration agents#12.16.00.00.00
+unspsc7#12.16.32.01.00#Anti gas migration additives#12.16.32.00.00
+unspsc7#12.16.33.00.00#Expanding agents#12.16.00.00.00
+unspsc7#12.16.33.01.00#Cement expanding agents#12.16.33.00.00
+unspsc7#12.16.34.00.00#Extenders#12.16.00.00.00
+unspsc7#12.16.34.01.00#Cement extenders#12.16.34.00.00
+unspsc7#12.16.35.00.00#Oil well sealants#12.16.00.00.00
+unspsc7#12.16.35.01.00#Cementing sealants#12.16.35.00.00
+unspsc7#12.16.36.00.00#Corrosion inhibitors#12.16.00.00.00
+unspsc7#12.16.36.01.00#Oil production corrosion inhibitors#12.16.36.00.00
+unspsc7#12.16.36.02.00#Gas production corrosion inhibitors#12.16.36.00.00
+unspsc7#12.16.37.00.00#Gas hydrate controllers#12.16.00.00.00
+unspsc7#12.16.37.01.00#Kinetic hydrate controllers#12.16.37.00.00
+unspsc7#12.16.38.00.00#Scavengers#12.16.00.00.00
+unspsc7#12.16.38.01.00#Hydrogen sulfide scavengers#12.16.38.00.00
+unspsc7#12.16.38.02.00#Oxygen scavengers#12.16.38.00.00
+unspsc7#12.16.39.00.00#Scale controllers#12.16.00.00.00
+unspsc7#12.16.39.01.00#Scale inhibitor#12.16.39.00.00
+unspsc7#12.16.39.02.00#Scale removers and converters#12.16.39.00.00
+unspsc7#12.16.40.00.00#Bactericides#12.16.00.00.00
+unspsc7#12.16.40.01.00#Registered microbiocides#12.16.40.00.00
+unspsc7#12.16.41.00.00#In situ#12.16.00.00.00
+unspsc7#12.16.41.01.00#In situ additives#12.16.41.00.00
+unspsc7#12.16.41.02.00#Acid additives#12.16.41.00.00
+unspsc7#12.16.42.00.00#Retarders#12.16.00.00.00
+unspsc7#12.16.42.01.00#Acid corrosion inhibitors#12.16.42.00.00
+unspsc7#12.16.43.00.00#Iron controllers#12.16.00.00.00
+unspsc7#12.16.43.01.00#Iron control additives#12.16.43.00.00
+unspsc7#12.16.44.00.00#Non emulsifiers#12.16.00.00.00
+unspsc7#12.16.44.01.00#Non emulsifying additives#12.16.44.00.00
+unspsc7#12.17.00.00.00#Colorants#12.00.00.00.00
+unspsc7#12.17.15.00.00#Dyes#12.17.00.00.00
+unspsc7#12.17.15.01.00#Fluorescent dyes#12.17.15.00.00
+unspsc7#12.17.15.02.00#Phthalein dyes#12.17.15.00.00
+unspsc7#12.17.15.03.00#Rosaniline dyes#12.17.15.00.00
+unspsc7#12.17.15.04.00#Food or drug or cosmetic safe (FDC) dyes#12.17.15.00.00
+unspsc7#12.17.15.05.00#Laked#12.17.15.00.00
+unspsc7#12.17.15.06.00#Natural dyes#12.17.15.00.00
+unspsc7#12.17.16.00.00#Pigments#12.17.00.00.00
+unspsc7#12.17.16.01.00#Natural pigments#12.17.16.00.00
+unspsc7#12.17.16.02.00#Inorganic metal oxides#12.17.16.00.00
+unspsc7#12.17.16.03.00#Carbon black#12.17.16.00.00
+unspsc7#12.17.16.04.00#Titanium dioxide#12.17.16.00.00
+unspsc7#12.17.16.05.00#Organic pigments#12.17.16.00.00
+unspsc7#12.17.17.00.00#Color compounds and dispersions#12.17.00.00.00
+unspsc7#12.17.17.01.00#Polymer masterbatches#12.17.17.00.00
+unspsc7#12.17.17.02.00#Pigment dispersions#12.17.17.00.00
+unspsc7#12.17.17.03.00#Inks#12.17.17.00.00
+unspsc7#12.18.00.00.00#Waxes and oils#12.00.00.00.00
+unspsc7#12.18.15.00.00#Waxes#12.18.00.00.00
+unspsc7#12.18.15.01.00#Synthetic waxes#12.18.15.00.00
+unspsc7#12.18.15.02.00#Natural waxes#12.18.15.00.00
+unspsc7#12.18.15.03.00#Paraffins#12.18.15.00.00
+unspsc7#12.18.15.04.00#Petrolatums#12.18.15.00.00
+unspsc7#12.18.16.00.00#Oils#12.18.00.00.00
+unspsc7#12.18.16.01.00#Synthetic oils#12.18.16.00.00
+unspsc7#12.18.16.02.00#Natural oils#12.18.16.00.00
+unspsc7#12.19.00.00.00#Solvents#12.00.00.00.00
+unspsc7#12.19.15.00.00#Hydrocarbonated solvents#12.19.00.00.00
+unspsc7#12.19.15.01.00#Aromatic solvents#12.19.15.00.00
+unspsc7#12.19.15.02.00#Aliphatic solvents#12.19.15.00.00
+unspsc7#12.19.16.00.00#Oxygenated solvents#12.19.00.00.00
+unspsc7#12.19.16.01.00#Alcohol solvents#12.19.16.00.00
+unspsc7#12.19.16.02.00#Active solvents#12.19.16.00.00
+unspsc7#12.20.00.00.00#Chemical intermediates and fixatives#12.00.00.00.00
+unspsc7#12.20.15.00.00#Intermediates#12.20.00.00.00
+unspsc7#12.20.15.01.00#Ether intermediates#12.20.15.00.00
+unspsc7#12.20.15.02.00#Ketone intermediates#12.20.15.00.00
+unspsc7#12.20.15.03.00#Aldehyde intermediates#12.20.15.00.00
+unspsc7#12.20.15.04.00#Peroxide intermediates#12.20.15.00.00
+unspsc7#12.20.15.05.00#Acrylate or methacrylate intermediates#12.20.15.00.00
+unspsc7#12.20.16.00.00#Fixatives#12.20.00.00.00
+unspsc7#12.20.16.01.00#Formaldehydes#12.20.16.00.00
+unspsc7#12.20.16.02.00#Glutrals#12.20.16.00.00
+unspsc7#12.20.16.03.00#Tannins#12.20.16.00.00
+unspsc7#12.20.17.00.00#Amines and amides and imines and imides#12.20.00.00.00
+unspsc7#12.20.17.01.00#Primary#12.20.17.00.00
+unspsc7#12.20.17.02.00#Secondary#12.20.17.00.00
+unspsc7#12.20.17.03.00#Tertiary#12.20.17.00.00
+unspsc7#12.20.17.04.00#Specialty#12.20.17.00.00
+unspsc7#12.20.17.05.00#Sulphonated#12.20.17.00.00
+unspsc7#12.21.00.00.00#Carbon based chemicals and compounded chemicals#12.00.00.00.00
+unspsc7#12.21.15.00.00#Alcohols#12.21.00.00.00
+unspsc7#12.21.15.01.00#Amino alcohols#12.21.15.00.00
+unspsc7#12.21.15.02.00#Benzyl alcohols#12.21.15.00.00
+unspsc7#12.21.15.03.00#Chlorohydrins#12.21.15.00.00
+unspsc7#12.21.15.04.00#Ethanol#12.21.15.00.00
+unspsc7#12.21.15.05.00#Fatty alcohols#12.21.15.00.00
+unspsc7#12.21.15.06.00#Glycols#12.21.15.00.00
+unspsc7#12.21.15.07.00#Hexanols#12.21.15.00.00
+unspsc7#12.21.15.08.00#Methanol#12.21.15.00.00
+unspsc7#12.21.15.09.00#Poly vinyl or PV alcohol#12.21.15.00.00
+unspsc7#12.21.15.10.00#Propanols#12.21.15.00.00
+unspsc7#12.21.15.11.00#Sugar alcohols#12.21.15.00.00
+unspsc7#12.21.15.12.00#Butyl alcohols#12.21.15.00.00
+unspsc7#12.21.15.13.00#Isopropyl alcohol#12.21.15.00.00
+unspsc7#12.21.16.00.00#Hydrocarbons#12.21.00.00.00
+unspsc7#12.21.16.01.00#Acyclic or cyclic or polycyclic hydrocarbons#12.21.16.00.00
+unspsc7#12.21.16.02.00#Halogenated hydrocarbons#12.21.16.00.00
+unspsc7#12.21.16.03.00#Sulphonated hydrocarbons#12.21.16.00.00
+unspsc7#12.21.16.04.00#Nitrosated hydrocarbons#12.21.16.00.00
+unspsc7#12.21.17.00.00#Aldehydes#12.21.00.00.00
+unspsc7#12.21.17.01.00#Acetalaldehyes#12.21.17.00.00
+unspsc7#12.21.17.02.00#Glyoxals#12.21.17.00.00
+unspsc7#12.21.18.00.00#Ethers#12.21.00.00.00
+unspsc7#12.21.18.01.00#Acetal ethers#12.21.18.00.00
+unspsc7#12.21.18.02.00#Ethyl ethers#12.21.18.00.00
+unspsc7#12.21.18.03.00#Methyl ethers#12.21.18.00.00
+unspsc7#12.21.18.04.00#Phenyl ethers#12.21.18.00.00
+unspsc7#12.21.18.05.00#Methyl tetra butyl ether#12.21.18.00.00
+unspsc7#12.21.19.00.00#Ketones#12.21.00.00.00
+unspsc7#12.21.19.01.00#Acetones#12.21.19.00.00
+unspsc7#12.21.19.02.00#Camphors#12.21.19.00.00
+unspsc7#12.21.19.03.00#Ketone bodies#12.21.19.00.00
+unspsc7#12.21.19.04.00#Mannich bases#12.21.19.00.00
+unspsc7#12.21.20.00.00#Phenols#12.21.00.00.00
+unspsc7#12.21.20.01.00#Bromphenol blue#12.21.20.00.00
+unspsc7#12.21.20.02.00#Cresols#12.21.20.00.00
+unspsc7#12.21.21.00.00#Carbohydrates#12.21.00.00.00
+unspsc7#12.21.21.01.00#Simple sugars or its derivatives#12.21.21.00.00
+unspsc7#12.21.21.02.00#Gum resins#12.21.21.00.00
+unspsc7#12.21.21.03.00#Starches#12.21.21.00.00
+unspsc7#12.21.22.00.00#Compounds#12.21.00.00.00
+unspsc7#12.21.22.01.00#Chemical alloys#12.21.22.00.00
+unspsc7#12.21.22.02.00#Cyanides or cyanates#12.21.22.00.00
+unspsc7#12.21.22.03.00#Aluminum compounds#12.21.22.00.00
+unspsc7#12.21.22.04.00#Barium compounds#12.21.22.00.00
+unspsc7#12.21.22.05.00#Boron compounds#12.21.22.00.00
+unspsc7#12.21.22.06.00#Bromine compounds#12.21.22.00.00
+unspsc7#12.21.22.07.00#Calcium compounds#12.21.22.00.00
+unspsc7#12.21.22.08.00#Carbon compounds#12.21.22.00.00
+unspsc7#12.21.22.09.00#Chlorine compounds#12.21.22.00.00
+unspsc7#12.21.22.10.00#Fluorine compounds#12.21.22.00.00
+unspsc7#12.21.22.11.00#Gold compounds#12.21.22.00.00
+unspsc7#12.21.22.12.00#Iodine compounds#12.21.22.00.00
+unspsc7#12.21.22.13.00#Iron compounds#12.21.22.00.00
+unspsc7#12.21.22.14.00#Magnesium compounds#12.21.22.00.00
+unspsc7#12.21.22.15.00#Nitrogen compounds#12.21.22.00.00
+unspsc7#12.21.22.16.00#Nitrile compounds#12.21.22.00.00
+unspsc7#12.21.22.17.00#Oxygen compounds#12.21.22.00.00
+unspsc7#12.21.22.18.00#Phosphorous compounds#12.21.22.00.00
+unspsc7#12.21.22.19.00#Potassium compounds#12.21.22.00.00
+unspsc7#12.21.22.20.00#Selenium compounds#12.21.22.00.00
+unspsc7#12.21.22.21.00#Silicon or silicone or silicane compounds#12.21.22.00.00
+unspsc7#12.21.22.22.00#Sodium compounds#12.21.22.00.00
+unspsc7#12.21.22.23.00#Sulfur compounds#12.21.22.00.00
+unspsc7#12.21.22.24.00#Tin compounds#12.21.22.00.00
+unspsc7#12.21.22.25.00#Zinc compounds#12.21.22.00.00
+unspsc7#12.21.22.26.00#Heterocyclic compounds#12.21.22.00.00
+unspsc7#12.21.22.27.00#Cobalt compounds#12.21.22.00.00
+unspsc7#12.21.22.28.00#Antimony compounds#12.21.22.00.00
+unspsc7#12.21.22.29.00#Titanium compounds#12.21.22.00.00
+unspsc7#12.21.23.00.00#Oxides includes all oxided substances#12.21.00.00.00
+unspsc7#12.21.23.01.00#Aluminum oxides#12.21.23.00.00
+unspsc7#12.21.23.02.00#Carbon oxides#12.21.23.00.00
+unspsc7#12.21.23.03.00#Hypochlorous acid#12.21.23.00.00
+unspsc7#12.21.23.04.00#Magnesium oxides#12.21.23.00.00
+unspsc7#12.21.23.05.00#Nitrogen oxides#12.21.23.00.00
+unspsc7#12.21.23.06.00#Osmium oxides#12.21.23.00.00
+unspsc7#12.21.23.07.00#Peroxides#12.21.23.00.00
+unspsc7#12.21.23.08.00#Silicon oxides#12.21.23.00.00
+unspsc7#12.21.23.09.00#Sulfur oxides#12.21.23.00.00
+unspsc7#12.21.23.10.00#Thorium oxides#12.21.23.00.00
+unspsc7#12.21.23.11.00#Water oxides#12.21.23.00.00
+unspsc7#12.21.23.12.00#Zinc oxides#12.21.23.00.00
+unspsc7#12.21.23.13.00#Hydroxides#12.21.23.00.00
+unspsc7#12.21.23.14.00#Metal oxides#12.21.23.00.00
+unspsc7#12.21.23.15.00#Non metal oxides#12.21.23.00.00
+unspsc7#12.21.23.16.00#Ethylene oxide#12.21.23.00.00
+unspsc7#12.21.24.00.00#Isotopes#12.21.00.00.00
+unspsc7#12.21.24.01.00#Deuterated solvents#12.21.24.00.00
+unspsc7#12.21.24.02.00#Heavy water#12.21.24.00.00
+unspsc7#12.21.24.03.00#Alpha sources#12.21.24.00.00
+unspsc7#12.21.24.04.00#Beta sources#12.21.24.00.00
+unspsc7#12.21.24.05.00#Cobalt sources#12.21.24.00.00
+unspsc7#12.21.24.06.00#Gamma sources#12.21.24.00.00
+unspsc7#12.21.24.07.00#Radioisotope sources#12.21.24.00.00
+unspsc7#12.21.24.08.00#Calibration sources#12.21.24.00.00
+unspsc7#12.22.00.00.00#Bio chemicals#12.00.00.00.00
+unspsc7#12.22.15.00.00#Proteins#12.22.00.00.00
+unspsc7#12.22.15.01.00#Albumins#12.22.15.00.00
+unspsc7#12.22.15.02.00#Bacterial proteins#12.22.15.00.00
+unspsc7#12.22.15.03.00#Blood proteins#12.22.15.00.00
+unspsc7#12.22.15.04.00#Bone morphogenetic proteins#12.22.15.00.00
+unspsc7#12.22.15.05.00#Carrier proteins#12.22.15.00.00
+unspsc7#12.22.15.06.00#Contractile proteins#12.22.15.00.00
+unspsc7#12.22.15.07.00#Dietary proteins#12.22.15.00.00
+unspsc7#12.22.15.08.00#Deoxyribonucleic acid (DNA) binding proteins#12.22.15.00.00
+unspsc7#12.22.15.09.00#Egg proteins#12.22.15.00.00
+unspsc7#12.22.15.10.00#Globulins#12.22.15.00.00
+unspsc7#12.22.15.11.00#Glycoproteins#12.22.15.00.00
+unspsc7#12.22.15.12.00#Hemeproteins#12.22.15.00.00
+unspsc7#12.22.15.13.00#Interferons#12.22.15.00.00
+unspsc7#12.22.15.14.00#Lectins#12.22.15.00.00
+unspsc7#12.22.15.15.00#Lipoproteins#12.22.15.00.00
+unspsc7#12.22.15.16.00#Membrane proteins#12.22.15.00.00
+unspsc7#12.22.15.17.00#Metalloproteins#12.22.15.00.00
+unspsc7#12.22.15.18.00#Nerve tissue proteins#12.22.15.00.00
+unspsc7#12.22.15.19.00#Neculeoproteins#12.22.15.00.00
+unspsc7#12.22.15.20.00#Peptones#12.22.15.00.00
+unspsc7#12.22.15.21.00#Plant proteins#12.22.15.00.00
+unspsc7#12.22.15.22.00#Prions#12.22.15.00.00
+unspsc7#12.22.15.23.00#Cytoplasmic or nuclear receptors#12.22.15.00.00
+unspsc7#12.22.15.24.00#Recombinant proteins#12.22.15.00.00
+unspsc7#12.22.15.25.00#Serpins#12.22.15.00.00
+unspsc7#12.22.15.26.00#Transcription factors#12.22.15.00.00
+unspsc7#12.22.15.27.00#Viral proteins#12.22.15.00.00
+unspsc7#12.22.15.28.00#Scleroprotein#12.22.15.00.00
+unspsc7#12.22.16.00.00#Antibodies#12.22.00.00.00
+unspsc7#12.22.16.01.00#Viral antibodies#12.22.16.00.00
+unspsc7#12.22.16.02.00#Antitoxins#12.22.16.00.00
+unspsc7#12.22.16.03.00#Bacterial antibodies#12.22.16.00.00
+unspsc7#12.22.16.04.00#Autoantibodies#12.22.16.00.00
+unspsc7#12.22.16.05.00#Immune sera#12.22.16.00.00
+unspsc7#12.22.16.06.00#Immunoglobulins#12.22.16.00.00
+unspsc7#12.22.17.00.00#Nutrients#12.22.00.00.00
+unspsc7#12.22.17.01.00#Vitamins#12.22.17.00.00
+unspsc7#12.22.18.00.00#Enzymes#12.22.00.00.00
+unspsc7#12.22.18.01.00#Hydrolases#12.22.18.00.00
+unspsc7#12.22.18.02.00#Isoenzymes#12.22.18.00.00
+unspsc7#12.22.18.03.00#Isomerases#12.22.18.00.00
+unspsc7#12.22.18.04.00#Ligases#12.22.18.00.00
+unspsc7#12.22.18.05.00#Lyases#12.22.18.00.00
+unspsc7#12.22.18.06.00#Multienzyme complexes#12.22.18.00.00
+unspsc7#12.22.18.07.00#Oxidoreductases#12.22.18.00.00
+unspsc7#12.22.18.08.00#Permeases#12.22.18.00.00
+unspsc7#12.22.18.09.00#Transfereases#12.22.18.00.00
+unspsc7#12.22.18.10.00#Catalase#12.22.18.00.00
+unspsc7#12.22.19.00.00#Tissues#12.22.00.00.00
+unspsc7#12.22.19.01.00#Connective tissues#12.22.19.00.00
+unspsc7#12.22.19.02.00#Epitheliums#12.22.19.00.00
+unspsc7#12.22.19.03.00#Exocrine glands#12.22.19.00.00
+unspsc7#12.22.19.04.00#Lymphoid tissues#12.22.19.00.00
+unspsc7#12.22.19.05.00#Membranes#12.22.19.00.00
+unspsc7#12.22.19.06.00#Muscles#12.22.19.00.00
+unspsc7#12.22.19.07.00#Nerve tissues#12.22.19.00.00
+unspsc7#12.22.20.00.00#Cultures and fluids#12.22.00.00.00
+unspsc7#12.22.20.01.00#Agar#12.22.20.00.00
+unspsc7#12.22.20.02.00#Broth#12.22.20.00.00
+unspsc7#12.22.20.03.00#Serum free culture media#12.22.20.00.00
+unspsc7#12.22.20.04.00#Conditioned culture media#12.22.20.00.00
+unspsc7#12.22.20.05.00#Bacteria cultures#12.22.20.00.00
+unspsc7#12.22.20.06.00#Blood#12.22.20.00.00
+unspsc7#12.22.20.07.00#Urea#12.22.20.00.00
+unspsc7#12.22.20.08.00#Bile#12.22.20.00.00
+unspsc7#12.22.20.09.00#Plasma#12.22.20.00.00
+unspsc7#12.22.20.10.00#Semen cultures#12.22.20.00.00
+unspsc7#12.22.21.00.00#Nucleic acids#12.22.00.00.00
+unspsc7#12.22.21.01.00#Ribonucleic acid (RNA)#12.22.21.00.00
+unspsc7#12.22.21.02.00#Deoxyribonucleic acid (DNA)#12.22.21.00.00
+unspsc7#12.22.22.00.00#Amino acids#12.22.00.00.00
+unspsc7#12.22.22.01.00#Branched chain amino acids#12.22.22.00.00
+unspsc7#12.22.22.02.00#Cyclic amino acids#12.22.22.00.00
+unspsc7#12.22.22.03.00#Diamino amino acids#12.22.22.00.00
+unspsc7#12.22.22.04.00#Dicarboxylic amino acids#12.22.22.00.00
+unspsc7#12.22.22.05.00#Essential amino acids#12.22.22.00.00
+unspsc7#12.22.22.06.00#Sulfur amino acids#12.22.22.00.00
+unspsc7#12.22.22.07.00#Aminobutyric acids#12.22.22.00.00
+unspsc7#12.22.22.08.00#Aminocaproic acids#12.22.22.00.00
+unspsc7#12.22.22.09.00#Oxamic acids#12.22.22.00.00
+unspsc7#12.22.22.10.00#Phosphoamino acids#12.22.22.00.00
+unspsc7#12.22.22.11.00#Quisqualic acids#12.22.22.00.00
+unspsc7#12.22.23.00.00#Amines and amides and imines and imides#12.22.00.00.00
+unspsc7#12.22.23.01.00#Primary#12.22.23.00.00
+unspsc7#12.22.23.02.00#Secondary#12.22.23.00.00
+unspsc7#12.22.23.03.00#Tertiary#12.22.23.00.00
+unspsc7#12.22.23.04.00#Specialty#12.22.23.00.00
+unspsc7#12.22.23.05.00#Sulphonated#12.22.23.00.00
+unspsc7#12.23.00.00.00#Inorganic compounds#12.00.00.00.00
+unspsc7#12.23.10.00.00#Mineral acids#12.23.00.00.00
+unspsc7#12.23.10.01.00#Hydrofloric acid#12.23.10.00.00
+unspsc7#12.23.10.02.00#Hydrofluorosilicic acid#12.23.10.00.00
+unspsc7#12.23.10.03.00#Hydroflouric acid#12.23.10.00.00
+unspsc7#12.23.11.00.00#Bases#12.23.00.00.00
+unspsc7#12.23.11.01.00#Sodium hydroxide#12.23.11.00.00
+unspsc7#12.23.11.02.00#Potassium hydroxide#12.23.11.00.00
+unspsc7#12.23.12.00.00#Salts#12.23.00.00.00
+unspsc7#12.23.12.01.00#Ammonium nitrate#12.23.12.00.00
+unspsc7#12.23.13.00.00#Sulphates#12.23.00.00.00
+unspsc7#12.23.13.01.00#Ferric sulphate#12.23.13.00.00
+unspsc7#12.23.13.02.00#Copper sulphate#12.23.13.00.00
+unspsc7#12.23.13.03.00#Aluminium sulphate#12.23.13.00.00
+unspsc7#12.23.13.04.00#Sodium sulphate#12.23.13.00.00
+unspsc7#12.23.13.05.00#Sodium thiosulphate#12.23.13.00.00
+unspsc7#12.23.14.00.00#Chlorides chlorates and perchlorates#12.23.00.00.00
+unspsc7#12.23.14.01.00#Sodium chlorite#12.23.14.00.00
+unspsc7#12.23.14.02.00#Ferric Chloride#12.23.14.00.00
+unspsc7#12.23.14.03.00#Aluminium chloride#12.23.14.00.00
+unspsc7#12.23.14.04.00#Poly aluminium chloride#12.23.14.00.00
+unspsc7#12.23.14.05.00#Aluminium chlorohydrate#12.23.14.00.00
+unspsc7#12.23.14.06.00#Sodium hypochlorite#12.23.14.00.00
+unspsc7#12.23.15.00.00#Borides and borates#12.23.00.00.00
+unspsc7#12.23.15.01.00#Sodium borate#12.23.15.00.00
+unspsc7#12.23.16.00.00#Hydrides#12.23.00.00.00
+unspsc7#12.23.16.01.00#Aluminium hydrite#12.23.16.00.00
+unspsc7#12.23.16.02.00#Magnesium hydrite#12.23.16.00.00
+unspsc7#12.23.17.00.00#Sulphides#12.23.00.00.00
+unspsc7#12.23.17.01.00#Hydrogen sulphide#12.23.17.00.00
+unspsc7#12.23.17.02.00#Poly sulphide#12.23.17.00.00
+unspsc7#12.23.17.03.00#Sodium sulphide#12.23.17.00.00
+unspsc7#12.23.17.04.00#Iron sulphide#12.23.17.00.00
+unspsc7#12.23.18.00.00#Inorganic oxidising agents#12.23.00.00.00
+unspsc7#12.23.18.01.00#Potassium permanganate#12.23.18.00.00
+unspsc7#12.23.18.02.00#Potassium dichromate#12.23.18.00.00
+unspsc7#12.23.18.03.00#Manganese dioxide#12.23.18.00.00
+unspsc7#12.24.00.00.00#Alcohols#12.00.00.00.00
+unspsc7#12.24.10.00.00#Monohydric alcohols#12.24.00.00.00
+unspsc7#12.24.10.01.00#Ethanol#12.24.10.00.00
+unspsc7#12.24.10.02.00#Isopropanol#12.24.10.00.00
+unspsc7#12.24.10.03.00#Methanol#12.24.10.00.00
+unspsc7#12.24.10.04.00#Pentanols#12.24.10.00.00
+unspsc7#12.24.10.05.00#Octanols#12.24.10.00.00
+unspsc7#12.24.10.06.00#Inositols#12.24.10.00.00
+unspsc7#12.24.10.07.00#Fatty alcohols#12.24.10.00.00
+unspsc7#12.24.10.08.00#Allyl alcohol#12.24.10.00.00
+unspsc7#12.24.11.00.00#Polyhydric alcohols#12.24.00.00.00
+unspsc7#12.24.11.01.00#Glycol#12.24.11.00.00
+unspsc7#12.24.11.02.00#Glycerol#12.24.11.00.00
+unspsc7#12.24.12.00.00#Thio alcohols#12.24.00.00.00
+unspsc7#12.24.12.01.00#Ethane thiol#12.24.12.00.00
+unspsc7#12.24.12.02.00#Methane thiol#12.24.12.00.00
+unspsc7#12.25.00.00.00#Alkanes Alkenes Alkynes and Aromatics#12.00.00.00.00
+unspsc7#12.25.10.00.00#Alkanes#12.25.00.00.00
+unspsc7#12.25.10.01.00#Pentane#12.25.10.00.00
+unspsc7#12.25.10.02.00#Hexane#12.25.10.00.00
+unspsc7#12.25.11.00.00#Cyclic hydrocarbons#12.25.00.00.00
+unspsc7#12.25.11.01.00#Toluene#12.25.11.00.00
+unspsc7#12.25.11.02.00#Xylenes#12.25.11.00.00
+unspsc7#12.25.11.03.00#Benzene#12.25.11.00.00
+unspsc7#12.25.12.00.00#Alkenes#12.25.00.00.00
+unspsc7#12.25.12.01.00#Propene#12.25.12.00.00
+unspsc7#12.25.12.02.00#Butene#12.25.12.00.00
+unspsc7#12.25.12.03.00#Styrene#12.25.12.00.00
+unspsc7#12.25.13.00.00#Alkynes#12.25.00.00.00
+unspsc7#12.25.13.01.00#Acytelene#12.25.13.00.00
+unspsc7#12.26.00.00.00#Aromatic derivatives#12.00.00.00.00
+unspsc7#12.26.10.00.00#Aromatic sulphonic acids#12.26.00.00.00
+unspsc7#12.26.10.01.00#Benzene sulphonic acids#12.26.10.00.00
+unspsc7#12.26.10.02.00#Halogenated sulphonic acids#12.26.10.00.00
+unspsc7#12.26.10.03.00#Nitrosulphonic acids#12.26.10.00.00
+unspsc7#12.26.10.04.00#Amino sulphonic acids#12.26.10.00.00
+unspsc7#12.26.10.05.00#Sulphonyl chlorides#12.26.10.00.00
+unspsc7#12.26.11.00.00#Aromatic nitro compounds#12.26.00.00.00
+unspsc7#12.26.11.01.00#Nitro benzenes#12.26.11.00.00
+unspsc7#12.26.11.02.00#Nitro toluenes#12.26.11.00.00
+unspsc7#12.26.11.03.00#Caprolactam#12.26.11.00.00
+unspsc7#12.26.12.00.00#Cyclic alcohols#12.26.00.00.00
+unspsc7#12.26.12.01.00#Hexanols#12.26.12.00.00
+unspsc7#12.26.12.02.00#Napthols#12.26.12.00.00
+unspsc7#12.26.12.03.00#Xylenols#12.26.12.00.00
+unspsc7#12.26.12.04.00#Benzyl alcohols#12.26.12.00.00
+unspsc7#12.26.13.00.00#Phthalates#12.26.00.00.00
+unspsc7#12.26.13.01.00#Di octyl Phthalate#12.26.13.00.00
+unspsc7#12.26.13.02.00#Di ethyl phthalates#12.26.13.00.00
+unspsc7#13.00.00.00.00#Resin and Rosin and Rubber and Foam and Film and Elastomeric Materials#13.00.00.00.00
+unspsc7#13.10.00.00.00#Rubber and elastomers#13.00.00.00.00
+unspsc7#13.10.15.00.00#Natural rubber#13.10.00.00.00
+unspsc7#13.10.15.01.00#Latex rubber#13.10.15.00.00
+unspsc7#13.10.15.02.00#Crepe rubber#13.10.15.00.00
+unspsc7#13.10.15.03.00#Smoked sheet rubber#13.10.15.00.00
+unspsc7#13.10.15.04.00#Natural foam rubber#13.10.15.00.00
+unspsc7#13.10.15.05.00#Block or crumb rubber#13.10.15.00.00
+unspsc7#13.10.16.00.00#Processed and synthetic rubber#13.10.00.00.00
+unspsc7#13.10.16.01.00#Vulcanized rubber#13.10.16.00.00
+unspsc7#13.10.16.02.00#Chlorinated rubber#13.10.16.00.00
+unspsc7#13.10.16.03.00#Hydrochloride rubber#13.10.16.00.00
+unspsc7#13.10.16.04.00#Cyclized rubber#13.10.16.00.00
+unspsc7#13.10.16.05.00#Isomerized rubber#13.10.16.00.00
+unspsc7#13.10.16.06.00#Thermplastic rubber#13.10.16.00.00
+unspsc7#13.10.16.07.00#Rubber compound#13.10.16.00.00
+unspsc7#13.10.17.00.00#Elastomers#13.10.00.00.00
+unspsc7#13.10.17.01.00#Acrylonitrile butadiene (NBR)#13.10.17.00.00
+unspsc7#13.10.17.02.00#Highly saturated nitrile (HNBR)#13.10.17.00.00
+unspsc7#13.10.17.03.00#Fluorocarbon (FKM)#13.10.17.00.00
+unspsc7#13.10.17.04.00#Ethylene propylene (EP)#13.10.17.00.00
+unspsc7#13.10.17.05.00#Styrene butadiene (SBR)#13.10.17.00.00
+unspsc7#13.10.17.06.00#Chloroprene (CR)#13.10.17.00.00
+unspsc7#13.10.17.07.00#Isobutylene isoprene (IIR/XIIR)#13.10.17.00.00
+unspsc7#13.10.17.08.00#Silicone (VMQ and PMQ and PVMQ)#13.10.17.00.00
+unspsc7#13.10.17.09.00#Fluorosilicone (FVMQ)#13.10.17.00.00
+unspsc7#13.10.17.10.00#Polyacrylate (ACM)#13.10.17.00.00
+unspsc7#13.10.17.11.00#Ethylene acrylic (AEM)#13.10.17.00.00
+unspsc7#13.10.17.12.00#Chlorosulfonated polyethylene (CSM)#13.10.17.00.00
+unspsc7#13.10.17.13.00#Chloropolyethylene (CM)#13.10.17.00.00
+unspsc7#13.10.17.14.00#Epichlorohydrin (ECO)#13.10.17.00.00
+unspsc7#13.10.17.15.00#Natural polyisoprene (NR)#13.10.17.00.00
+unspsc7#13.10.17.16.00#Synthetic polyisoprene (IR)#13.10.17.00.00
+unspsc7#13.10.17.17.00#Polyester urethane (AU)#13.10.17.00.00
+unspsc7#13.10.17.18.00#Polyether urethane (EU)#13.10.17.00.00
+unspsc7#13.10.17.19.00#Polybutadiene (BR)#13.10.17.00.00
+unspsc7#13.10.17.20.00#Polyether block amide (PEBA)#13.10.17.00.00
+unspsc7#13.10.17.21.00#Styrene block coploymer (TES)#13.10.17.00.00
+unspsc7#13.10.17.22.00#Copolyester#13.10.17.00.00
+unspsc7#13.10.17.23.00#Thermoplastic#13.10.17.00.00
+unspsc7#13.10.17.24.00#Polyolenfinic#13.10.17.00.00
+unspsc7#13.10.18.00.00#Thermoplastic elastomers#13.10.00.00.00
+unspsc7#13.10.18.01.00#Polyether block amide (PEBA)#13.10.18.00.00
+unspsc7#13.10.18.02.00#Polyolenfinic (TPO)#13.10.18.00.00
+unspsc7#13.10.18.03.00#Ether ester block coploymer (TEEE)#13.10.18.00.00
+unspsc7#13.10.18.04.00#Thermoplastic elastomer polyurethane (TPUR)#13.10.18.00.00
+unspsc7#13.10.18.05.00#Styrene block coploymer (TES)#13.10.18.00.00
+unspsc7#13.10.19.00.00#Thermoset plastics#13.10.00.00.00
+unspsc7#13.10.19.01.00#Epoxy (EP)#13.10.19.00.00
+unspsc7#13.10.19.02.00#Phenolic (PF)#13.10.19.00.00
+unspsc7#13.10.19.03.00#Unsaturate polyester (UP)#13.10.19.00.00
+unspsc7#13.10.19.04.00#Urea (UF)#13.10.19.00.00
+unspsc7#13.10.19.05.00#Melamine (MF)#13.10.19.00.00
+unspsc7#13.10.19.06.00#Thermoset polyurethane (PUR)#13.10.19.00.00
+unspsc7#13.10.20.00.00#Thermoplastic plastics#13.10.00.00.00
+unspsc7#13.10.20.01.00#Acrylonitrile butadiene styrene (ABS)#13.10.20.00.00
+unspsc7#13.10.20.02.00#Acrylonitrile butadiene styrene (ABS) alloys#13.10.20.00.00
+unspsc7#13.10.20.03.00#Acetal polymer#13.10.20.00.00
+unspsc7#13.10.20.04.00#Acrylic#13.10.20.00.00
+unspsc7#13.10.20.05.00#Acrylonitrile styrene acrylic (ASA)#13.10.20.00.00
+unspsc7#13.10.20.06.00#Acrylonitrile styrene acrylic (ASA) alloys#13.10.20.00.00
+unspsc7#13.10.20.07.00#Cellulosics#13.10.20.00.00
+unspsc7#13.10.20.08.00#Fluoropolymers (PTFE)#13.10.20.00.00
+unspsc7#13.10.20.09.00#Ethylene vinyl acetate (EVA)#13.10.20.00.00
+unspsc7#13.10.20.10.00#Liquid crystal polymer (LCP)#13.10.20.00.00
+unspsc7#13.10.20.11.00#Polyamide nylons (PA)#13.10.20.00.00
+unspsc7#13.10.20.12.00#Polybutylene terepthalate (PBT)#13.10.20.00.00
+unspsc7#13.10.20.13.00#Polycarbonate (PC)#13.10.20.00.00
+unspsc7#13.10.20.14.00#Polyetheretherketone (PEEK)#13.10.20.00.00
+unspsc7#13.10.20.15.00#Polyetherimid (PEI)#13.10.20.00.00
+unspsc7#13.10.20.16.00#Polyethersulfone (PES)#13.10.20.00.00
+unspsc7#13.10.20.17.00#High density polyethylene (HDPE)#13.10.20.00.00
+unspsc7#13.10.20.18.00#Low density polyethylene (LDPE)#13.10.20.00.00
+unspsc7#13.10.20.19.00#Medium density polyethylene (MDPE)#13.10.20.00.00
+unspsc7#13.10.20.20.00#Polyethylene terepthalate (PET)#13.10.20.00.00
+unspsc7#13.10.20.21.00#Polyimide (PI)#13.10.20.00.00
+unspsc7#13.10.20.22.00#Polypropylene (PP)#13.10.20.00.00
+unspsc7#13.10.20.23.00#Polyphthalamide (PPA)#13.10.20.00.00
+unspsc7#13.10.20.24.00#Polythenylene oxide (PPO)#13.10.20.00.00
+unspsc7#13.10.20.25.00#Polyphenylene sulfide (PPS)#13.10.20.00.00
+unspsc7#13.10.20.26.00#Polystyrene (PS)#13.10.20.00.00
+unspsc7#13.10.20.27.00#High impact polystyrene (HIPS)#13.10.20.00.00
+unspsc7#13.10.20.28.00#Polysulfone (PSU)#13.10.20.00.00
+unspsc7#13.10.20.29.00#Rigid thermoplastic polyurethane (RPTU)#13.10.20.00.00
+unspsc7#13.10.20.30.00#Polyvinyl chloride (PVC)#13.10.20.00.00
+unspsc7#13.10.20.31.00#Styrene acrylonitrile (SAN)#13.10.20.00.00
+unspsc7#13.10.21.00.00#Resins#13.10.00.00.00
+unspsc7#13.10.21.01.00#Plastic resins#13.10.21.00.00
+unspsc7#13.10.21.02.00#Indene resins#13.10.21.00.00
+unspsc7#13.10.21.03.00#Urea resins#13.10.21.00.00
+unspsc7#13.10.21.04.00#Phenolic resins#13.10.21.00.00
+unspsc7#13.10.21.05.00#Thermoplastic resins#13.10.21.00.00
+unspsc7#13.10.21.06.00#Alkyd resins#13.10.21.00.00
+unspsc7#13.10.21.07.00#Melamine resins#13.10.21.00.00
+unspsc7#13.10.21.08.00#Polyacetal resins#13.10.21.00.00
+unspsc7#13.10.21.09.00#Polyamide resins#13.10.21.00.00
+unspsc7#13.10.21.10.00#Polycarbonate resins#13.10.21.00.00
+unspsc7#13.10.21.11.00#Polyethylene terephthalate resins#13.10.21.00.00
+unspsc7#13.10.21.12.00#Polyether resins#13.10.21.00.00
+unspsc7#13.10.21.13.00#Allyl resins#13.10.21.00.00
+unspsc7#13.10.21.14.00#Polyurethane resins#13.10.21.00.00
+unspsc7#13.10.21.15.00#Epoxy resins#13.10.21.00.00
+unspsc7#13.10.21.16.00#Petroleum resins#13.10.21.00.00
+unspsc7#13.10.22.00.00#Plastic films#13.10.00.00.00
+unspsc7#13.10.22.01.00#Polyurethane films#13.10.22.00.00
+unspsc7#13.10.22.02.00#Silicone coated films#13.10.22.00.00
+unspsc7#13.11.00.00.00#Resins and rosins and other resin derived materials#13.00.00.00.00
+unspsc7#13.11.10.00.00#Resins#13.11.00.00.00
+unspsc7#13.11.10.01.00#Epoxy#13.11.10.00.00
+unspsc7#13.11.10.02.00#Phenolic#13.11.10.00.00
+unspsc7#13.11.10.03.00#Unsaturated polyester#13.11.10.00.00
+unspsc7#13.11.10.04.00#Acrylonitrile butadiene styrene#13.11.10.00.00
+unspsc7#13.11.10.05.00#Acrylonitrile styrene acrylic#13.11.10.00.00
+unspsc7#13.11.10.06.00#Acrylonitrile styrene acrylic alloys#13.11.10.00.00
+unspsc7#13.11.10.07.00#Fluoropolymers#13.11.10.00.00
+unspsc7#13.11.10.08.00#Ethylene vinyl acetate#13.11.10.00.00
+unspsc7#13.11.10.09.00#Liquid crystal polymer#13.11.10.00.00
+unspsc7#13.11.10.10.00#Nylon#13.11.10.00.00
+unspsc7#13.11.10.11.00#Polybutylene terepthatlate#13.11.10.00.00
+unspsc7#13.11.10.12.00#Polycarbonate#13.11.10.00.00
+unspsc7#13.11.10.13.00#Polyetheretherketone#13.11.10.00.00
+unspsc7#13.11.10.14.00#Polyetherimide#13.11.10.00.00
+unspsc7#13.11.10.15.00#Polyethersulfone#13.11.10.00.00
+unspsc7#13.11.10.16.00#Polyethylene#13.11.10.00.00
+unspsc7#13.11.10.17.00#Polyethylene terpthalate#13.11.10.00.00
+unspsc7#13.11.10.18.00#Polyimide#13.11.10.00.00
+unspsc7#13.11.10.19.00#Polypropylene#13.11.10.00.00
+unspsc7#13.11.10.20.00#Polyphthalamide#13.11.10.00.00
+unspsc7#13.11.10.21.00#Polyethylene oxide#13.11.10.00.00
+unspsc7#13.11.10.22.00#Polyphenylene sulfide#13.11.10.00.00
+unspsc7#13.11.10.23.00#Polystyrene#13.11.10.00.00
+unspsc7#13.11.10.24.00#Polysulfone#13.11.10.00.00
+unspsc7#13.11.10.25.00#Polyvinyl chloride#13.11.10.00.00
+unspsc7#13.11.10.26.00#Styrene acrylonitrile#13.11.10.00.00
+unspsc7#13.11.10.27.00#Urea formaldehyde#13.11.10.00.00
+unspsc7#13.11.10.28.00#Alkyd#13.11.10.00.00
+unspsc7#13.11.10.29.00#Melamine formaldehyde#13.11.10.00.00
+unspsc7#13.11.10.30.00#Polyacetal#13.11.10.00.00
+unspsc7#13.11.10.31.00#Polyamide#13.11.10.00.00
+unspsc7#13.11.10.32.00#Allyl#13.11.10.00.00
+unspsc7#13.11.10.33.00#Ethylene acrylic acid#13.11.10.00.00
+unspsc7#13.11.10.34.00#Polyvinyl chloride compound#13.11.10.00.00
+unspsc7#13.11.10.35.00#Solution vinyl#13.11.10.00.00
+unspsc7#13.11.10.36.00#Phenoxy#13.11.10.00.00
+unspsc7#13.11.10.37.00#Compounded resins#13.11.10.00.00
+unspsc7#13.11.10.38.00#Polyvinly pyrolidine#13.11.10.00.00
+unspsc7#13.11.10.39.00#Polyethylene terephthalate or glycol modified#13.11.10.00.00
+unspsc7#13.11.10.40.00#Hydrocarbon tackifier#13.11.10.00.00
+unspsc7#13.11.10.41.00#Polycarbonate blends#13.11.10.00.00
+unspsc7#13.11.10.42.00#Polyvinyl alcohol#13.11.10.00.00
+unspsc7#13.11.10.43.00#Polyvinyl butyral#13.11.10.00.00
+unspsc7#13.11.10.44.00#Polyester molding compounds#13.11.10.00.00
+unspsc7#13.11.10.45.00#Polyvinyl acetate#13.11.10.00.00
+unspsc7#13.11.10.46.00#Polyvinyl ether#13.11.10.00.00
+unspsc7#13.11.10.47.00#Polyvinyl formal#13.11.10.00.00
+unspsc7#13.11.10.48.00#Styrene acrylic#13.11.10.00.00
+unspsc7#13.11.10.49.00#Ethylene propylene polymers#13.11.10.00.00
+unspsc7#13.11.10.50.00#Polypropylene oxide#13.11.10.00.00
+unspsc7#13.11.10.51.00#Polypropylene ether#13.11.10.00.00
+unspsc7#13.11.10.52.00#Polypropylene sulfone#13.11.10.00.00
+unspsc7#13.11.10.53.00#Polymethylacrylate#13.11.10.00.00
+unspsc7#13.11.10.54.00#Styrene maleic anhydride#13.11.10.00.00
+unspsc7#13.11.10.55.00#Syndiotatic polystyrene#13.11.10.00.00
+unspsc7#13.11.10.56.00#Chlorinated polyvinyl chloride#13.11.10.00.00
+unspsc7#13.11.10.57.00#Thermoplastic polyester#13.11.10.00.00
+unspsc7#13.11.10.58.00#Indene resins#13.11.10.00.00
+unspsc7#13.11.10.59.00#Plastic resins#13.11.10.00.00
+unspsc7#13.11.10.60.00#Petroleum resins#13.11.10.00.00
+unspsc7#13.11.10.61.00#Polyurethane resins#13.11.10.00.00
+unspsc7#13.11.10.62.00#Polyether resins#13.11.10.00.00
+unspsc7#13.11.11.00.00#Rosins#13.11.00.00.00
+unspsc7#13.11.11.01.00#Wood rosin#13.11.11.00.00
+unspsc7#13.11.11.02.00#Gum rosin#13.11.11.00.00
+unspsc7#13.11.11.03.00#Tall oil rosin#13.11.11.00.00
+unspsc7#13.11.12.00.00#Films#13.11.00.00.00
+unspsc7#13.11.12.01.00#Polyethylene films#13.11.12.00.00
+unspsc7#13.11.12.02.00#Polyurethane films#13.11.12.00.00
+unspsc7#13.11.12.03.00#Acetate films#13.11.12.00.00
+unspsc7#13.11.12.04.00#Acrylic films#13.11.12.00.00
+unspsc7#13.11.12.05.00#Coextruded films#13.11.12.00.00
+unspsc7#13.11.12.06.00#Flouropolymer films#13.11.12.00.00
+unspsc7#13.11.12.07.00#Metalized films#13.11.12.00.00
+unspsc7#13.11.12.08.00#Nylon films#13.11.12.00.00
+unspsc7#13.11.12.09.00#Polycarbonate films#13.11.12.00.00
+unspsc7#13.11.12.10.00#Polyester films#13.11.12.00.00
+unspsc7#13.11.12.11.00#Polypropylene films#13.11.12.00.00
+unspsc7#13.11.12.12.00#Biaxially orientated polypropylene#13.11.12.00.00
+unspsc7#13.11.12.13.00#Polymide films#13.11.12.00.00
+unspsc7#13.11.12.14.00#Polystyrene films#13.11.12.00.00
+unspsc7#13.11.12.15.00#Flexible polyvinyl chloride film#13.11.12.00.00
+unspsc7#13.11.12.16.00#Rigid polyvinyl chloride film#13.11.12.00.00
+unspsc7#13.11.12.17.00#Ethylene vinyl alcohol film#13.11.12.00.00
+unspsc7#13.11.12.18.00#Polyvinylidene chloride#13.11.12.00.00
+unspsc7#13.11.12.19.00#Polyvinyl alcohol films#13.11.12.00.00
+unspsc7#13.11.13.00.00#Foams#13.11.00.00.00
+unspsc7#13.11.13.01.00#Polyolefin foam#13.11.13.00.00
+unspsc7#13.11.13.02.00#Polyether foam#13.11.13.00.00
+unspsc7#13.11.13.03.00#Silicone foam#13.11.13.00.00
+unspsc7#13.11.13.04.00#Ethylene propylene terpolymer foam#13.11.13.00.00
+unspsc7#13.11.13.05.00#Neoprene foam#13.11.13.00.00
+unspsc7#13.11.13.06.00#Polyvinyl chloride foam#13.11.13.00.00
+unspsc7#13.11.13.07.00#Rubber foam#13.11.13.00.00
+unspsc7#13.11.13.08.00#Polystyrene foam#13.11.13.00.00
+unspsc7#14.00.00.00.00#Paper Materials and Products#14.00.00.00.00
+unspsc7#14.10.00.00.00#Paper materials#14.00.00.00.00
+unspsc7#14.10.15.00.00#Raw materials#14.10.00.00.00
+unspsc7#14.10.15.01.00#Paper pulp#14.10.15.00.00
+unspsc7#14.11.00.00.00#Paper products#14.00.00.00.00
+unspsc7#14.11.15.00.00#Printing and writing paper#14.11.00.00.00
+unspsc7#14.11.15.01.00#Onion skin paper#14.11.15.00.00
+unspsc7#14.11.15.02.00#Vellum paper#14.11.15.00.00
+unspsc7#14.11.15.03.00#Parchment paper#14.11.15.00.00
+unspsc7#14.11.15.04.00#Tractor feed paper#14.11.15.00.00
+unspsc7#14.11.15.05.00#Mimeograph paper#14.11.15.00.00
+unspsc7#14.11.15.06.00#Computer printout paper#14.11.15.00.00
+unspsc7#14.11.15.07.00#Printer or copier paper#14.11.15.00.00
+unspsc7#14.11.15.08.00#Facsimile paper#14.11.15.00.00
+unspsc7#14.11.15.09.00#Stationery#14.11.15.00.00
+unspsc7#14.11.15.10.00#Plotter paper#14.11.15.00.00
+unspsc7#14.11.15.11.00#Writing paper#14.11.15.00.00
+unspsc7#14.11.15.12.00#Graph paper#14.11.15.00.00
+unspsc7#14.11.15.13.00#Ledger paper#14.11.15.00.00
+unspsc7#14.11.15.14.00#Paper pads or notebooks#14.11.15.00.00
+unspsc7#14.11.15.15.00#Calculator or cash register paper#14.11.15.00.00
+unspsc7#14.11.15.16.00#Notebook filler paper#14.11.15.00.00
+unspsc7#14.11.15.17.00#Business forms#14.11.15.00.00
+unspsc7#14.11.15.18.00#Index cards#14.11.15.00.00
+unspsc7#14.11.15.19.00#Cardstock papers#14.11.15.00.00
+unspsc7#14.11.15.20.00#Blotter paper#14.11.15.00.00
+unspsc7#14.11.15.21.00#Laser paper#14.11.15.00.00
+unspsc7#14.11.15.22.00#Inkjet paper#14.11.15.00.00
+unspsc7#14.11.15.23.00#Tracing paper#14.11.15.00.00
+unspsc7#14.11.15.24.00#Foolscap sheets#14.11.15.00.00
+unspsc7#14.11.15.25.00#Multipurpose paper#14.11.15.00.00
+unspsc7#14.11.15.26.00#Telephone message pads or books#14.11.15.00.00
+unspsc7#14.11.15.28.00#Magnet paper#14.11.15.00.00
+unspsc7#14.11.15.29.00#Telex rolls#14.11.15.00.00
+unspsc7#14.11.15.30.00#Self adhesive note paper#14.11.15.00.00
+unspsc7#14.11.16.00.00#Novelty paper#14.11.00.00.00
+unspsc7#14.11.16.01.00#Gift wrapping paper or bags or boxes#14.11.16.00.00
+unspsc7#14.11.16.04.00#Business cards#14.11.16.00.00
+unspsc7#14.11.16.05.00#Greeting or note or post cards#14.11.16.00.00
+unspsc7#14.11.16.06.00#Art or craft paper#14.11.16.00.00
+unspsc7#14.11.16.07.00#Poster boards#14.11.16.00.00
+unspsc7#14.11.16.08.00#Gift certificate#14.11.16.00.00
+unspsc7#14.11.16.09.00#Cover paper#14.11.16.00.00
+unspsc7#14.11.17.00.00#Personal paper products#14.11.00.00.00
+unspsc7#14.11.17.01.00#Facial tissues#14.11.17.00.00
+unspsc7#14.11.17.02.00#Toilet seat covers#14.11.17.00.00
+unspsc7#14.11.17.03.00#Paper towels#14.11.17.00.00
+unspsc7#14.11.17.04.00#Toilet tissue#14.11.17.00.00
+unspsc7#14.11.17.05.00#Paper napkins or serviettes#14.11.17.00.00
+unspsc7#14.11.17.06.00#Paper table cloth#14.11.17.00.00
+unspsc7#14.11.18.00.00#Business use papers#14.11.00.00.00
+unspsc7#14.11.18.01.00#Tickets or ticket rolls#14.11.18.00.00
+unspsc7#14.11.18.02.00#Receipts or receipt books#14.11.18.00.00
+unspsc7#14.11.18.03.00#Vouchers#14.11.18.00.00
+unspsc7#14.11.18.04.00#Bills or bill books#14.11.18.00.00
+unspsc7#14.11.18.05.00#Checks or check books#14.11.18.00.00
+unspsc7#14.12.00.00.00#Industrial use papers#14.00.00.00.00
+unspsc7#14.12.15.00.00#Paperboard and packaging papers#14.12.00.00.00
+unspsc7#14.12.15.01.00#Bleached paperboard#14.12.15.00.00
+unspsc7#14.12.15.02.00#Unbleached paperboard#14.12.15.00.00
+unspsc7#14.12.15.03.00#Cardboard#14.12.15.00.00
+unspsc7#14.12.15.04.00#Packaging paper#14.12.15.00.00
+unspsc7#14.12.16.00.00#Tissue papers#14.12.00.00.00
+unspsc7#14.12.16.01.00#Unbleached crepe papers#14.12.16.00.00
+unspsc7#14.12.16.02.00#Semi bleached crepe papers#14.12.16.00.00
+unspsc7#14.12.16.03.00#Wet strength tissue papers#14.12.16.00.00
+unspsc7#14.12.16.04.00#Acid free tissue papers#14.12.16.00.00
+unspsc7#14.12.16.05.00#Kraft tissue paper#14.12.16.00.00
+unspsc7#14.12.17.00.00#Laminated papers#14.12.00.00.00
+unspsc7#14.12.17.01.00#Papers bonded with film#14.12.17.00.00
+unspsc7#14.12.17.02.00#Cylinder papers or multi layer heavyweight paper#14.12.17.00.00
+unspsc7#14.12.18.00.00#Coated papers#14.12.00.00.00
+unspsc7#14.12.18.01.00#Clay coated papers#14.12.18.00.00
+unspsc7#14.12.18.02.00#Polyethylene coated papers#14.12.18.00.00
+unspsc7#14.12.18.03.00#Polyester coated papers#14.12.18.00.00
+unspsc7#14.12.18.04.00#Silicone coated papers#14.12.18.00.00
+unspsc7#14.12.18.05.00#Latex treated coated paper#14.12.18.00.00
+unspsc7#14.12.18.06.00#Waxed paper#14.12.18.00.00
+unspsc7#14.12.18.07.00#Butcher papers#14.12.18.00.00
+unspsc7#14.12.18.08.00#Freezer paper#14.12.18.00.00
+unspsc7#14.12.18.09.00#Masking paper#14.12.18.00.00
+unspsc7#14.12.18.10.00#Carbon papers#14.12.18.00.00
+unspsc7#14.12.19.00.00#Newsprint and offset papers#14.12.00.00.00
+unspsc7#14.12.19.01.00#Standard newsprint#14.12.19.00.00
+unspsc7#14.12.19.02.00#Colored newsprint#14.12.19.00.00
+unspsc7#14.12.19.03.00#High brightness newsprint#14.12.19.00.00
+unspsc7#14.12.19.04.00#Offset paper#14.12.19.00.00
+unspsc7#14.12.20.00.00#Specialty coated papers#14.12.00.00.00
+unspsc7#14.12.20.01.00#Butcher papers#14.12.20.00.00
+unspsc7#14.12.20.02.00#Freezer paper#14.12.20.00.00
+unspsc7#14.12.21.00.00#Uncoated base papers#14.12.00.00.00
+unspsc7#14.12.21.01.00#Super calendared kraft paper#14.12.21.00.00
+unspsc7#14.12.21.02.00#Machine finished or glazed kraft paper#14.12.21.00.00
+unspsc7#14.12.21.03.00#Non treated uncoated paper#14.12.21.00.00
+unspsc7#14.12.21.04.00#Non treated crepe paper#14.12.21.00.00
+unspsc7#14.12.21.05.00#Latex treated crepe paper#14.12.21.00.00
+unspsc7#14.12.21.06.00#Latex treated uncoated paper#14.12.21.00.00
+unspsc7#15.00.00.00.00#Fuels and Fuel Additives and Lubricants and Anti corrosive Materials#15.00.00.00.00
+unspsc7#15.10.00.00.00#Fuels#15.00.00.00.00
+unspsc7#15.10.15.00.00#Petroleum and distillates#15.10.00.00.00
+unspsc7#15.10.15.01.00#Fuel oil#15.10.15.00.00
+unspsc7#15.10.15.02.00#Kerosene#15.10.15.00.00
+unspsc7#15.10.15.03.00#Naphtha#15.10.15.00.00
+unspsc7#15.10.15.04.00#Aviation fuel#15.10.15.00.00
+unspsc7#15.10.15.05.00#Diesel fuel#15.10.15.00.00
+unspsc7#15.10.15.06.00#Gasoline#15.10.15.00.00
+unspsc7#15.10.15.07.00#Petrol#15.10.15.00.00
+unspsc7#15.10.15.08.00#Crude oil#15.10.15.00.00
+unspsc7#15.10.15.09.00#Marine fuel#15.10.15.00.00
+unspsc7#15.10.15.10.00#Condensate#15.10.15.00.00
+unspsc7#15.10.16.00.00#Coal and lignite and peat#15.10.00.00.00
+unspsc7#15.10.16.01.00#Coal#15.10.16.00.00
+unspsc7#15.10.16.02.00#Lignite#15.10.16.00.00
+unspsc7#15.10.16.03.00#Peat#15.10.16.00.00
+unspsc7#15.10.16.04.00#Coke#15.10.16.00.00
+unspsc7#15.10.16.05.00#Charcoal#15.10.16.00.00
+unspsc7#15.11.00.00.00#Gaseous fuels and additives#15.00.00.00.00
+unspsc7#15.11.15.00.00#Gaseous fuels#15.11.00.00.00
+unspsc7#15.11.15.01.00#Propane#15.11.15.00.00
+unspsc7#15.11.15.02.00#Methane#15.11.15.00.00
+unspsc7#15.11.15.03.00#Propylene#15.11.15.00.00
+unspsc7#15.11.15.04.00#Ethylene#15.11.15.00.00
+unspsc7#15.11.15.05.00#Butane#15.11.15.00.00
+unspsc7#15.11.15.06.00#Acetylene#15.11.15.00.00
+unspsc7#15.11.15.07.00#Water gas or producer gas#15.11.15.00.00
+unspsc7#15.11.15.08.00#Coal gas#15.11.15.00.00
+unspsc7#15.11.15.09.00#Liquified petroleum gas#15.11.15.00.00
+unspsc7#15.11.15.10.00#Fuel additives#15.11.15.00.00
+unspsc7#15.11.16.00.00#Fuel additives#15.11.00.00.00
+unspsc7#15.11.16.01.00#Ethanol#15.11.16.00.00
+unspsc7#15.11.16.02.00#Methanol#15.11.16.00.00
+unspsc7#15.12.00.00.00#Lubricants and oils and greases and anti corrosives#15.00.00.00.00
+unspsc7#15.12.15.00.00#Lubricating preparations#15.12.00.00.00
+unspsc7#15.12.15.01.00#Engine oil#15.12.15.00.00
+unspsc7#15.12.15.02.00#Cutting oil#15.12.15.00.00
+unspsc7#15.12.15.03.00#Gear oil#15.12.15.00.00
+unspsc7#15.12.15.04.00#Hydraulic oil#15.12.15.00.00
+unspsc7#15.12.15.05.00#Transformer oil#15.12.15.00.00
+unspsc7#15.12.15.07.00#Lithium grease#15.12.15.00.00
+unspsc7#15.12.15.08.00#Transmission oil#15.12.15.00.00
+unspsc7#15.12.15.09.00#Brake oil#15.12.15.00.00
+unspsc7#15.12.15.10.00#Antigalling#15.12.15.00.00
+unspsc7#15.12.15.11.00#Assembly pastes#15.12.15.00.00
+unspsc7#15.12.15.12.00#Anti adhesives#15.12.15.00.00
+unspsc7#15.12.15.13.00#Graphite lubricants#15.12.15.00.00
+unspsc7#15.12.15.14.00#Spray lubricants#15.12.15.00.00
+unspsc7#15.12.15.15.00#Anti seize or anti stain compounds#15.12.15.00.00
+unspsc7#15.12.15.16.00#Leak stop#15.12.15.00.00
+unspsc7#15.12.16.00.00#Waxes#15.12.00.00.00
+unspsc7#15.12.16.01.00#Paraffin wax#15.12.16.00.00
+unspsc7#15.12.16.02.00#Sealing wax#15.12.16.00.00
+unspsc7#15.12.16.03.00#Olefin wax#15.12.16.00.00
+unspsc7#15.12.17.00.00#Specialty lubricants#15.12.00.00.00
+unspsc7#15.12.17.01.00#Petrolatum#15.12.17.00.00
+unspsc7#15.12.18.00.00#Anti corrosives#15.12.00.00.00
+unspsc7#15.12.18.01.00#Moisture repellent#15.12.18.00.00
+unspsc7#15.12.18.02.00#Anti corrosion lubricant#15.12.18.00.00
+unspsc7#15.12.18.03.00#Rust remover#15.12.18.00.00
+unspsc7#15.12.18.04.00#Rust proofing preparation#15.12.18.00.00
+unspsc7#15.12.18.05.00#Anti weld pastes#15.12.18.00.00
+unspsc7#15.12.19.00.00#Greases#15.12.00.00.00
+unspsc7#15.12.19.01.00#Silicone grease#15.12.19.00.00
+unspsc7#15.12.19.02.00#Grease#15.12.19.00.00
+unspsc7#15.12.19.03.00#Teflon grease#15.12.19.00.00
+unspsc7#15.12.19.04.00#Wool grease#15.12.19.00.00
+unspsc7#15.13.00.00.00#Fuel for nuclear reactors#15.00.00.00.00
+unspsc7#15.13.15.00.00#Nuclear fuel#15.13.00.00.00
+unspsc7#15.13.15.02.00#Depleted uranium#15.13.15.00.00
+unspsc7#15.13.15.03.00#Enriched uranium#15.13.15.00.00
+unspsc7#15.13.15.04.00#Iridium#15.13.15.00.00
+unspsc7#15.13.15.05.00#Enriched plutonium#15.13.15.00.00
+unspsc7#15.13.15.06.00#Depleted plutonium#15.13.15.00.00
+unspsc7#15.13.16.00.00#Fission fuel assemblies#15.13.00.00.00
+unspsc7#15.13.16.01.00#Nuclear fuel rod#15.13.16.00.00
+unspsc7#20.00.00.00.00#Mining Machinery and Accessories#20.00.00.00.00
+unspsc7#20.10.00.00.00#Mining and quarrying machinery and equipment#20.00.00.00.00
+unspsc7#20.10.15.00.00#Cutting equipment#20.10.00.00.00
+unspsc7#20.10.15.01.00#Continuous mining equipment#20.10.15.00.00
+unspsc7#20.10.15.02.00#Longwall shears#20.10.15.00.00
+unspsc7#20.10.15.03.00#Coal cutters#20.10.15.00.00
+unspsc7#20.10.15.04.00#Rock cutters#20.10.15.00.00
+unspsc7#20.10.16.00.00#Screens and feeding equipment#20.10.00.00.00
+unspsc7#20.10.16.01.00#Screens#20.10.16.00.00
+unspsc7#20.10.16.02.00#Feeders#20.10.16.00.00
+unspsc7#20.10.17.00.00#Crushers and breakers and grinders#20.10.00.00.00
+unspsc7#20.10.17.01.00#Rock crushers#20.10.17.00.00
+unspsc7#20.10.17.02.00#Roll crushers#20.10.17.00.00
+unspsc7#20.10.17.03.00#Cone crushers#20.10.17.00.00
+unspsc7#20.10.17.04.00#Gyratory crushers#20.10.17.00.00
+unspsc7#20.10.17.05.00#Impact crushers#20.10.17.00.00
+unspsc7#20.10.17.06.00#Jaw crushers#20.10.17.00.00
+unspsc7#20.10.17.07.00#Crushing plants#20.10.17.00.00
+unspsc7#20.10.17.08.00#Rod mills#20.10.17.00.00
+unspsc7#20.10.17.09.00#Ball mills#20.10.17.00.00
+unspsc7#20.10.17.10.00#Pulverizing machinery#20.10.17.00.00
+unspsc7#20.10.17.11.00#Rock breakers#20.10.17.00.00
+unspsc7#20.10.17.12.00#Earth grinders#20.10.17.00.00
+unspsc7#20.10.17.13.00#Cyclone or vortex grinders#20.10.17.00.00
+unspsc7#20.11.00.00.00#Well drilling and operation equipment#20.00.00.00.00
+unspsc7#20.11.15.00.00#Drilling and exploration equipment#20.11.00.00.00
+unspsc7#20.11.15.01.00#Gas well drilling equipment#20.11.15.00.00
+unspsc7#20.11.15.02.00#Oil well drilling equipment#20.11.15.00.00
+unspsc7#20.11.15.03.00#Subsea system equipment#20.11.15.00.00
+unspsc7#20.11.15.04.00#Water well drilling equipment#20.11.15.00.00
+unspsc7#20.11.15.05.00#Uranium exploration equipment#20.11.15.00.00
+unspsc7#20.11.15.06.00#Wellhead equipment#20.11.15.00.00
+unspsc7#20.11.15.07.00#Mud or workover fluid equipment#20.11.15.00.00
+unspsc7#20.11.15.08.00#Seismic equipment#20.11.15.00.00
+unspsc7#20.11.16.00.00#Drilling and operation machinery#20.11.00.00.00
+unspsc7#20.11.16.01.00#Boring or sinking machinery#20.11.16.00.00
+unspsc7#20.11.16.02.00#Downhole assembly machinery#20.11.16.00.00
+unspsc7#20.11.16.03.00#Hammer drills#20.11.16.00.00
+unspsc7#20.11.16.04.00#Crawler drills#20.11.16.00.00
+unspsc7#20.11.16.05.00#Rock drills#20.11.16.00.00
+unspsc7#20.11.16.06.00#Pneumatic vibrators#20.11.16.00.00
+unspsc7#20.11.16.07.00#Tunneling machinery#20.11.16.00.00
+unspsc7#20.11.16.08.00#Striking hammers#20.11.16.00.00
+unspsc7#20.11.16.09.00#Sinker drills#20.11.16.00.00
+unspsc7#20.11.16.10.00#Sewer inspection machinery#20.11.16.00.00
+unspsc7#20.11.16.11.00#Rotary drills#20.11.16.00.00
+unspsc7#20.11.16.12.00#Drilling rigs#20.11.16.00.00
+unspsc7#20.11.16.13.00#Long hole drills#20.11.16.00.00
+unspsc7#20.11.16.14.00#Industrial drill bits#20.11.16.00.00
+unspsc7#20.11.16.15.00#Drifters#20.11.16.00.00
+unspsc7#20.11.16.16.00#Derricks#20.11.16.00.00
+unspsc7#20.11.16.17.00#Drilling carriages#20.11.16.00.00
+unspsc7#20.11.16.18.00#Downhole fishing poles#20.11.16.00.00
+unspsc7#20.11.16.19.00#Well drilling bit cones#20.11.16.00.00
+unspsc7#20.11.17.00.00#Drilling and operation accessories#20.11.00.00.00
+unspsc7#20.11.17.01.00#Audio visual instruments for well inspection#20.11.17.00.00
+unspsc7#20.11.17.02.00#Packers or tubing anchors#20.11.17.00.00
+unspsc7#20.11.17.03.00#Drilling casings#20.11.17.00.00
+unspsc7#20.11.17.04.00#Drilling screens#20.11.17.00.00
+unspsc7#20.12.00.00.00#Oil and gas drilling and exploration equipment#20.00.00.00.00
+unspsc7#20.12.10.00.00#Acidizing equipment#20.12.00.00.00
+unspsc7#20.12.10.01.00#Acidizing blending units#20.12.10.00.00
+unspsc7#20.12.10.02.00#Acidizing density sensors#20.12.10.00.00
+unspsc7#20.12.10.03.00#Acidizing pumping units#20.12.10.00.00
+unspsc7#20.12.10.04.00#Acidizing units#20.12.10.00.00
+unspsc7#20.12.10.05.00#Acidizing air piping#20.12.10.00.00
+unspsc7#20.12.10.06.00#Acidizing ball injectors#20.12.10.00.00
+unspsc7#20.12.10.07.00#Bulk liquid acid equipment#20.12.10.00.00
+unspsc7#20.12.10.08.00#Acidizing drop boxes#20.12.10.00.00
+unspsc7#20.12.10.09.00#Acidizing flow meters#20.12.10.00.00
+unspsc7#20.12.10.10.00#Acidizing junction boxes#20.12.10.00.00
+unspsc7#20.12.10.11.00#Acidizing pressure sensors#20.12.10.00.00
+unspsc7#20.12.10.12.00#Acidizing process piping#20.12.10.00.00
+unspsc7#20.12.10.13.00#Acidizing straight joints#20.12.10.00.00
+unspsc7#20.12.10.14.00#Acidizing swivels#20.12.10.00.00
+unspsc7#20.12.10.15.00#Acidizing treating irons#20.12.10.00.00
+unspsc7#20.12.10.16.00#Acidizing tree savers#20.12.10.00.00
+unspsc7#20.12.11.00.00#Cementing equipment#20.12.00.00.00
+unspsc7#20.12.11.01.00#Blending units#20.12.11.00.00
+unspsc7#20.12.11.02.00#Bridge plugs#20.12.11.00.00
+unspsc7#20.12.11.03.00#Bulk liquid cement equipment#20.12.11.00.00
+unspsc7#20.12.11.04.00#Cement bulk material equipment#20.12.11.00.00
+unspsc7#20.12.11.05.00#Cement density sensors#20.12.11.00.00
+unspsc7#20.12.11.06.00#Cement floating bulk units#20.12.11.00.00
+unspsc7#20.12.11.07.00#Cement floating equipment stage tools#20.12.11.00.00
+unspsc7#20.12.11.08.00#Cement floating equipment wiper plugs#20.12.11.00.00
+unspsc7#20.12.11.09.00#Cement pumping units#20.12.11.00.00
+unspsc7#20.12.11.10.00#Cement retainers#20.12.11.00.00
+unspsc7#20.12.11.11.00#Centralizers#20.12.11.00.00
+unspsc7#20.12.11.12.00#Express latch couplers#20.12.11.00.00
+unspsc7#20.12.11.13.00#Float collars#20.12.11.00.00
+unspsc7#20.12.11.14.00#Float shoes#20.12.11.00.00
+unspsc7#20.12.11.15.00#Oilfield cementing tools#20.12.11.00.00
+unspsc7#20.12.11.16.00#Retrievable cementing packers#20.12.11.00.00
+unspsc7#20.12.11.17.00#Safety slings#20.12.11.00.00
+unspsc7#20.12.11.18.00#Subsea cement heads#20.12.11.00.00
+unspsc7#20.12.11.19.00#Surface cement heads#20.12.11.00.00
+unspsc7#20.12.12.00.00#Fracturing equipment#20.12.00.00.00
+unspsc7#20.12.12.01.00#Bulk liquid fracturing equipment#20.12.12.00.00
+unspsc7#20.12.12.02.00#Fracturing bulk proppant equipment#20.12.12.00.00
+unspsc7#20.12.12.03.00#Fracturing control units#20.12.12.00.00
+unspsc7#20.12.12.04.00#Fracturing density sensors#20.12.12.00.00
+unspsc7#20.12.12.05.00#Fracturing manifold units#20.12.12.00.00
+unspsc7#20.12.12.06.00#Fracturing proppant conveying equipment#20.12.12.00.00
+unspsc7#20.12.12.07.00#Fracturing pumping units#20.12.12.00.00
+unspsc7#20.12.12.08.00#Fracturing slurry blending units#20.12.12.00.00
+unspsc7#20.12.12.09.00#Gel blending units#20.12.12.00.00
+unspsc7#20.12.12.10.00#Fracturing missiles#20.12.12.00.00
+unspsc7#20.12.12.11.00#Pump integrity monitors#20.12.12.00.00
+unspsc7#20.12.12.12.00#Fracturing service packers#20.12.12.00.00
+unspsc7#20.12.12.13.00#Stimulation pumping units#20.12.12.00.00
+unspsc7#20.12.13.00.00#Sand control equipment#20.12.00.00.00
+unspsc7#20.12.13.01.00#Blanking plugs#20.12.13.00.00
+unspsc7#20.12.13.02.00#Floaters#20.12.13.00.00
+unspsc7#20.12.13.03.00#Frac pack systems#20.12.13.00.00
+unspsc7#20.12.13.04.00#Gravel pack systems#20.12.13.00.00
+unspsc7#20.12.13.05.00#Guide shoes#20.12.13.00.00
+unspsc7#20.12.13.06.00#Hook up nipples#20.12.13.00.00
+unspsc7#20.12.13.07.00#Make up subs#20.12.13.00.00
+unspsc7#20.12.13.08.00#Production tubing overshots#20.12.13.00.00
+unspsc7#20.12.13.09.00#Sand control blanks#20.12.13.00.00
+unspsc7#20.12.13.10.00#Sand control bulk liquid equipment#20.12.13.00.00
+unspsc7#20.12.13.11.00#Sand control bulk proppant equipment#20.12.13.00.00
+unspsc7#20.12.13.12.00#Sand control density sensors#20.12.13.00.00
+unspsc7#20.12.13.13.00#Sand control manifold units#20.12.13.00.00
+unspsc7#20.12.13.14.00#Sand control proppant conveying equipment#20.12.13.00.00
+unspsc7#20.12.13.15.00#Sand control pumping units#20.12.13.00.00
+unspsc7#20.12.13.16.00#Sand control screens#20.12.13.00.00
+unspsc7#20.12.13.17.00#Sand control slurry blending units#20.12.13.00.00
+unspsc7#20.12.13.18.00#Sand detectors#20.12.13.00.00
+unspsc7#20.12.13.19.00#Seal assembly locators#20.12.13.00.00
+unspsc7#20.12.13.20.00#Shear joints#20.12.13.00.00
+unspsc7#20.12.13.21.00#Sleeve shifting tools#20.12.13.00.00
+unspsc7#20.12.13.22.00#Sliding sleeves#20.12.13.00.00
+unspsc7#20.12.13.23.00#Velocity strings#20.12.13.00.00
+unspsc7#20.12.14.00.00#Completion tools and equipment#20.12.00.00.00
+unspsc7#20.12.14.01.00#Ball catcher subs#20.12.14.00.00
+unspsc7#20.12.14.02.00#Blast joints#20.12.14.00.00
+unspsc7#20.12.14.03.00#Blast nipples#20.12.14.00.00
+unspsc7#20.12.14.04.00#Completion bull plugs#20.12.14.00.00
+unspsc7#20.12.14.05.00#Circulation production devices#20.12.14.00.00
+unspsc7#20.12.14.06.00#Completion test equipment#20.12.14.00.00
+unspsc7#20.12.14.07.00#Control line protectors#20.12.14.00.00
+unspsc7#20.12.14.08.00#Deflection tools#20.12.14.00.00
+unspsc7#20.12.14.09.00#Completion expansion joints#20.12.14.00.00
+unspsc7#20.12.14.10.00#Flow couplings#20.12.14.00.00
+unspsc7#20.12.14.11.00#Gas lift equipment#20.12.14.00.00
+unspsc7#20.12.14.12.00#Hanger landing tools#20.12.14.00.00
+unspsc7#20.12.14.13.00#Completion hydraulic pumps#20.12.14.00.00
+unspsc7#20.12.14.14.00#Hydraulic setting tools#20.12.14.00.00
+unspsc7#20.12.14.15.00#Injection systems#20.12.14.00.00
+unspsc7#20.12.14.16.00#Landing nipples#20.12.14.00.00
+unspsc7#20.12.14.17.00#Liner hangers#20.12.14.00.00
+unspsc7#20.12.14.18.00#Packer pulling tools#20.12.14.00.00
+unspsc7#20.12.14.19.00#Packer running tools#20.12.14.00.00
+unspsc7#20.12.14.20.00#Production packers#20.12.14.00.00
+unspsc7#20.12.14.21.00#Pump down through flow line equipment#20.12.14.00.00
+unspsc7#20.12.14.22.00#Completion safety joints#20.12.14.00.00
+unspsc7#20.12.14.23.00#Completion seal assemblies#20.12.14.00.00
+unspsc7#20.12.14.24.00#Seal bores or polished bores#20.12.14.00.00
+unspsc7#20.12.14.25.00#Side pocket mandrels#20.12.14.00.00
+unspsc7#20.12.14.26.00#Sliding sleeves#20.12.14.00.00
+unspsc7#20.12.14.27.00#Subsurface safety valves#20.12.14.00.00
+unspsc7#20.12.14.28.00#Travel joints#20.12.14.00.00
+unspsc7#20.12.14.29.00#Tubing anchors#20.12.14.00.00
+unspsc7#20.12.14.30.00#Twin flow assemblies#20.12.14.00.00
+unspsc7#20.12.15.00.00#Conventional drilling tools#20.12.00.00.00
+unspsc7#20.12.15.01.00#Blowout preventers#20.12.15.00.00
+unspsc7#20.12.15.02.00#Blowout preventer controls#20.12.15.00.00
+unspsc7#20.12.15.03.00#Casing scrapers#20.12.15.00.00
+unspsc7#20.12.15.04.00#Drill collars#20.12.15.00.00
+unspsc7#20.12.15.05.00#Coring equipment#20.12.15.00.00
+unspsc7#20.12.15.06.00#Drill pipe thread protectors#20.12.15.00.00
+unspsc7#20.12.15.07.00#Drill pipe tool joints#20.12.15.00.00
+unspsc7#20.12.15.08.00#Drill pipe#20.12.15.00.00
+unspsc7#20.12.15.09.00#Gauge rings#20.12.15.00.00
+unspsc7#20.12.15.10.00#Hole openers#20.12.15.00.00
+unspsc7#20.12.15.11.00#Hole reamers#20.12.15.00.00
+unspsc7#20.12.15.12.00#Fishing jars#20.12.15.00.00
+unspsc7#20.12.15.13.00#Downhole shock absorbers#20.12.15.00.00
+unspsc7#20.12.15.14.00#Downhole stabilizers#20.12.15.00.00
+unspsc7#20.12.15.15.00#Drilling subs#20.12.15.00.00
+unspsc7#20.12.15.16.00#Thrusters#20.12.15.00.00
+unspsc7#20.12.16.00.00#Drilling bits#20.12.00.00.00
+unspsc7#20.12.16.01.00#Fixed cutter drill bits#20.12.16.00.00
+unspsc7#20.12.16.02.00#Natural diamond drill bits#20.12.16.00.00
+unspsc7#20.12.16.03.00#Nozzle drill bits#20.12.16.00.00
+unspsc7#20.12.16.04.00#PDC bits#20.12.16.00.00
+unspsc7#20.12.16.05.00#Roller cone button insert drill bits#20.12.16.00.00
+unspsc7#20.12.16.06.00#Roller steel tooth drill bits#20.12.16.00.00
+unspsc7#20.12.17.00.00#Fishing tools#20.12.00.00.00
+unspsc7#20.12.17.01.00#Bumper subs#20.12.17.00.00
+unspsc7#20.12.17.02.00#Casing patches#20.12.17.00.00
+unspsc7#20.12.17.03.00#Jar boosters#20.12.17.00.00
+unspsc7#20.12.17.04.00#Junk subs#20.12.17.00.00
+unspsc7#20.12.17.05.00#Mills or burning shoes#20.12.17.00.00
+unspsc7#20.12.17.06.00#Overshots#20.12.17.00.00
+unspsc7#20.12.17.07.00#Oilfield fishing spears#20.12.17.00.00
+unspsc7#20.12.17.08.00#Unspecified fishing tools#20.12.17.00.00
+unspsc7#20.12.18.00.00#Directional drilling equipment#20.12.00.00.00
+unspsc7#20.12.18.01.00#Geosteering tools#20.12.18.00.00
+unspsc7#20.12.18.02.00#Mud motors#20.12.18.00.00
+unspsc7#20.12.18.03.00#Rotary steerable tools#20.12.18.00.00
+unspsc7#20.12.18.04.00#Directional drilling surface control systems#20.12.18.00.00
+unspsc7#20.12.18.05.00#Straight hole directional drilling tools#20.12.18.00.00
+unspsc7#20.12.19.00.00#Well measurement and logging equipment#20.12.00.00.00
+unspsc7#20.12.19.01.00#Acoustic tools#20.12.19.00.00
+unspsc7#20.12.19.02.00#Drilling or mud control instruments#20.12.19.00.00
+unspsc7#20.12.19.03.00#Drilling performance measurement tools#20.12.19.00.00
+unspsc7#20.12.19.04.00#Flow measurement equipment#20.12.19.00.00
+unspsc7#20.12.19.05.00#Nuclear magnetic resonance tools#20.12.19.00.00
+unspsc7#20.12.19.06.00#Nuclear tools#20.12.19.00.00
+unspsc7#20.12.19.07.00#Production logging equipment#20.12.19.00.00
+unspsc7#20.12.19.08.00#Resistivity tools#20.12.19.00.00
+unspsc7#20.12.19.09.00#Surveying systems#20.12.19.00.00
+unspsc7#20.12.19.10.00#Telemetry systems#20.12.19.00.00
+unspsc7#20.12.19.11.00#Ultrasonic tools#20.12.19.00.00
+unspsc7#20.12.19.12.00#Well logging bottom hole pressure equipment#20.12.19.00.00
+unspsc7#20.12.19.13.00#Well logging downhole test equipment#20.12.19.00.00
+unspsc7#20.12.19.14.00#Well logging units#20.12.19.00.00
+unspsc7#20.12.20.00.00#Fixturing and test equipment#20.12.00.00.00
+unspsc7#20.12.20.01.00#Drift bars#20.12.20.00.00
+unspsc7#20.12.20.02.00#Drift sleeves#20.12.20.00.00
+unspsc7#20.12.20.03.00#Drift rabbits#20.12.20.00.00
+unspsc7#20.12.20.04.00#Test fixtures#20.12.20.00.00
+unspsc7#20.12.20.05.00#Test nipples#20.12.20.00.00
+unspsc7#20.12.20.06.00#Test plugs#20.12.20.00.00
+unspsc7#20.12.21.00.00#Perforating equipment#20.12.00.00.00
+unspsc7#20.12.21.01.00#Capsule guns#20.12.21.00.00
+unspsc7#20.12.21.02.00#Casing guns#20.12.21.00.00
+unspsc7#20.12.21.03.00#Deployment heads#20.12.21.00.00
+unspsc7#20.12.21.04.00#Perforating explosives#20.12.21.00.00
+unspsc7#20.12.21.05.00#Firing heads#20.12.21.00.00
+unspsc7#20.12.21.06.00#Gun adapters#20.12.21.00.00
+unspsc7#20.12.21.07.00#High shot density guns#20.12.21.00.00
+unspsc7#20.12.21.08.00#Perforating bull plugs#20.12.21.00.00
+unspsc7#20.12.21.09.00#Plug setting tools#20.12.21.00.00
+unspsc7#20.12.21.10.00#Perforating positioning equipment#20.12.21.00.00
+unspsc7#20.12.21.11.00#Scalloped guns#20.12.21.00.00
+unspsc7#20.12.21.12.00#Tandem subs#20.12.21.00.00
+unspsc7#20.12.21.13.00#Through tubing perforation gun accessories#20.12.21.00.00
+unspsc7#20.12.21.14.00#Through tubing perforation guns#20.12.21.00.00
+unspsc7#20.12.21.15.00#Under balance vent subs#20.12.21.00.00
+unspsc7#20.12.22.00.00#Well testing equipment#20.12.00.00.00
+unspsc7#20.12.22.01.00#Flare booms#20.12.22.00.00
+unspsc7#20.12.22.02.00#Flare burners#20.12.22.00.00
+unspsc7#20.12.22.03.00#Cased hole test tools#20.12.22.00.00
+unspsc7#20.12.22.04.00#Choke manifolds#20.12.22.00.00
+unspsc7#20.12.22.05.00#Diverting manifolds#20.12.22.00.00
+unspsc7#20.12.22.06.00#Flowhead baskets#20.12.22.00.00
+unspsc7#20.12.22.07.00#Flowhead swivels#20.12.22.00.00
+unspsc7#20.12.22.08.00#Flowheads#20.12.22.00.00
+unspsc7#20.12.22.09.00#Formation shut in tools#20.12.22.00.00
+unspsc7#20.12.22.10.00#Gas flares#20.12.22.00.00
+unspsc7#20.12.22.11.00#Mud gas analyzers#20.12.22.00.00
+unspsc7#20.12.22.12.00#Oil samplers#20.12.22.00.00
+unspsc7#20.12.22.13.00#Well testing separators#20.12.22.00.00
+unspsc7#20.12.22.14.00#Well testing surface piping#20.12.22.00.00
+unspsc7#20.12.22.15.00#Surge tanks#20.12.22.00.00
+unspsc7#20.12.22.16.00#Well testing downhole tools#20.12.22.00.00
+unspsc7#20.12.23.00.00#Slickline equipment#20.12.00.00.00
+unspsc7#20.12.23.01.00#Slickline adapter heads#20.12.23.00.00
+unspsc7#20.12.23.02.00#Slickline backoffs#20.12.23.00.00
+unspsc7#20.12.23.03.00#Slickline bell guides#20.12.23.00.00
+unspsc7#20.12.23.04.00#Slickline blind boxes#20.12.23.00.00
+unspsc7#20.12.23.05.00#Slickline bottom hole pressure equipment#20.12.23.00.00
+unspsc7#20.12.23.06.00#Slickline caliper tools#20.12.23.00.00
+unspsc7#20.12.23.07.00#Slickline cement dump bailing equipment#20.12.23.00.00
+unspsc7#20.12.23.08.00#Slickline chemical cutters#20.12.23.00.00
+unspsc7#20.12.23.09.00#Slickline clamp on tool string centralizers#20.12.23.00.00
+unspsc7#20.12.23.10.00#Slickline clamp on wireline centralizers#20.12.23.00.00
+unspsc7#20.12.23.11.00#Slickline collar locators#20.12.23.00.00
+unspsc7#20.12.23.12.00#Slickline collectors#20.12.23.00.00
+unspsc7#20.12.23.13.00#Slickline colliding tools#20.12.23.00.00
+unspsc7#20.12.23.14.00#Slickline crossovers#20.12.23.00.00
+unspsc7#20.12.23.15.00#Slickline depth measurement equipment#20.12.23.00.00
+unspsc7#20.12.23.16.00#Slickline dewar flasks#20.12.23.00.00
+unspsc7#20.12.23.17.00#Slickline dipmeter tools#20.12.23.00.00
+unspsc7#20.12.23.18.00#Slickline directional tools#20.12.23.00.00
+unspsc7#20.12.23.19.00#Slickline go devil tools#20.12.23.00.00
+unspsc7#20.12.23.20.00#Slickline hole punchers#20.12.23.00.00
+unspsc7#20.12.23.21.00#Slickline jet cutters#20.12.23.00.00
+unspsc7#20.12.23.22.00#Slickline junk shots#20.12.23.00.00
+unspsc7#20.12.23.23.00#Slickline kickover tools#20.12.23.00.00
+unspsc7#20.12.23.24.00#Slickline knuckle joints#20.12.23.00.00
+unspsc7#20.12.23.25.00#Slickline lead impression blocks#20.12.23.00.00
+unspsc7#20.12.23.26.00#Slickline locator mandrels#20.12.23.00.00
+unspsc7#20.12.23.27.00#Slickline lock mandrels#20.12.23.00.00
+unspsc7#20.12.23.28.00#Slickline lubricators#20.12.23.00.00
+unspsc7#20.12.23.29.00#Slickline mechanical bailers#20.12.23.00.00
+unspsc7#20.12.23.30.00#Slickline mechanical plugbacks#20.12.23.00.00
+unspsc7#20.12.23.31.00#Other Slickline Tools#20.12.23.00.00
+unspsc7#20.12.23.32.00#Slickline paraffin scrappers#20.12.23.00.00
+unspsc7#20.12.23.33.00#Slickline rope sockets#20.12.23.00.00
+unspsc7#20.12.23.34.00#Slickline running or pulling prongs#20.12.23.00.00
+unspsc7#20.12.23.35.00#Slickline severing tools#20.12.23.00.00
+unspsc7#20.12.23.36.00#Slickline sheaves or floor blocks#20.12.23.00.00
+unspsc7#20.12.23.37.00#Slickline bottom hole pressure equipment#20.12.23.00.00
+unspsc7#20.12.23.38.00#Slickline pulling tool accessories#20.12.23.00.00
+unspsc7#20.12.23.39.00#Slickline pulling tools#20.12.23.00.00
+unspsc7#20.12.23.40.00#Slickline running tools#20.12.23.00.00
+unspsc7#20.12.23.41.00#Slickline units#20.12.23.00.00
+unspsc7#20.12.23.42.00#Slickline wire#20.12.23.00.00
+unspsc7#20.12.23.43.00#Slickline sonic tools#20.12.23.00.00
+unspsc7#20.12.23.44.00#Slickline spacer bars#20.12.23.00.00
+unspsc7#20.12.23.45.00#Slickline swages#20.12.23.00.00
+unspsc7#20.12.23.46.00#Slickline tension devices#20.12.23.00.00
+unspsc7#20.12.23.47.00#Slickline tubing plugs#20.12.23.00.00
+unspsc7#20.12.23.48.00#Slickline ultrasonic tools#20.12.23.00.00
+unspsc7#20.12.23.49.00#Wireline Grabs#20.12.23.00.00
+unspsc7#20.12.23.50.00#Wireline Jars#20.12.23.00.00
+unspsc7#20.12.23.51.00#Wireline Scrapers#20.12.23.00.00
+unspsc7#20.12.23.52.00#Wireline Spear#20.12.23.00.00
+unspsc7#20.12.23.53.00#Wireline Stems#20.12.23.00.00
+unspsc7#20.12.23.54.00#Wireline Valves#20.12.23.00.00
+unspsc7#20.12.24.00.00#Production systems equipment#20.12.00.00.00
+unspsc7#20.12.24.01.00#Cable thumpers#20.12.24.00.00
+unspsc7#20.12.24.02.00#Oilfield production evaporators#20.12.24.00.00
+unspsc7#20.12.24.03.00#Hipot testers#20.12.24.00.00
+unspsc7#20.12.24.04.00#Oilfield lapping machines#20.12.24.00.00
+unspsc7#20.12.24.05.00#Motor end lifts#20.12.24.00.00
+unspsc7#20.12.24.06.00#Oil dielectric testers#20.12.24.00.00
+unspsc7#20.12.24.07.00#Oil vacuum filling units#20.12.24.00.00
+unspsc7#20.12.24.08.00#Oilfield production shaft straighteners#20.12.24.00.00
+unspsc7#20.12.24.09.00#Oilfield production spoolers#20.12.24.00.00
+unspsc7#20.12.24.10.00#Vibration analyzers#20.12.24.00.00
+unspsc7#20.12.25.00.00#Coiled tubing equipment#20.12.00.00.00
+unspsc7#20.12.25.01.00#Blaster tools#20.12.25.00.00
+unspsc7#20.12.25.02.00#Coiled tubing truck crane units#20.12.25.00.00
+unspsc7#20.12.25.03.00#Coiled tubing units#20.12.25.00.00
+unspsc7#20.12.25.04.00#Coiled tubing hose packages#20.12.25.00.00
+unspsc7#20.12.25.05.00#Coiled tubing inflatable systems#20.12.25.00.00
+unspsc7#20.12.25.06.00#Coiled tubing injector heads#20.12.25.00.00
+unspsc7#20.12.25.07.00#Coiled tubing lifting equipment#20.12.25.00.00
+unspsc7#20.12.25.08.00#Operator houses#20.12.25.00.00
+unspsc7#20.12.25.09.00#Coiled tubing power packs#20.12.25.00.00
+unspsc7#20.12.25.10.00#Coiled tubing reels#20.12.25.00.00
+unspsc7#20.12.25.11.00#Coiled tubing spooling reels#20.12.25.00.00
+unspsc7#20.12.25.12.00#Tubing guides#20.12.25.00.00
+unspsc7#20.12.25.13.00#Wellhead hookups#20.12.25.00.00
+unspsc7#20.12.25.14.00#Wellhead support structures#20.12.25.00.00
+unspsc7#20.12.25.15.00#Oilfield coiled tubing#20.12.25.00.00
+unspsc7#20.12.26.00.00#Seismic equipment#20.12.00.00.00
+unspsc7#20.12.26.01.00#Seismic analog sensors#20.12.26.00.00
+unspsc7#20.12.26.02.00#Seismic arrays#20.12.26.00.00
+unspsc7#20.12.26.03.00#Seismic streamer cable birds#20.12.26.00.00
+unspsc7#20.12.26.04.00#Seismic drill tankers#20.12.26.00.00
+unspsc7#20.12.26.05.00#Seismic geophones#20.12.26.00.00
+unspsc7#20.12.26.06.00#Seismic gravity systems#20.12.26.00.00
+unspsc7#20.12.26.07.00#Seismic gun winch systems#20.12.26.00.00
+unspsc7#20.12.26.08.00#Seismic hydrophones#20.12.26.00.00
+unspsc7#20.12.26.09.00#Seismic impulse sources#20.12.26.00.00
+unspsc7#20.12.26.10.00#Seismic marine streamer cables#20.12.26.00.00
+unspsc7#20.12.26.11.00#Seismic ocean bottom cables#20.12.26.00.00
+unspsc7#20.12.26.12.00#Seismic magnetic systems#20.12.26.00.00
+unspsc7#20.12.26.13.00#Seismic positioning equipment#20.12.26.00.00
+unspsc7#20.12.26.14.00#Seismic rams#20.12.26.00.00
+unspsc7#20.12.26.15.00#Seismic receivers#20.12.26.00.00
+unspsc7#20.12.26.16.00#Seismic refraction systems#20.12.26.00.00
+unspsc7#20.12.26.17.00#Seismic source controllers#20.12.26.00.00
+unspsc7#20.12.26.18.00#Seismic spooling devices#20.12.26.00.00
+unspsc7#20.12.26.19.00#Seismic tow blocks#20.12.26.00.00
+unspsc7#20.12.26.20.00#Seismic tow points#20.12.26.00.00
+unspsc7#20.12.26.21.00#Seismic vibrators#20.12.26.00.00
+unspsc7#20.12.26.22.00#Seismic recording systems#20.12.26.00.00
+unspsc7#20.12.26.23.00#Seismic data processing systems#20.12.26.00.00
+unspsc7#20.12.27.00.00#Oil country tubular goods#20.12.00.00.00
+unspsc7#20.12.27.01.00#Oil country casing#20.12.27.00.00
+unspsc7#20.12.27.02.00#Oil country couplings#20.12.27.00.00
+unspsc7#20.12.27.03.00#Oil country pup joints#20.12.27.00.00
+unspsc7#20.12.27.04.00#Oil country tubing#20.12.27.00.00
+unspsc7#20.12.27.05.00#Oil country pipe coatings#20.12.27.00.00
+unspsc7#20.12.27.06.00#Conductor casing#20.12.27.00.00
+unspsc7#20.12.27.07.00#Conductor casing running equipment#20.12.27.00.00
+unspsc7#20.12.27.08.00#Drill pipe crossovers#20.12.27.00.00
+unspsc7#20.12.27.09.00#Oil country thread protectors#20.12.27.00.00
+unspsc7#20.12.28.00.00#Drilling and workover rigs and equipment#20.12.00.00.00
+unspsc7#20.12.28.01.00#Mud agitators#20.12.28.00.00
+unspsc7#20.12.28.02.00#Mud tanks#20.12.28.00.00
+unspsc7#20.12.28.03.00#Air drilling equipment#20.12.28.00.00
+unspsc7#20.12.28.04.00#Barge rigs#20.12.28.00.00
+unspsc7#20.12.28.05.00#Blow out preventers#20.12.28.00.00
+unspsc7#20.12.28.06.00#Fluid diverters#20.12.28.00.00
+unspsc7#20.12.28.07.00#Drawworks#20.12.28.00.00
+unspsc7#20.12.28.08.00#Drill floor equipment#20.12.28.00.00
+unspsc7#20.12.28.09.00#Drill swivels#20.12.28.00.00
+unspsc7#20.12.28.10.00#Drilling rig ships#20.12.28.00.00
+unspsc7#20.12.28.11.00#Drill rig elevators#20.12.28.00.00
+unspsc7#20.12.28.12.00#Drill rig bails#20.12.28.00.00
+unspsc7#20.12.28.13.00#Hydraulic workover units#20.12.28.00.00
+unspsc7#20.12.28.14.00#Drill rig jacking systems#20.12.28.00.00
+unspsc7#20.12.28.15.00#Jackup marine drilling rigs#20.12.28.00.00
+unspsc7#20.12.28.16.00#Kelly bushings#20.12.28.00.00
+unspsc7#20.12.28.17.00#Kelly valves#20.12.28.00.00
+unspsc7#20.12.28.18.00#Kelly wipers#20.12.28.00.00
+unspsc7#20.12.28.19.00#Kellys#20.12.28.00.00
+unspsc7#20.12.28.20.00#Land drilling rigs#20.12.28.00.00
+unspsc7#20.12.28.21.00#Mud cleaning equipment#20.12.28.00.00
+unspsc7#20.12.28.22.00#Mud manifolds#20.12.28.00.00
+unspsc7#20.12.28.23.00#Mud mixers#20.12.28.00.00
+unspsc7#20.12.28.24.00#Pipe handling equipment#20.12.28.00.00
+unspsc7#20.12.28.25.00#Platform drilling rigs#20.12.28.00.00
+unspsc7#20.12.28.26.00#Power swivel or top drives#20.12.28.00.00
+unspsc7#20.12.28.27.00#Rig skids#20.12.28.00.00
+unspsc7#20.12.28.28.00#Drill rig risers#20.12.28.00.00
+unspsc7#20.12.28.29.00#Drill rig rotary tables#20.12.28.00.00
+unspsc7#20.12.28.30.00#Self elevating workover platforms#20.12.28.00.00
+unspsc7#20.12.28.31.00#Semi submersible drilling rigs#20.12.28.00.00
+unspsc7#20.12.28.32.00#Drill floor slips#20.12.28.00.00
+unspsc7#20.12.28.33.00#Makeup tongs#20.12.28.00.00
+unspsc7#20.12.28.34.00#Iron roughnecks#20.12.28.00.00
+unspsc7#20.12.28.35.00#Traveling equipment#20.12.28.00.00
+unspsc7#20.12.28.36.00#Workover boats#20.12.28.00.00
+unspsc7#20.12.28.37.00#Workover rigs#20.12.28.00.00
+unspsc7#20.12.29.00.00#Surface data logging equipment#20.12.00.00.00
+unspsc7#20.12.29.01.00#Surface data logging conduits#20.12.29.00.00
+unspsc7#20.12.29.02.00#Surface data logging sensors#20.12.29.00.00
+unspsc7#20.12.29.03.00#Surface data logging units#20.12.29.00.00
+unspsc7#20.12.30.00.00#Multilateral equipment#20.12.00.00.00
+unspsc7#20.12.30.01.00#Multilateral casing#20.12.30.00.00
+unspsc7#20.12.30.02.00#Multilateral junctions#20.12.30.00.00
+unspsc7#20.12.30.03.00#Multilateral packers#20.12.30.00.00
+unspsc7#20.13.00.00.00#Oil and gas drilling and operation materials#20.00.00.00.00
+unspsc7#20.13.10.00.00#Drilling mud and materials#20.13.00.00.00
+unspsc7#20.13.10.01.00#Filtration control agents#20.13.10.00.00
+unspsc7#20.13.10.02.00#Fluid spacers#20.13.10.00.00
+unspsc7#20.13.10.03.00#Lost circulation agents#20.13.10.00.00
+unspsc7#20.13.10.04.00#Oil based muds#20.13.10.00.00
+unspsc7#20.13.10.05.00#Rate of penetration enhancers#20.13.10.00.00
+unspsc7#20.13.10.06.00#Spotting fluids#20.13.10.00.00
+unspsc7#20.13.10.07.00#Synthetic based muds#20.13.10.00.00
+unspsc7#20.13.10.08.00#Mud thinning agents#20.13.10.00.00
+unspsc7#20.13.10.09.00#Water based muds#20.13.10.00.00
+unspsc7#20.13.10.10.00#Mud weighting agents#20.13.10.00.00
+unspsc7#20.13.11.00.00#Well fracturing proppants#20.13.00.00.00
+unspsc7#20.13.11.01.00#Ceramic proppants#20.13.11.00.00
+unspsc7#20.13.11.02.00#Fracturing sands#20.13.11.00.00
+unspsc7#20.13.11.03.00#Resin coated ceramic proppants#20.13.11.00.00
+unspsc7#20.13.11.04.00#Resin coated fracturing sands#20.13.11.00.00
+unspsc7#20.13.11.05.00#Resin coated sintered bauxites#20.13.11.00.00
+unspsc7#20.13.11.06.00#Sintered bauxites#20.13.11.00.00
+unspsc7#20.13.12.00.00#Completion fluids#20.13.00.00.00
+unspsc7#20.13.12.01.00#Divalent brines#20.13.12.00.00
+unspsc7#20.13.12.02.00#Monovalent brines#20.13.12.00.00
+unspsc7#20.13.13.00.00#Oil well cement#20.13.00.00.00
+unspsc7#20.13.13.01.00#Oil well bulk cement#20.13.13.00.00
+unspsc7#20.13.13.02.00#Oil well class a type I cement#20.13.13.00.00
+unspsc7#20.13.13.03.00#Oil well class b type II cement#20.13.13.00.00
+unspsc7#20.13.13.04.00#Oil well class c cement#20.13.13.00.00
+unspsc7#20.13.13.05.00#Oil well class g cement#20.13.13.00.00
+unspsc7#20.13.13.06.00#Oil well class h cement#20.13.13.00.00
+unspsc7#20.13.13.07.00#Oil well lightweight cement#20.13.13.00.00
+unspsc7#20.13.13.08.00#Oil well standard fine type III cement#20.13.13.00.00
+unspsc7#20.14.00.00.00#Oil and gas operating and production equipment#20.00.00.00.00
+unspsc7#20.14.10.00.00#Wellhead equipment#20.14.00.00.00
+unspsc7#20.14.10.01.00#Wellhead actuators#20.14.10.00.00
+unspsc7#20.14.10.02.00#Wellhead beam pumps#20.14.10.00.00
+unspsc7#20.14.10.03.00#Wellhead flow lines#20.14.10.00.00
+unspsc7#20.14.10.04.00#Wellhead gate valves#20.14.10.00.00
+unspsc7#20.14.10.05.00#Wellhead production chokes#20.14.10.00.00
+unspsc7#20.14.10.06.00#Wellhead sub surface flow or christmas trees#20.14.10.00.00
+unspsc7#20.14.10.07.00#Wellhead surface flow or christmas trees#20.14.10.00.00
+unspsc7#20.14.10.08.00#Wellhead surface safety valves#20.14.10.00.00
+unspsc7#20.14.11.00.00#Chemical injection systems#20.14.00.00.00
+unspsc7#20.14.11.01.00#Paraffin injection systems#20.14.11.00.00
+unspsc7#20.14.12.00.00#Desanding equipment#20.14.00.00.00
+unspsc7#20.14.12.01.00#Production desanding equipment#20.14.12.00.00
+unspsc7#20.14.13.00.00#Downhole jet pumps and anchors#20.14.00.00.00
+unspsc7#20.14.13.01.00#Downhole jet pumps#20.14.13.00.00
+unspsc7#20.14.14.00.00#Downhole production accessories#20.14.00.00.00
+unspsc7#20.14.14.01.00#Tubing stops#20.14.14.00.00
+unspsc7#20.14.15.00.00#Downhole pumps#20.14.00.00.00
+unspsc7#20.14.15.01.00#Electric downhole pumps#20.14.15.00.00
+unspsc7#20.14.16.00.00#Export pumps#20.14.00.00.00
+unspsc7#20.14.16.01.00#Pneumatic export pumps#20.14.16.00.00
+unspsc7#20.14.17.00.00#Offshore production and storage platforms#20.14.00.00.00
+unspsc7#20.14.17.01.00#Fixed offshore production platforms#20.14.17.00.00
+unspsc7#20.14.17.02.00#Floating offshore production platforms#20.14.17.00.00
+unspsc7#20.14.17.03.00#Floating offshore storage platforms#20.14.17.00.00
+unspsc7#20.14.17.04.00#Floating offshore tension leg production platforms#20.14.17.00.00
+unspsc7#20.14.17.05.00#Floating offshore tension leg storage platforms#20.14.17.00.00
+unspsc7#20.14.18.00.00#Well production flow measurement meters#20.14.00.00.00
+unspsc7#20.14.18.01.00#Well production gas turbine meters#20.14.18.00.00
+unspsc7#20.14.19.00.00#Gas treating equipment#20.14.00.00.00
+unspsc7#20.14.19.01.00#Oil well production gas treating equipment#20.14.19.00.00
+unspsc7#20.14.20.00.00#Glycol regenerators#20.14.00.00.00
+unspsc7#20.14.20.01.00#Oil well glycol regenerators#20.14.20.00.00
+unspsc7#20.14.21.00.00#Heater treaters#20.14.00.00.00
+unspsc7#20.14.21.01.00#Oil well heater treaters#20.14.21.00.00
+unspsc7#20.14.22.00.00#Line heaters#20.14.00.00.00
+unspsc7#20.14.22.01.00#Electrical line heaters#20.14.22.00.00
+unspsc7#20.14.23.00.00#Production injection skids#20.14.00.00.00
+unspsc7#20.14.23.01.00#Pneumatic methanol injections skids#20.14.23.00.00
+unspsc7#20.14.24.00.00#Ocean floor equipment#20.14.00.00.00
+unspsc7#20.14.24.01.00#Subsea production wellhead equipment#20.14.24.00.00
+unspsc7#20.14.25.00.00#Produced water treating equipment#20.14.00.00.00
+unspsc7#20.14.25.01.00#Oil field water oil centrifuges#20.14.25.00.00
+unspsc7#20.14.26.00.00#Production control system instrumentation#20.14.00.00.00
+unspsc7#20.14.26.01.00#Wireless production control systems#20.14.26.00.00
+unspsc7#20.14.27.00.00#Pumping units#20.14.00.00.00
+unspsc7#20.14.27.01.00#Sucker rod pump jacks#20.14.27.00.00
+unspsc7#20.14.27.02.00#Rod pumps#20.14.27.00.00
+unspsc7#20.14.27.03.00#Mechanical rod pumps#20.14.27.00.00
+unspsc7#20.14.28.00.00#Production separators#20.14.00.00.00
+unspsc7#20.14.28.01.00#Oil water separators#20.14.28.00.00
+unspsc7#20.14.29.00.00#Storage vessels and tanks#20.14.00.00.00
+unspsc7#20.14.29.01.00#Oil storage tanks#20.14.29.00.00
+unspsc7#20.14.30.00.00#Sucker rods#20.14.00.00.00
+unspsc7#20.14.30.01.00#Alloy steel sucker rods#20.14.30.00.00
+unspsc7#20.14.30.02.00#Pony rods#20.14.30.00.00
+unspsc7#21.00.00.00.00#Farming and Fishing and Forestry and Wildlife Machinery and Accessories#21.00.00.00.00
+unspsc7#21.10.00.00.00#Agricultural and forestry and landscape machinery and equipment#21.00.00.00.00
+unspsc7#21.10.15.00.00#Agricultural machinery for soil preparation#21.10.00.00.00
+unspsc7#21.10.15.01.00#Ploughs#21.10.15.00.00
+unspsc7#21.10.15.02.00#Harrows#21.10.15.00.00
+unspsc7#21.10.15.03.00#Cultivators#21.10.15.00.00
+unspsc7#21.10.15.04.00#Weeders#21.10.15.00.00
+unspsc7#21.10.15.05.00#Hoeing machines#21.10.15.00.00
+unspsc7#21.10.15.06.00#Graders or land levelers#21.10.15.00.00
+unspsc7#21.10.15.07.00#Agricultural rollers#21.10.15.00.00
+unspsc7#21.10.15.08.00#Rollers for lawn or sports grounds#21.10.15.00.00
+unspsc7#21.10.15.09.00#Trencher drainage machine#21.10.15.00.00
+unspsc7#21.10.15.10.00#Irrigation pipes or tubes#21.10.15.00.00
+unspsc7#21.10.15.11.00#Irrigation trickles#21.10.15.00.00
+unspsc7#21.10.15.12.00#Irrigation overheads#21.10.15.00.00
+unspsc7#21.10.15.13.00#Disks#21.10.15.00.00
+unspsc7#21.10.15.14.00#Subsoilers#21.10.15.00.00
+unspsc7#21.10.15.15.00#Hedge clippers#21.10.15.00.00
+unspsc7#21.10.15.16.00#Dibblers#21.10.15.00.00
+unspsc7#21.10.16.00.00#Agricultural machinery for planting and seeding#21.10.00.00.00
+unspsc7#21.10.16.01.00#Planters#21.10.16.00.00
+unspsc7#21.10.16.02.00#Transplanters#21.10.16.00.00
+unspsc7#21.10.16.03.00#Grain drills#21.10.16.00.00
+unspsc7#21.10.16.04.00#Seed drills#21.10.16.00.00
+unspsc7#21.10.16.05.00#Seed treating equipment#21.10.16.00.00
+unspsc7#21.10.16.06.00#Hole diggers#21.10.16.00.00
+unspsc7#21.10.17.00.00#Agricultural machinery for harvesting#21.10.00.00.00
+unspsc7#21.10.17.01.00#Mowers#21.10.17.00.00
+unspsc7#21.10.17.02.00#Haymaking machinery#21.10.17.00.00
+unspsc7#21.10.17.03.00#Harvesters#21.10.17.00.00
+unspsc7#21.10.17.04.00#Combine harvesters#21.10.17.00.00
+unspsc7#21.10.17.05.00#Threshing machines#21.10.17.00.00
+unspsc7#21.10.18.00.00#Dispersing and spraying appliances for agriculture#21.10.00.00.00
+unspsc7#21.10.18.01.00#Sprayers#21.10.18.00.00
+unspsc7#21.10.18.02.00#Dusters#21.10.18.00.00
+unspsc7#21.10.18.03.00#Water sprinklers#21.10.18.00.00
+unspsc7#21.10.18.04.00#Fertilizer spreaders or distributors#21.10.18.00.00
+unspsc7#21.10.18.05.00#Fog or mist generators#21.10.18.00.00
+unspsc7#21.10.18.06.00#Composter#21.10.18.00.00
+unspsc7#21.10.18.07.00#Pollination equipment or supplies#21.10.18.00.00
+unspsc7#21.10.18.08.00#Frost protection equipment#21.10.18.00.00
+unspsc7#21.10.19.00.00#Poultry and livestock equipment#21.10.00.00.00
+unspsc7#21.10.19.01.00#Milking machines#21.10.19.00.00
+unspsc7#21.10.19.02.00#Animal husbandry equipment#21.10.19.00.00
+unspsc7#21.10.19.03.00#Incubators or brooders for poultry#21.10.19.00.00
+unspsc7#21.10.19.04.00#Feed mixers#21.10.19.00.00
+unspsc7#21.10.19.05.00#Livestock identification equipment#21.10.19.00.00
+unspsc7#21.10.19.06.00#Egg inspection or collecting equipment#21.10.19.00.00
+unspsc7#21.10.19.07.00#Animal watering machines#21.10.19.00.00
+unspsc7#21.10.19.08.00#Milk cooling tanks#21.10.19.00.00
+unspsc7#21.10.19.09.00#Animal shearing or clipping equipment#21.10.19.00.00
+unspsc7#21.10.20.00.00#Agricultural machinery for cleaning and sorting and grading#21.10.00.00.00
+unspsc7#21.10.20.01.00#Cleaning machines for seed or grain or dried leguminous vegetables#21.10.20.00.00
+unspsc7#21.10.20.02.00#Sorting machines for seed or grain or dried leguminous vegetables#21.10.20.00.00
+unspsc7#21.10.20.03.00#Grading machines for seed or grain or dried leguminous vegetables#21.10.20.00.00
+unspsc7#21.10.20.04.00#Rice cleaning or hulling equipment#21.10.20.00.00
+unspsc7#21.10.20.05.00#Grinding mills#21.10.20.00.00
+unspsc7#21.10.20.06.00#Hammer mills#21.10.20.00.00
+unspsc7#21.10.21.00.00#Agricultural processing machinery and equipment#21.10.00.00.00
+unspsc7#21.10.21.01.00#Agricultural briquetting or pelting machines#21.10.21.00.00
+unspsc7#21.10.22.00.00#Forestry machinery and equipment#21.10.00.00.00
+unspsc7#21.10.22.01.00#Decorticators#21.10.22.00.00
+unspsc7#21.10.22.02.00#Lumbering equipment#21.10.22.00.00
+unspsc7#21.10.22.03.00#Reforestation equipment#21.10.22.00.00
+unspsc7#21.10.22.04.00#Forestry saws#21.10.22.00.00
+unspsc7#21.10.22.05.00#Forestry skidders#21.10.22.00.00
+unspsc7#21.10.22.06.00#Forestry increment borers#21.10.22.00.00
+unspsc7#21.10.22.07.00#Forestry ipsometer#21.10.22.00.00
+unspsc7#21.10.23.00.00#Greenhouse equipment#21.10.00.00.00
+unspsc7#21.10.23.01.00#Greenhouse irrigation equipment#21.10.23.00.00
+unspsc7#21.10.23.02.00#Greenhouse pots#21.10.23.00.00
+unspsc7#21.10.23.03.00#Greenhouse ventilation equipment#21.10.23.00.00
+unspsc7#21.10.23.04.00#Greenhouse isolation equipment#21.10.23.00.00
+unspsc7#21.10.24.00.00#Insect equipment#21.10.00.00.00
+unspsc7#21.10.24.01.00#Beekeeping equipment#21.10.24.00.00
+unspsc7#21.10.24.02.00#Silkworm equipment#21.10.24.00.00
+unspsc7#21.10.24.03.00#Butterfly breeding equipment#21.10.24.00.00
+unspsc7#21.10.24.04.00#Beetle breeding equipment#21.10.24.00.00
+unspsc7#21.11.00.00.00#Fishing and aquaculture equipment#21.00.00.00.00
+unspsc7#21.11.15.00.00#Commercial fishing equipment#21.11.00.00.00
+unspsc7#21.11.15.01.00#Commercial fish hooks#21.11.15.00.00
+unspsc7#21.11.15.02.00#Commercial fishing reels#21.11.15.00.00
+unspsc7#21.11.15.03.00#Commercial fishing line tackle#21.11.15.00.00
+unspsc7#21.11.15.04.00#Commercial fishing nets#21.11.15.00.00
+unspsc7#21.11.15.06.00#Commercial fishing floats#21.11.15.00.00
+unspsc7#21.11.15.07.00#Commercial sinkers or weights#21.11.15.00.00
+unspsc7#21.11.15.08.00#Fishing net haulers#21.11.15.00.00
+unspsc7#21.11.16.00.00#Aquaculture equipment#21.11.00.00.00
+unspsc7#21.11.16.01.00#Marine hatchery equipment#21.11.16.00.00
+unspsc7#21.11.16.02.00#Pisciculture supplies#21.11.16.00.00
+unspsc7#22.00.00.00.00#Building and Construction Machinery and Accessories#22.00.00.00.00
+unspsc7#22.10.00.00.00#Heavy construction machinery and equipment#22.00.00.00.00
+unspsc7#22.10.15.00.00#Earth moving machinery#22.10.00.00.00
+unspsc7#22.10.15.01.00#Front end loaders#22.10.15.00.00
+unspsc7#22.10.15.02.00#Graders#22.10.15.00.00
+unspsc7#22.10.15.03.00#Loaders#22.10.15.00.00
+unspsc7#22.10.15.04.00#Pile drivers#22.10.15.00.00
+unspsc7#22.10.15.05.00#Rollers#22.10.15.00.00
+unspsc7#22.10.15.06.00#Earthmoving scrapers#22.10.15.00.00
+unspsc7#22.10.15.07.00#Tampers#22.10.15.00.00
+unspsc7#22.10.15.08.00#Trenching machines#22.10.15.00.00
+unspsc7#22.10.15.09.00#Backhoes#22.10.15.00.00
+unspsc7#22.10.15.10.00#Bulldozers#22.10.15.00.00
+unspsc7#22.10.15.11.00#Compactors#22.10.15.00.00
+unspsc7#22.10.15.13.00#Draglines#22.10.15.00.00
+unspsc7#22.10.15.14.00#Dredgers#22.10.15.00.00
+unspsc7#22.10.15.15.00#Excavators#22.10.15.00.00
+unspsc7#22.10.15.16.00#Ditchers#22.10.15.00.00
+unspsc7#22.10.15.17.00#Cherry pickers#22.10.15.00.00
+unspsc7#22.10.15.18.00#Elevating scrapers#22.10.15.00.00
+unspsc7#22.10.15.19.00#Twin engine open bowl scrapers#22.10.15.00.00
+unspsc7#22.10.15.20.00#Twin engine elevating scrapers#22.10.15.00.00
+unspsc7#22.10.15.21.00#Pulled scrapers#22.10.15.00.00
+unspsc7#22.10.15.22.00#Track bulldozers#22.10.15.00.00
+unspsc7#22.10.15.23.00#Wheel bulldozers#22.10.15.00.00
+unspsc7#22.10.15.24.00#Mobile excavators#22.10.15.00.00
+unspsc7#22.10.15.25.00#Wheel excavators#22.10.15.00.00
+unspsc7#22.10.15.26.00#Track excavators#22.10.15.00.00
+unspsc7#22.10.15.27.00#Integrated tool carriers#22.10.15.00.00
+unspsc7#22.10.15.28.00#Wheel loaders#22.10.15.00.00
+unspsc7#22.10.15.29.00#Skid steer loaders#22.10.15.00.00
+unspsc7#22.10.15.30.00#Open bowl scrapers#22.10.15.00.00
+unspsc7#22.10.15.31.00#Snow blowers#22.10.15.00.00
+unspsc7#22.10.15.32.00#Track loaders#22.10.15.00.00
+unspsc7#22.10.16.00.00#Paving equipment#22.10.00.00.00
+unspsc7#22.10.16.02.00#Ramming equipment#22.10.16.00.00
+unspsc7#22.10.16.03.00#Road wideners#22.10.16.00.00
+unspsc7#22.10.16.04.00#Vibratory plates#22.10.16.00.00
+unspsc7#22.10.16.05.00#Asphalt finishers#22.10.16.00.00
+unspsc7#22.10.16.06.00#Chip Spreaders#22.10.16.00.00
+unspsc7#22.10.17.00.00#Heavy equipment components#22.10.00.00.00
+unspsc7#22.10.17.01.00#Earthmoving shovels#22.10.17.00.00
+unspsc7#22.10.17.02.00#Earthmoving buckets#22.10.17.00.00
+unspsc7#22.10.17.03.00#Earthmoving blades#22.10.17.00.00
+unspsc7#22.10.17.04.00#Scarifiers#22.10.17.00.00
+unspsc7#22.10.18.00.00#Aerial lifts#22.10.00.00.00
+unspsc7#22.10.18.01.00#Manlift or personnel lift#22.10.18.00.00
+unspsc7#22.10.18.02.00#Platform lift#22.10.18.00.00
+unspsc7#22.10.18.03.00#Articulating boom lift#22.10.18.00.00
+unspsc7#22.10.18.04.00#Telescoping boom lift#22.10.18.00.00
+unspsc7#23.00.00.00.00#Industrial Manufacturing and Processing Machinery and Accessories#23.00.00.00.00
+unspsc7#23.10.00.00.00#Raw materials processing machinery#23.00.00.00.00
+unspsc7#23.10.15.00.00#Machinery for working wood and stone and ceramic and the like#23.10.00.00.00
+unspsc7#23.10.15.01.00#Coping machines#23.10.15.00.00
+unspsc7#23.10.15.02.00#Drilling machines#23.10.15.00.00
+unspsc7#23.10.15.03.00#Broaching machines#23.10.15.00.00
+unspsc7#23.10.15.04.00#Bending machines#23.10.15.00.00
+unspsc7#23.10.15.05.00#Boring machines#23.10.15.00.00
+unspsc7#23.10.15.06.00#Grinding machines#23.10.15.00.00
+unspsc7#23.10.15.07.00#Molding machines#23.10.15.00.00
+unspsc7#23.10.15.08.00#Cutting machines#23.10.15.00.00
+unspsc7#23.10.15.09.00#Sanding machines#23.10.15.00.00
+unspsc7#23.10.15.10.00#Polishing machines#23.10.15.00.00
+unspsc7#23.10.15.11.00#Turning machines#23.10.15.00.00
+unspsc7#23.10.15.12.00#Sawing machines#23.10.15.00.00
+unspsc7#23.10.15.13.00#Milling machines#23.10.15.00.00
+unspsc7#23.10.15.14.00#Planing machines#23.10.15.00.00
+unspsc7#23.10.15.15.00#Engraving machines#23.10.15.00.00
+unspsc7#23.10.15.16.00#Glass bead peener machines#23.10.15.00.00
+unspsc7#23.10.15.17.00#Grit blast machines#23.10.15.00.00
+unspsc7#23.10.15.18.00#Shot peen machine#23.10.15.00.00
+unspsc7#23.10.15.19.00#Robot machines#23.10.15.00.00
+unspsc7#23.10.15.20.00#Ram electro discharge machines#23.10.15.00.00
+unspsc7#23.10.15.21.00#Wire cathode electrode discharge machine#23.10.15.00.00
+unspsc7#23.10.15.22.00#Chip breaker#23.10.15.00.00
+unspsc7#23.11.00.00.00#Petroleum processing machinery#23.00.00.00.00
+unspsc7#23.11.15.00.00#Petroleum distilling and processing machinery and equipment#23.11.00.00.00
+unspsc7#23.11.15.01.00#Distillate hydroprocessing equipment#23.11.15.00.00
+unspsc7#23.11.15.02.00#Crude distilling machinery#23.11.15.00.00
+unspsc7#23.11.15.03.00#Catalytic cracking equipment#23.11.15.00.00
+unspsc7#23.11.15.04.00#Hydrocracking equipment#23.11.15.00.00
+unspsc7#23.11.15.05.00#Isomerization machinery#23.11.15.00.00
+unspsc7#23.11.15.06.00#Coking machinery#23.11.15.00.00
+unspsc7#23.11.15.07.00#Gas recovery machinery#23.11.15.00.00
+unspsc7#23.11.16.00.00#Hydrotreating machinery#23.11.00.00.00
+unspsc7#23.11.16.01.00#Naptha hydrotreater#23.11.16.00.00
+unspsc7#23.11.16.02.00#Distillate hydrotreater#23.11.16.00.00
+unspsc7#23.11.16.03.00#Catalytic feed hydrotreater#23.11.16.00.00
+unspsc7#23.11.16.04.00#Lube hydrotreater#23.11.16.00.00
+unspsc7#23.11.16.05.00#Gasoline hydrotreater#23.11.16.00.00
+unspsc7#23.11.16.06.00#Resid hydrotreater#23.11.16.00.00
+unspsc7#23.12.00.00.00#Textile and fabric machinery and accessories#23.00.00.00.00
+unspsc7#23.12.15.00.00#Textile processing machinery and accessories#23.12.00.00.00
+unspsc7#23.12.15.01.00#Embroidery making machines#23.12.15.00.00
+unspsc7#23.12.15.02.00#Felting machines#23.12.15.00.00
+unspsc7#23.12.15.03.00#Winding or reeling or spooling machines#23.12.15.00.00
+unspsc7#23.12.15.04.00#Twisting machines#23.12.15.00.00
+unspsc7#23.12.15.05.00#Stitch bonding machines#23.12.15.00.00
+unspsc7#23.12.15.06.00#Knitting machines#23.12.15.00.00
+unspsc7#23.12.15.07.00#Weaving machines#23.12.15.00.00
+unspsc7#23.12.15.08.00#Finishing machines#23.12.15.00.00
+unspsc7#23.12.15.09.00#Spinning machines#23.12.15.00.00
+unspsc7#23.12.15.10.00#Lace making machines#23.12.15.00.00
+unspsc7#23.12.16.00.00#Textile working machinery and equipment and accessories#23.12.00.00.00
+unspsc7#23.12.16.01.00#Button covering machines#23.12.16.00.00
+unspsc7#23.12.16.02.00#Button sewing machines#23.12.16.00.00
+unspsc7#23.12.16.03.00#Buttonhole machines#23.12.16.00.00
+unspsc7#23.12.16.04.00#Cloth cutting machines#23.12.16.00.00
+unspsc7#23.12.16.05.00#Cushion filling machines#23.12.16.00.00
+unspsc7#23.12.16.06.00#Folding or rewinding machines#23.12.16.00.00
+unspsc7#23.12.16.07.00#Bleaching machines#23.12.16.00.00
+unspsc7#23.12.16.08.00#Fabric or cloth folding machines#23.12.16.00.00
+unspsc7#23.12.16.09.00#Reeling or unreeling machines#23.12.16.00.00
+unspsc7#23.12.16.10.00#Dyeing machines#23.12.16.00.00
+unspsc7#23.12.16.11.00#Cutting or pinking machines#23.12.16.00.00
+unspsc7#23.12.16.12.00#Sewing machine needles#23.12.16.00.00
+unspsc7#23.12.16.13.00#Silk processing machines#23.12.16.00.00
+unspsc7#23.12.16.14.00#Sewing machines#23.12.16.00.00
+unspsc7#23.12.16.15.00#Fabric cutting tables#23.12.16.00.00
+unspsc7#23.13.00.00.00#Lapidary machinery and equipment#23.00.00.00.00
+unspsc7#23.13.15.00.00#Grinding and sanding and polishing equipment and supplies#23.13.00.00.00
+unspsc7#23.13.15.01.00#Abrasive compounds#23.13.15.00.00
+unspsc7#23.13.15.02.00#Felt wheels#23.13.15.00.00
+unspsc7#23.13.15.03.00#Grinding wheels#23.13.15.00.00
+unspsc7#23.13.15.04.00#Polishing compounds#23.13.15.00.00
+unspsc7#23.13.15.05.00#Polishing heads#23.13.15.00.00
+unspsc7#23.13.15.06.00#Polishing wheels#23.13.15.00.00
+unspsc7#23.13.15.07.00#Sanding cloths#23.13.15.00.00
+unspsc7#23.13.15.08.00#Sanding drums#23.13.15.00.00
+unspsc7#23.13.15.09.00#Tumblers or polishers#23.13.15.00.00
+unspsc7#23.13.15.10.00#Tumbling supplies or media#23.13.15.00.00
+unspsc7#23.13.15.11.00#Water swivels#23.13.15.00.00
+unspsc7#23.13.15.12.00#Water trays#23.13.15.00.00
+unspsc7#23.13.15.13.00#Sanding blocks#23.13.15.00.00
+unspsc7#23.13.15.14.00#Mounted stones#23.13.15.00.00
+unspsc7#23.13.15.15.00#Grinding wheel dressers#23.13.15.00.00
+unspsc7#23.13.16.00.00#Faceting equipment and accessories#23.13.00.00.00
+unspsc7#23.13.16.01.00#Faceting accessories#23.13.16.00.00
+unspsc7#23.13.16.02.00#Faceting machines#23.13.16.00.00
+unspsc7#23.13.16.03.00#Faceting laps#23.13.16.00.00
+unspsc7#23.13.16.04.00#Faceting saws#23.13.16.00.00
+unspsc7#23.13.17.00.00#Cabbing equipment#23.13.00.00.00
+unspsc7#23.13.17.01.00#Cabbing accessories#23.13.17.00.00
+unspsc7#23.13.17.02.00#Cabbing belts#23.13.17.00.00
+unspsc7#23.13.17.03.00#Cabbing discs#23.13.17.00.00
+unspsc7#23.13.17.04.00#Cabochon machines#23.13.17.00.00
+unspsc7#23.14.00.00.00#Leatherworking repairing machinery and equipment#23.00.00.00.00
+unspsc7#23.14.16.00.00#Leather preparing machinery and accessories#23.14.00.00.00
+unspsc7#23.14.16.01.00#Leather fleshing machines#23.14.16.00.00
+unspsc7#23.14.16.02.00#Leather tanning machines#23.14.16.00.00
+unspsc7#23.14.16.03.00#Leather dyeing machines#23.14.16.00.00
+unspsc7#23.14.16.04.00#Leather degreasing machines#23.14.16.00.00
+unspsc7#23.14.16.05.00#Leather presses#23.14.16.00.00
+unspsc7#23.14.17.00.00#Leather working and repairing machinery and accessories#23.14.00.00.00
+unspsc7#23.14.17.01.00#Leather cutting machines#23.14.17.00.00
+unspsc7#23.14.17.02.00#Leather riveting machines#23.14.17.00.00
+unspsc7#23.14.17.03.00#Leather nailing machines#23.14.17.00.00
+unspsc7#23.14.17.04.00#Leatherworking workshop equipment#23.14.17.00.00
+unspsc7#23.15.00.00.00#Industrial process machinery and equipment and supplies#23.00.00.00.00
+unspsc7#23.15.15.00.00#Rubber and plastic processing machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.15.01.00#Blow molding machines#23.15.15.00.00
+unspsc7#23.15.15.02.00#Coating machines#23.15.15.00.00
+unspsc7#23.15.15.03.00#Extruders#23.15.15.00.00
+unspsc7#23.15.15.04.00#Injection molding machines#23.15.15.00.00
+unspsc7#23.15.15.05.00#Rubber or plastic mixers#23.15.15.00.00
+unspsc7#23.15.15.06.00#Rubber or plastic presses#23.15.15.00.00
+unspsc7#23.15.15.07.00#Thermo forming machines#23.15.15.00.00
+unspsc7#23.15.15.08.00#Vacuum molding machines#23.15.15.00.00
+unspsc7#23.15.15.09.00#Vulcanizing machines#23.15.15.00.00
+unspsc7#23.15.15.10.00#Plastic cutting machinery#23.15.15.00.00
+unspsc7#23.15.15.11.00#Plastic grinding machinery#23.15.15.00.00
+unspsc7#23.15.15.12.00#Rubber or plastic mills#23.15.15.00.00
+unspsc7#23.15.15.13.00#Rubber or plastic extrusion dies#23.15.15.00.00
+unspsc7#23.15.15.14.00#Plastic injection molds#23.15.15.00.00
+unspsc7#23.15.15.15.00#Thermoforming molds#23.15.15.00.00
+unspsc7#23.15.15.16.00#Ejector pins#23.15.15.00.00
+unspsc7#23.15.16.00.00#Cement and ceramics and glass industry machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.16.01.00#Blowers or dryers#23.15.16.00.00
+unspsc7#23.15.16.02.00#Crushers#23.15.16.00.00
+unspsc7#23.15.16.03.00#Fusion welding or glass drawing machines#23.15.16.00.00
+unspsc7#23.15.16.04.00#Grinding or polishing machines#23.15.16.00.00
+unspsc7#23.15.16.05.00#Mixing or kneading machines#23.15.16.00.00
+unspsc7#23.15.16.06.00#Cement or ceramic or glass or similar material molding machines#23.15.16.00.00
+unspsc7#23.15.16.07.00#Presses#23.15.16.00.00
+unspsc7#23.15.16.08.00#Sifters#23.15.16.00.00
+unspsc7#23.15.17.00.00#Optical industry machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.17.01.00#Lens grinding machines#23.15.17.00.00
+unspsc7#23.15.17.02.00#Lens measuring equipment#23.15.17.00.00
+unspsc7#23.15.17.03.00#Lens polishing equipment#23.15.17.00.00
+unspsc7#23.15.17.04.00#Lens testing equipment#23.15.17.00.00
+unspsc7#23.15.17.05.00#Optical vacuum coating equipment#23.15.17.00.00
+unspsc7#23.15.18.00.00#Pharmaceutical industry machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.18.01.00#Ampoule filling equipment#23.15.18.00.00
+unspsc7#23.15.18.02.00#Bottle cappers or cotton inserters or safety seal applicators#23.15.18.00.00
+unspsc7#23.15.18.03.00#Capsulating machines#23.15.18.00.00
+unspsc7#23.15.18.04.00#Reactors or fermenters or digesters#23.15.18.00.00
+unspsc7#23.15.18.05.00#Filling or sealing auger dose machines#23.15.18.00.00
+unspsc7#23.15.18.06.00#Pharmaceutical filters or ultra filters#23.15.18.00.00
+unspsc7#23.15.18.07.00#Freezedryers or lyophilzers#23.15.18.00.00
+unspsc7#23.15.18.08.00#Pharmaceutical granulators#23.15.18.00.00
+unspsc7#23.15.18.09.00#Phamaceutical sieve or screening machines#23.15.18.00.00
+unspsc7#23.15.18.10.00#Sterile or aseptic processing or filling machines#23.15.18.00.00
+unspsc7#23.15.18.11.00#Tablet or capsule testing machines#23.15.18.00.00
+unspsc7#23.15.18.12.00#Tablet counters#23.15.18.00.00
+unspsc7#23.15.18.13.00#Tabletting machines#23.15.18.00.00
+unspsc7#23.15.18.14.00#Vaccine production equipment#23.15.18.00.00
+unspsc7#23.15.18.15.00#Vessel mixers#23.15.18.00.00
+unspsc7#23.15.19.00.00#Paper making and paper processing machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.19.01.00#Cutters#23.15.19.00.00
+unspsc7#23.15.19.02.00#Slitters#23.15.19.00.00
+unspsc7#23.15.19.03.00#Washing or dewatering machines#23.15.19.00.00
+unspsc7#23.15.19.04.00#Winders#23.15.19.00.00
+unspsc7#23.15.19.05.00#Wood pulp or dissolver machines#23.15.19.00.00
+unspsc7#23.15.19.06.00#Calenders for paper or cardboard making#23.15.19.00.00
+unspsc7#23.15.20.00.00#Web handling and control machinery and equipment and supplies#23.15.00.00.00
+unspsc7#23.15.20.01.00#Corona treaters#23.15.20.00.00
+unspsc7#23.15.20.02.00#Flame treaters#23.15.20.00.00
+unspsc7#23.15.21.00.00#Separation machinery and equipment#23.15.00.00.00
+unspsc7#23.15.21.01.00#Vibratory separation equipment and parts and screens#23.15.21.00.00
+unspsc7#23.15.21.02.00#Stationary separation equipment and parts and screens#23.15.21.00.00
+unspsc7#23.15.21.03.00#Air classification equipment and parts and screens#23.15.21.00.00
+unspsc7#23.15.21.04.00#Centifugal separation equipment or parts or screens#23.15.21.00.00
+unspsc7#23.15.22.00.00#Manufacturing tables and stands#23.15.00.00.00
+unspsc7#23.15.22.01.00#Rotary tables#23.15.22.00.00
+unspsc7#23.15.22.02.00#Stack stands#23.15.22.00.00
+unspsc7#23.15.22.03.00#Engine and component test stands#23.15.22.00.00
+unspsc7#23.15.22.04.00#Machine guarding#23.15.22.00.00
+unspsc7#23.15.23.00.00#Rotary tables#23.15.00.00.00
+unspsc7#23.15.24.00.00#Stack stands#23.15.00.00.00
+unspsc7#23.15.25.00.00#Engine and component test stands#23.15.00.00.00
+unspsc7#23.15.26.00.00#Machine guarding#23.15.00.00.00
+unspsc7#23.15.27.00.00#Air classification equipment and parts and screens#23.15.00.00.00
+unspsc7#23.15.28.00.00#Centifugal separation equipment or parts or screens#23.15.00.00.00
+unspsc7#23.15.29.00.00#Packaging machinery#23.15.00.00.00
+unspsc7#23.15.29.01.00#Wrapping machinery#23.15.29.00.00
+unspsc7#23.15.29.02.00#Form or fill or seal machinery#23.15.29.00.00
+unspsc7#23.15.29.03.00#Packaging vacuum#23.15.29.00.00
+unspsc7#23.15.30.00.00#Holding and positioning and guiding systems and devices#23.15.00.00.00
+unspsc7#23.15.30.01.00#Calibration jig#23.15.30.00.00
+unspsc7#23.15.30.02.00#Guide jig#23.15.30.00.00
+unspsc7#23.15.30.03.00#Master jig#23.15.30.00.00
+unspsc7#23.15.30.04.00#Needle jig#23.15.30.00.00
+unspsc7#23.15.30.05.00#Shaft jig#23.15.30.00.00
+unspsc7#23.15.30.06.00#Checking jig#23.15.30.00.00
+unspsc7#23.15.30.07.00#Setting jig#23.15.30.00.00
+unspsc7#23.15.30.08.00#Camera jig#23.15.30.00.00
+unspsc7#23.15.30.09.00#Pickup jig#23.15.30.00.00
+unspsc7#23.15.30.10.00#Removal jig#23.15.30.00.00
+unspsc7#23.15.30.11.00#Nozzle jig#23.15.30.00.00
+unspsc7#23.15.30.12.00#Sliding jig#23.15.30.00.00
+unspsc7#23.15.30.13.00#Centering jig#23.15.30.00.00
+unspsc7#23.15.30.14.00#Inspecting jig#23.15.30.00.00
+unspsc7#23.15.30.15.00#Feeder jig#23.15.30.00.00
+unspsc7#23.15.30.16.00#Clutch jig#23.15.30.00.00
+unspsc7#23.15.30.17.00#Alignment jig#23.15.30.00.00
+unspsc7#23.15.30.18.00#Positioning jig#23.15.30.00.00
+unspsc7#23.15.30.19.00#Lifter plate#23.15.30.00.00
+unspsc7#23.15.30.20.00#Tape guide#23.15.30.00.00
+unspsc7#23.15.30.21.00#Tape feed jaw#23.15.30.00.00
+unspsc7#23.15.30.22.00#Power feeder#23.15.30.00.00
+unspsc7#23.15.30.23.00#Feeder harness#23.15.30.00.00
+unspsc7#23.15.30.24.00#Feed jaw#23.15.30.00.00
+unspsc7#23.15.30.25.00#Mechanical gripper#23.15.30.00.00
+unspsc7#23.15.30.26.00#Holder jaw#23.15.30.00.00
+unspsc7#23.15.30.27.00#Jaw assembly#23.15.30.00.00
+unspsc7#23.15.30.28.00#Stationary jaw#23.15.30.00.00
+unspsc7#23.15.30.29.00#Jig block#23.15.30.00.00
+unspsc7#23.15.30.30.00#Linear motion guides#23.15.30.00.00
+unspsc7#23.15.30.31.00#Measuring jigs#23.15.30.00.00
+unspsc7#23.15.30.32.00#Ring jigs#23.15.30.00.00
+unspsc7#23.15.31.00.00#Industrial machinery components#23.15.00.00.00
+unspsc7#23.15.31.01.00#Pitch stopper#23.15.31.00.00
+unspsc7#23.15.31.02.00#Paper stopper#23.15.31.00.00
+unspsc7#23.15.31.03.00#Stopper pad#23.15.31.00.00
+unspsc7#23.16.00.00.00#Foundry machines and equipment and supplies#23.00.00.00.00
+unspsc7#23.16.15.00.00#Foundry machines and equipment#23.16.00.00.00
+unspsc7#23.16.15.01.00#Foundry blowers#23.16.15.00.00
+unspsc7#23.16.15.02.00#Foundry burners#23.16.15.00.00
+unspsc7#23.16.15.03.00#Core drying ovens#23.16.15.00.00
+unspsc7#23.16.15.04.00#Forging presses#23.16.15.00.00
+unspsc7#23.16.15.05.00#Hot metal mixers#23.16.15.00.00
+unspsc7#23.16.15.06.00#Foundry crucibles#23.16.15.00.00
+unspsc7#23.16.15.07.00#Foundry converters#23.16.15.00.00
+unspsc7#23.16.15.08.00#Open die forging press#23.16.15.00.00
+unspsc7#23.16.15.09.00#Forging stamping machines#23.16.15.00.00
+unspsc7#23.16.15.10.00#Casting machines#23.16.15.00.00
+unspsc7#23.16.15.11.00#Forging rolls#23.16.15.00.00
+unspsc7#23.16.15.12.00#Radial forging machines#23.16.15.00.00
+unspsc7#23.16.15.13.00#Cold forming presses#23.16.15.00.00
+unspsc7#23.16.15.14.00#Sizing or embossing presses#23.16.15.00.00
+unspsc7#23.16.15.15.00#End forging machines#23.16.15.00.00
+unspsc7#23.16.16.00.00#Foundry supplies#23.16.00.00.00
+unspsc7#23.16.16.01.00#Foundry bellows#23.16.16.00.00
+unspsc7#23.16.16.02.00#Foundry clays#23.16.16.00.00
+unspsc7#23.16.16.03.00#Foundry flasks#23.16.16.00.00
+unspsc7#23.16.16.04.00#Foundry fluxes#23.16.16.00.00
+unspsc7#23.16.16.05.00#Foundry ladles#23.16.16.00.00
+unspsc7#23.16.16.06.00#Foundry molds#23.16.16.00.00
+unspsc7#23.16.16.07.00#Foundry sand#23.16.16.00.00
+unspsc7#23.16.16.08.00#Foundry shovels#23.16.16.00.00
+unspsc7#23.17.00.00.00#Workshop machinery and equipment and supplies#23.00.00.00.00
+unspsc7#23.17.15.00.00#Soldering and brazing and welding machinery and supplies#23.17.00.00.00
+unspsc7#23.17.15.01.00#Anti spatter sprays#23.17.15.00.00
+unspsc7#23.17.15.02.00#Gas welding or brazing rods#23.17.15.00.00
+unspsc7#23.17.15.03.00#Filler metal#23.17.15.00.00
+unspsc7#23.17.15.04.00#Blow pipes#23.17.15.00.00
+unspsc7#23.17.15.05.00#Iron powder#23.17.15.00.00
+unspsc7#23.17.15.06.00#Soldering fluid#23.17.15.00.00
+unspsc7#23.17.15.07.00#Soldering irons or guns#23.17.15.00.00
+unspsc7#23.17.15.08.00#Welders#23.17.15.00.00
+unspsc7#23.17.15.09.00#Solder#23.17.15.00.00
+unspsc7#23.17.15.10.00#Welding wire#23.17.15.00.00
+unspsc7#23.17.15.11.00#Welding tools#23.17.15.00.00
+unspsc7#23.17.15.12.00#Welding rods#23.17.15.00.00
+unspsc7#23.17.15.13.00#Welding rectifiers#23.17.15.00.00
+unspsc7#23.17.15.14.00#Welding generators#23.17.15.00.00
+unspsc7#23.17.15.15.00#Welding electrodes#23.17.15.00.00
+unspsc7#23.17.15.17.00#Blow torches#23.17.15.00.00
+unspsc7#23.17.15.18.00#Plasma welding machinery#23.17.15.00.00
+unspsc7#23.17.15.19.00#Tungsten inert gas (TIG) welding machinery#23.17.15.00.00
+unspsc7#23.17.15.20.00#Ultrasound welding machinery#23.17.15.00.00
+unspsc7#23.17.15.21.00#Laser welding machinery#23.17.15.00.00
+unspsc7#23.17.15.22.00#Soldering fluxes#23.17.15.00.00
+unspsc7#23.17.15.23.00#Temperature indicating sticks#23.17.15.00.00
+unspsc7#23.17.15.24.00#Braze rings#23.17.15.00.00
+unspsc7#23.17.15.25.00#Soldering tips#23.17.15.00.00
+unspsc7#23.17.15.26.00#Desoldering tips#23.17.15.00.00
+unspsc7#23.17.15.27.00#Desoldering braid#23.17.15.00.00
+unspsc7#23.17.15.28.00#Welding screens or curtains#23.17.15.00.00
+unspsc7#23.17.15.29.00#Welding or soldering kit#23.17.15.00.00
+unspsc7#23.17.15.30.00#Soldering or desoldering or combined stations#23.17.15.00.00
+unspsc7#23.17.15.31.00#Desoldering Gun#23.17.15.00.00
+unspsc7#23.17.16.00.00#Machine tools#23.17.00.00.00
+unspsc7#23.17.16.01.00#Boring tools#23.17.16.00.00
+unspsc7#23.17.16.02.00#Bar or rod cutters#23.17.16.00.00
+unspsc7#23.17.16.03.00#Pipe or tube cutters#23.17.16.00.00
+unspsc7#23.17.16.04.00#Wire or cable cutters#23.17.16.00.00
+unspsc7#23.17.16.05.00#Deburring equipment#23.17.16.00.00
+unspsc7#23.17.16.06.00#Lathes#23.17.16.00.00
+unspsc7#23.17.16.07.00#Lathe tools or dies#23.17.16.00.00
+unspsc7#23.17.16.08.00#Laser cutting tools#23.17.16.00.00
+unspsc7#23.17.16.09.00#Twist drills#23.17.16.00.00
+unspsc7#23.17.16.10.00#Reamers#23.17.16.00.00
+unspsc7#23.17.16.11.00#Counterbores#23.17.16.00.00
+unspsc7#23.17.16.12.00#Milling cutters#23.17.16.00.00
+unspsc7#23.17.16.13.00#Hobs#23.17.16.00.00
+unspsc7#23.17.16.14.00#Gear shapers#23.17.16.00.00
+unspsc7#23.17.16.15.00#Shaving cutters#23.17.16.00.00
+unspsc7#23.17.16.16.00#Water jet cutting machines#23.17.16.00.00
+unspsc7#23.17.16.17.00#Broaching tools#23.17.16.00.00
+unspsc7#23.17.16.18.00#Indexable inserts#23.17.16.00.00
+unspsc7#23.17.16.19.00#Boring tools#23.17.16.00.00
+unspsc7#23.17.16.20.00#Broaches#23.17.16.00.00
+unspsc7#23.17.16.21.00#Insertion tools#23.17.16.00.00
+unspsc7#23.17.16.22.00#Workshop presses#23.17.16.00.00
+unspsc7#23.17.17.00.00#Metal bending and forming machinery#23.17.00.00.00
+unspsc7#23.17.17.01.00#Tangent benders#23.17.17.00.00
+unspsc7#23.17.17.02.00#Wing benders#23.17.17.00.00
+unspsc7#23.17.17.03.00#Tube bending machinery#23.17.17.00.00
+unspsc7#23.17.17.04.00#Pipe bending mandrels#23.17.17.00.00
+unspsc7#23.17.17.05.00#Die bends#23.17.17.00.00
+unspsc7#23.17.17.06.00#Sequential forming machines#23.17.17.00.00
+unspsc7#23.17.17.07.00#Tube end finishers#23.17.17.00.00
+unspsc7#23.17.17.08.00#Machine mounting#23.17.17.00.00
+unspsc7#23.17.18.00.00#Metal fabricating dies#23.17.00.00.00
+unspsc7#23.17.18.01.00#Stamping or forming dies#23.17.18.00.00
+unspsc7#23.17.18.02.00#Die casting dies#23.17.18.00.00
+unspsc7#23.17.18.03.00#Metal extrusion dies#23.17.18.00.00
+unspsc7#23.17.18.04.00#Cutting dies or tooling#23.17.18.00.00
+unspsc7#23.17.18.05.00#Rotary dies#23.17.18.00.00
+unspsc7#23.17.18.06.00#Steel rule dies#23.17.18.00.00
+unspsc7#23.17.19.00.00#Special tooling fixtures#23.17.00.00.00
+unspsc7#23.17.19.01.00#Holding fixtures#23.17.19.00.00
+unspsc7#23.17.19.02.00#Gauges and inspection fixtures#23.17.19.00.00
+unspsc7#23.17.19.03.00#Fabricated tooling fixtures#23.17.19.00.00
+unspsc7#23.17.19.04.00#Casting tooling#23.17.19.00.00
+unspsc7#23.17.19.05.00#Forging tooling#23.17.19.00.00
+unspsc7#23.17.19.06.00#Assembly or disassembly tooling#23.17.19.00.00
+unspsc7#23.17.20.00.00#Metal working machinery attachments#23.17.00.00.00
+unspsc7#23.17.20.01.00#Burrs#23.17.20.00.00
+unspsc7#23.17.20.02.00#Form Relief#23.17.20.00.00
+unspsc7#23.17.20.03.00#Machine threading taps#23.17.20.00.00
+unspsc7#23.17.20.04.00#Machine threading dies#23.17.20.00.00
+unspsc7#23.17.20.05.00#Machine end mills#23.17.20.00.00
+unspsc7#23.17.20.06.00#Metal stamps or punches#23.17.20.00.00
+unspsc7#23.17.20.07.00#Metal cutting band saw blades#23.17.20.00.00
+unspsc7#23.17.20.08.00#Metal cutting circular saw blades#23.17.20.00.00
+unspsc7#23.17.20.09.00#Carbide inserts#23.17.20.00.00
+unspsc7#23.17.20.10.00#Ceramic inserts#23.17.20.00.00
+unspsc7#23.17.20.11.00#Steel inserts#23.17.20.00.00
+unspsc7#23.17.20.12.00#Diamond inserts#23.17.20.00.00
+unspsc7#23.17.20.13.00#Threading mills#23.17.20.00.00
+unspsc7#23.17.21.00.00#Holding fixtures#23.17.00.00.00
+unspsc7#23.17.22.00.00#Gauges and inspection fixtures#23.17.00.00.00
+unspsc7#23.17.23.00.00#Fabricated tooling fixtures#23.17.00.00.00
+unspsc7#23.17.24.00.00#Casting tooling#23.17.00.00.00
+unspsc7#23.17.25.00.00#Forging tooling#23.17.00.00.00
+unspsc7#23.17.26.00.00#Assembly or disassembly tooling#23.17.00.00.00
+unspsc7#23.18.00.00.00#Industrial food and beverage equipment#23.00.00.00.00
+unspsc7#23.18.15.00.00#Food preparation machinery#23.18.00.00.00
+unspsc7#23.18.15.01.00#Filling machinery#23.18.15.00.00
+unspsc7#23.18.15.02.00#Milling machinery#23.18.15.00.00
+unspsc7#23.18.15.03.00#Mixing machinery#23.18.15.00.00
+unspsc7#23.18.15.04.00#Sifting machinery#23.18.15.00.00
+unspsc7#23.18.15.05.00#Dehydrating machinery#23.18.15.00.00
+unspsc7#23.18.15.06.00#Washing machinery#23.18.15.00.00
+unspsc7#23.18.15.07.00#Crushing machinery#23.18.15.00.00
+unspsc7#23.18.15.08.00#Blanching machinery#23.18.15.00.00
+unspsc7#23.18.15.09.00#Sorting machinery#23.18.15.00.00
+unspsc7#23.18.15.10.00#Meat tyers#23.18.15.00.00
+unspsc7#23.18.16.00.00#Food cutting machinery#23.18.00.00.00
+unspsc7#23.18.16.01.00#Dicing machinery#23.18.16.00.00
+unspsc7#23.18.16.02.00#Slicing machinery#23.18.16.00.00
+unspsc7#23.18.16.03.00#Chopping machinery#23.18.16.00.00
+unspsc7#23.18.16.04.00#Cutting machinery#23.18.16.00.00
+unspsc7#23.18.16.05.00#Grating machinery#23.18.16.00.00
+unspsc7#23.18.16.06.00#Peeling machinery#23.18.16.00.00
+unspsc7#23.18.17.00.00#Food cooking and smoking machinery#23.18.00.00.00
+unspsc7#23.18.17.01.00#Smoking machinery#23.18.17.00.00
+unspsc7#23.18.17.02.00#Roasting machinery#23.18.17.00.00
+unspsc7#23.18.17.03.00#Cooking machinery#23.18.17.00.00
+unspsc7#23.18.17.04.00#Steaming machinery#23.18.17.00.00
+unspsc7#23.18.18.00.00#Industrial beverage processing machinery#23.18.00.00.00
+unspsc7#23.18.18.01.00#Coffee brewing equipment or supplies#23.18.18.00.00
+unspsc7#23.18.18.02.00#Juicing machinery#23.18.18.00.00
+unspsc7#23.18.18.03.00#Ice making machines#23.18.18.00.00
+unspsc7#23.18.18.04.00#Ice cream machines#23.18.18.00.00
+unspsc7#23.19.00.00.00#Mixers and their parts and accessories#23.00.00.00.00
+unspsc7#23.19.10.00.00#Batch mixers#23.19.00.00.00
+unspsc7#23.19.10.01.00#Change can mixers#23.19.10.00.00
+unspsc7#23.19.10.02.00#Helical blade mixer#23.19.10.00.00
+unspsc7#23.19.10.03.00#Double arm kneading mixers#23.19.10.00.00
+unspsc7#23.19.10.04.00#Intensive mixers#23.19.10.00.00
+unspsc7#23.19.10.05.00#Roll mixers#23.19.10.00.00
+unspsc7#23.19.11.00.00#Continuous mixers#23.19.00.00.00
+unspsc7#23.19.11.01.00#Single screw mixers#23.19.11.00.00
+unspsc7#23.19.11.02.00#Twin screw extruder#23.19.11.00.00
+unspsc7#23.20.00.00.00#Mass transfer equipment#23.00.00.00.00
+unspsc7#23.20.10.00.00#Gas liquid contacting systems#23.20.00.00.00
+unspsc7#23.20.10.01.00#Plate columns#23.20.10.00.00
+unspsc7#23.20.10.02.00#Packed columns#23.20.10.00.00
+unspsc7#23.20.10.03.00#Liquid dispersed contactor#23.20.10.00.00
+unspsc7#23.20.10.04.00#Wetted wall column#23.20.10.00.00
+unspsc7#23.20.10.05.00#Bubble columns#23.20.10.00.00
+unspsc7#23.20.11.00.00#Adsorption and ion exchange#23.20.00.00.00
+unspsc7#23.20.11.01.00#Adsorber vessel#23.20.11.00.00
+unspsc7#23.20.11.02.00#Ambient pressure adsorber vessel#23.20.11.00.00
+unspsc7#23.21.00.00.00#Electronic manufacturing machinery and equipment and accessories#23.00.00.00.00
+unspsc7#23.21.10.00.00#Electronic assembly machinery and support equipment#23.21.00.00.00
+unspsc7#23.21.10.01.00#Chip placers#23.21.10.00.00
+unspsc7#23.21.10.02.00#Glue dispensing machinery#23.21.10.00.00
+unspsc7#24.00.00.00.00#Material Handling and Conditioning and Storage Machinery and their Accessories and Supplies#24.00.00.00.00
+unspsc7#24.10.00.00.00#Material handling machinery and equipment#24.00.00.00.00
+unspsc7#24.10.15.00.00#Industrial trucks#24.10.00.00.00
+unspsc7#24.10.15.01.00#Carts#24.10.15.00.00
+unspsc7#24.10.15.02.00#Bulk transporters#24.10.15.00.00
+unspsc7#24.10.15.03.00#Dollies#24.10.15.00.00
+unspsc7#24.10.15.04.00#Hand trucks or accessories#24.10.15.00.00
+unspsc7#24.10.15.05.00#Pallet trucks#24.10.15.00.00
+unspsc7#24.10.15.06.00#Pushcarts#24.10.15.00.00
+unspsc7#24.10.15.07.00#Wheelbarrows#24.10.15.00.00
+unspsc7#24.10.15.08.00#Creepers#24.10.15.00.00
+unspsc7#24.10.15.09.00#Wagons#24.10.15.00.00
+unspsc7#24.10.15.10.00#Tilt trucks#24.10.15.00.00
+unspsc7#24.10.15.11.00#Shelf trolleys#24.10.15.00.00
+unspsc7#24.10.16.00.00#Lifting equipment and accessories#24.10.00.00.00
+unspsc7#24.10.16.01.00#Elevators#24.10.16.00.00
+unspsc7#24.10.16.02.00#Hoists#24.10.16.00.00
+unspsc7#24.10.16.03.00#Forklifts#24.10.16.00.00
+unspsc7#24.10.16.04.00#Lifts#24.10.16.00.00
+unspsc7#24.10.16.05.00#Loading equipment#24.10.16.00.00
+unspsc7#24.10.16.06.00#Stackers#24.10.16.00.00
+unspsc7#24.10.16.07.00#Cranes#24.10.16.00.00
+unspsc7#24.10.16.08.00#Winches#24.10.16.00.00
+unspsc7#24.10.16.09.00#Tilts#24.10.16.00.00
+unspsc7#24.10.16.10.00#Manipulators#24.10.16.00.00
+unspsc7#24.10.16.11.00#Slings#24.10.16.00.00
+unspsc7#24.10.16.12.00#Jacks#24.10.16.00.00
+unspsc7#24.10.16.13.00#Blocks or pulleys#24.10.16.00.00
+unspsc7#24.10.16.14.00#Air bags for loading#24.10.16.00.00
+unspsc7#24.10.16.15.00#Loading ramps#24.10.16.00.00
+unspsc7#24.10.16.16.00#Below the hook device#24.10.16.00.00
+unspsc7#24.10.16.17.00#Scissor lift#24.10.16.00.00
+unspsc7#24.10.16.18.00#Pipe layer#24.10.16.00.00
+unspsc7#24.10.16.19.00#Bridge cranes#24.10.16.00.00
+unspsc7#24.10.16.20.00#Track cranes#24.10.16.00.00
+unspsc7#24.10.16.21.00#All terrain cranes#24.10.16.00.00
+unspsc7#24.10.16.22.00#Rough terrain cranes#24.10.16.00.00
+unspsc7#24.10.16.23.00#Tower cranes#24.10.16.00.00
+unspsc7#24.10.16.24.00#Hydraulic truck cranes#24.10.16.00.00
+unspsc7#24.10.16.25.00#Conventional truck cranes#24.10.16.00.00
+unspsc7#24.10.16.26.00#Escalator or walkways#24.10.16.00.00
+unspsc7#24.10.16.27.00#Girder trolleys#24.10.16.00.00
+unspsc7#24.10.16.28.00#Adjustable forks#24.10.16.00.00
+unspsc7#24.10.16.29.00#Forklift accessories or supplies#24.10.16.00.00
+unspsc7#24.10.16.30.00#Workshop cranes#24.10.16.00.00
+unspsc7#24.10.16.31.00#Suction cups#24.10.16.00.00
+unspsc7#24.10.16.32.00#Side shifts#24.10.16.00.00
+unspsc7#24.10.17.00.00#Conveyors and accessories#24.10.00.00.00
+unspsc7#24.10.17.01.00#Conveyor roller#24.10.17.00.00
+unspsc7#24.10.17.02.00#Ball transfer tables#24.10.17.00.00
+unspsc7#24.10.17.03.00#Rock bins#24.10.17.00.00
+unspsc7#24.10.17.04.00#Conveyor feeders#24.10.17.00.00
+unspsc7#24.10.17.05.00#Conveyor screw#24.10.17.00.00
+unspsc7#24.10.17.06.00#Trolleys or accessories#24.10.17.00.00
+unspsc7#24.10.17.07.00#Conveyor rails#24.10.17.00.00
+unspsc7#24.10.17.08.00#Extendable conveyors#24.10.17.00.00
+unspsc7#24.10.17.09.00#Roller conveyors#24.10.17.00.00
+unspsc7#24.10.17.10.00#Package stops#24.10.17.00.00
+unspsc7#24.10.17.11.00#Turntables#24.10.17.00.00
+unspsc7#24.10.17.12.00#Belt conveyors#24.10.17.00.00
+unspsc7#24.10.17.13.00#Bucket conveyors#24.10.17.00.00
+unspsc7#24.10.17.14.00#Air conveyors#24.10.17.00.00
+unspsc7#24.10.17.15.00#Conveyor belting#24.10.17.00.00
+unspsc7#24.10.17.16.00#Conveyor pulleys#24.10.17.00.00
+unspsc7#24.10.17.17.00#Conveyor idlers#24.10.17.00.00
+unspsc7#24.10.17.18.00#Conveyor belt lacing or fasteners#24.10.17.00.00
+unspsc7#24.10.17.19.00#Conveyor belt brushes#24.10.17.00.00
+unspsc7#24.10.17.20.00#Wear strips#24.10.17.00.00
+unspsc7#24.10.17.21.00#Trolley lid#24.10.17.00.00
+unspsc7#24.10.17.22.00#Chain conveyors#24.10.17.00.00
+unspsc7#24.10.18.00.00#Dock equipment#24.10.00.00.00
+unspsc7#24.10.18.01.00#Dock levelers#24.10.18.00.00
+unspsc7#24.10.18.02.00#Dock seals#24.10.18.00.00
+unspsc7#24.10.18.03.00#Dock ramps#24.10.18.00.00
+unspsc7#24.10.18.04.00#Strip doors#24.10.18.00.00
+unspsc7#24.10.18.05.00#Dock bumpers#24.10.18.00.00
+unspsc7#24.10.18.06.00#Dock ladders#24.10.18.00.00
+unspsc7#24.10.18.07.00#Dock plates#24.10.18.00.00
+unspsc7#24.10.18.08.00#Wheel chocks#24.10.18.00.00
+unspsc7#24.10.18.09.00#Dock rails and accessories#24.10.18.00.00
+unspsc7#24.10.19.00.00#Drum handling equipment#24.10.00.00.00
+unspsc7#24.10.19.01.00#Drum openers#24.10.19.00.00
+unspsc7#24.10.19.02.00#Drum grabs#24.10.19.00.00
+unspsc7#24.10.19.03.00#Drum lifters#24.10.19.00.00
+unspsc7#24.10.19.04.00#Drum cradles#24.10.19.00.00
+unspsc7#24.10.19.05.00#Spill deck#24.10.19.00.00
+unspsc7#24.10.19.06.00#Drum recuperators#24.10.19.00.00
+unspsc7#24.10.19.07.00#Spill containment supports#24.10.19.00.00
+unspsc7#24.10.20.00.00#Shelving and storage#24.10.00.00.00
+unspsc7#24.10.20.01.00#Rack systems for rack mount electronic equipment#24.10.20.00.00
+unspsc7#24.10.20.02.00#Bin handlers#24.10.20.00.00
+unspsc7#24.10.20.03.00#Pallets#24.10.20.00.00
+unspsc7#24.10.20.04.00#Storage racks or shelves#24.10.20.00.00
+unspsc7#24.10.20.05.00#Automated storage or retrieval systems#24.10.20.00.00
+unspsc7#24.10.20.06.00#Work benches#24.10.20.00.00
+unspsc7#24.10.20.07.00#Reel storage shelves#24.10.20.00.00
+unspsc7#24.10.20.08.00#Portable reel holders#24.10.20.00.00
+unspsc7#24.10.21.00.00#Warehousing equipment and supplies#24.10.00.00.00
+unspsc7#24.10.21.01.00#Cargo handling equipment#24.10.21.00.00
+unspsc7#24.10.21.02.00#Warehouse carousels#24.10.21.00.00
+unspsc7#24.10.21.03.00#Warehouse casers#24.10.21.00.00
+unspsc7#24.10.21.04.00#Depalletizers#24.10.21.00.00
+unspsc7#24.10.21.05.00#Palletizers#24.10.21.00.00
+unspsc7#24.10.21.06.00#Industrial shrink wrap equipment#24.10.21.00.00
+unspsc7#24.10.21.07.00#Cartoning machinery#24.10.21.00.00
+unspsc7#24.10.21.08.00#Packaging compactors#24.10.21.00.00
+unspsc7#24.10.22.00.00#Packing tools#24.10.00.00.00
+unspsc7#24.10.22.01.00#Stretch film dispensers#24.10.22.00.00
+unspsc7#24.10.22.02.00#Box sealing tape dispensers#24.10.22.00.00
+unspsc7#24.10.22.03.00#Bag sealing tools and equipment#24.10.22.00.00
+unspsc7#24.10.22.04.00#Strapping dispenser#24.10.22.00.00
+unspsc7#24.10.22.05.00#Strapping tensioners or sealers#24.10.22.00.00
+unspsc7#24.10.22.06.00#Carton forming machines#24.10.22.00.00
+unspsc7#24.10.22.07.00#Taping machines#24.10.22.00.00
+unspsc7#24.11.00.00.00#Containers and storage#24.00.00.00.00
+unspsc7#24.11.15.00.00#Bags#24.11.00.00.00
+unspsc7#24.11.15.01.00#Canvas bags#24.11.15.00.00
+unspsc7#24.11.15.02.00#Paper bags#24.11.15.00.00
+unspsc7#24.11.15.03.00#Plastic bags#24.11.15.00.00
+unspsc7#24.11.15.04.00#Pouches#24.11.15.00.00
+unspsc7#24.11.15.05.00#Flexible intermediate bulk containers#24.11.15.00.00
+unspsc7#24.11.15.06.00#Laundry nets or bags#24.11.15.00.00
+unspsc7#24.11.15.07.00#Tool bags#24.11.15.00.00
+unspsc7#24.11.15.08.00#Tent bag#24.11.15.00.00
+unspsc7#24.11.16.00.00#Covers and caps#24.11.00.00.00
+unspsc7#24.11.18.00.00#Tanks and cylinders and their accessories#24.11.00.00.00
+unspsc7#24.11.18.01.00#Reservoirs#24.11.18.00.00
+unspsc7#24.11.18.02.00#Air or gas tanks or cylinders#24.11.18.00.00
+unspsc7#24.11.18.03.00#Storage tanks#24.11.18.00.00
+unspsc7#24.11.18.04.00#Calibrating tanks#24.11.18.00.00
+unspsc7#24.11.18.05.00#Chemical tanks#24.11.18.00.00
+unspsc7#24.11.18.06.00#Dip tanks#24.11.18.00.00
+unspsc7#24.11.18.07.00#Expansion tanks#24.11.18.00.00
+unspsc7#24.11.18.08.00#Fuel storage tanks#24.11.18.00.00
+unspsc7#24.11.18.09.00#Processing tanks#24.11.18.00.00
+unspsc7#24.11.18.10.00#Water storage tanks#24.11.18.00.00
+unspsc7#24.11.18.11.00#Carboys#24.11.18.00.00
+unspsc7#24.11.18.12.00#Containment basin#24.11.18.00.00
+unspsc7#24.11.18.13.00#Rinse tanks#24.11.18.00.00
+unspsc7#24.11.20.00.00#Bins and baskets#24.11.00.00.00
+unspsc7#24.11.20.01.00#Bins#24.11.20.00.00
+unspsc7#24.11.20.02.00#Baskets#24.11.20.00.00
+unspsc7#24.11.20.03.00#Non metallic bins#24.11.20.00.00
+unspsc7#24.11.20.04.00#Metallic bins#24.11.20.00.00
+unspsc7#24.11.20.05.00#Metallic baskets#24.11.20.00.00
+unspsc7#24.11.20.06.00#Non metallic baskets#24.11.20.00.00
+unspsc7#24.11.21.00.00#Casks and barrels and drums#24.11.00.00.00
+unspsc7#24.11.21.01.00#Casks#24.11.21.00.00
+unspsc7#24.11.21.02.00#Barrels#24.11.21.00.00
+unspsc7#24.11.21.03.00#Stainless steel drums#24.11.21.00.00
+unspsc7#24.11.21.04.00#Steel drums#24.11.21.00.00
+unspsc7#24.11.21.05.00#Polyethylene drums#24.11.21.00.00
+unspsc7#24.11.21.06.00#Composite drums#24.11.21.00.00
+unspsc7#24.11.21.07.00#Fiber drums#24.11.21.00.00
+unspsc7#24.11.21.08.00#Metallic drums#24.11.21.00.00
+unspsc7#24.11.21.09.00#Non metallic drums#24.11.21.00.00
+unspsc7#24.11.21.10.00#Intermediate bulk containers#24.11.21.00.00
+unspsc7#24.11.21.11.00#Stabilizer#24.11.21.00.00
+unspsc7#24.11.21.12.00#Drum lid#24.11.21.00.00
+unspsc7#24.11.22.00.00#Cans and pails#24.11.00.00.00
+unspsc7#24.11.22.01.00#Steel pails#24.11.22.00.00
+unspsc7#24.11.22.02.00#Gasoline cans#24.11.22.00.00
+unspsc7#24.11.22.03.00#Plastic pails#24.11.22.00.00
+unspsc7#24.11.22.04.00#Metallic pails#24.11.22.00.00
+unspsc7#24.11.22.05.00#Non metallic pails#24.11.22.00.00
+unspsc7#24.11.22.06.00#Metallic flammable liquid cans#24.11.22.00.00
+unspsc7#24.11.22.07.00#Non metallic flammable liquid cans#24.11.22.00.00
+unspsc7#24.11.22.08.00#Spray kit#24.11.22.00.00
+unspsc7#24.11.22.09.00#Jerrycans#24.11.22.00.00
+unspsc7#24.11.24.00.00#Storage chests and cabinets and trunks#24.11.00.00.00
+unspsc7#24.11.24.01.00#Tool chests or boxes or cabinets#24.11.24.00.00
+unspsc7#24.11.24.02.00#Hazardous materials cabinets#24.11.24.00.00
+unspsc7#24.11.24.03.00#Tool belts#24.11.24.00.00
+unspsc7#24.11.24.04.00#Box#24.11.24.00.00
+unspsc7#24.11.24.05.00#Drawers#24.11.24.00.00
+unspsc7#24.11.24.06.00#Box or shelf partitions#24.11.24.00.00
+unspsc7#24.11.24.07.00#Mail boxes#24.11.24.00.00
+unspsc7#24.11.24.08.00#Antistatic boxes#24.11.24.00.00
+unspsc7#24.11.24.09.00#Box lids#24.11.24.00.00
+unspsc7#24.11.25.00.00#Corrugated and other boxes for distribution#24.11.00.00.00
+unspsc7#24.11.25.01.00#Slotted corrugated cartons#24.11.25.00.00
+unspsc7#24.11.25.02.00#One piece die cut shipping cartons#24.11.25.00.00
+unspsc7#24.11.25.03.00#Die cut corrugated shipping cartons with separate lids#24.11.25.00.00
+unspsc7#24.11.25.04.00#Molded boxes#24.11.25.00.00
+unspsc7#24.11.25.05.00#Rigid boxes#24.11.25.00.00
+unspsc7#24.11.25.06.00#Flexible intermediate bulk containers#24.11.25.00.00
+unspsc7#24.11.25.07.00#Intermediate bulk containers#24.11.25.00.00
+unspsc7#24.11.26.00.00#Liquid containers#24.11.00.00.00
+unspsc7#24.11.26.01.00#Jugs#24.11.26.00.00
+unspsc7#24.11.26.02.00#Jars#24.11.26.00.00
+unspsc7#24.12.00.00.00#Packaging materials#24.00.00.00.00
+unspsc7#24.12.15.00.00#Packaging boxes and bags and pouches#24.12.00.00.00
+unspsc7#24.12.15.01.00#Poly bags#24.12.15.00.00
+unspsc7#24.12.15.02.00#Packaging pouches or bags#24.12.15.00.00
+unspsc7#24.12.15.03.00#Packaging boxes#24.12.15.00.00
+unspsc7#24.12.15.04.00#Carded packaging#24.12.15.00.00
+unspsc7#24.12.15.05.00#Tarpaulins#24.12.15.00.00
+unspsc7#24.12.15.06.00#Conductive boxes#24.12.15.00.00
+unspsc7#24.12.15.07.00#Rigid set up boxes#24.12.15.00.00
+unspsc7#24.12.15.08.00#Egg trays#24.12.15.00.00
+unspsc7#24.12.18.00.00#Packaging cans#24.12.00.00.00
+unspsc7#24.12.18.01.00#Aerosol cans#24.12.18.00.00
+unspsc7#24.12.18.02.00#Paint or varnish cans#24.12.18.00.00
+unspsc7#24.12.18.03.00#Beverage cans#24.12.18.00.00
+unspsc7#24.12.18.04.00#Food cans#24.12.18.00.00
+unspsc7#24.12.18.05.00#Steel cans#24.12.18.00.00
+unspsc7#24.12.18.06.00#Aluminum cans#24.12.18.00.00
+unspsc7#24.12.20.00.00#Bottles#24.12.00.00.00
+unspsc7#24.12.20.01.00#Squeeze bottles#24.12.20.00.00
+unspsc7#24.12.20.02.00#Plastic bottles#24.12.20.00.00
+unspsc7#24.12.20.03.00#Glass bottles#24.12.20.00.00
+unspsc7#24.12.20.04.00#Caps or tops#24.12.20.00.00
+unspsc7#24.12.20.05.00#Applicator bottles#24.12.20.00.00
+unspsc7#24.12.20.06.00#Applicators#24.12.20.00.00
+unspsc7#24.13.00.00.00#Industrial refrigeration#24.00.00.00.00
+unspsc7#24.13.15.00.00#Industrial refrigerators#24.13.00.00.00
+unspsc7#24.13.15.01.00#Combined refrigerator freezers#24.13.15.00.00
+unspsc7#24.13.15.02.00#Liquid nitrogen refrigerators#24.13.15.00.00
+unspsc7#24.13.15.03.00#Walk in refrigerators#24.13.15.00.00
+unspsc7#24.13.15.04.00#Refrigerated containers#24.13.15.00.00
+unspsc7#24.13.15.05.00#Refrigerated vessels#24.13.15.00.00
+unspsc7#24.13.15.06.00#Refrigerated tanks#24.13.15.00.00
+unspsc7#24.13.16.00.00#Industrial freezers#24.13.00.00.00
+unspsc7#24.13.16.01.00#Chest freezers#24.13.16.00.00
+unspsc7#24.13.16.02.00#Upright freezers#24.13.16.00.00
+unspsc7#24.13.16.03.00#Low temperature freezers#24.13.16.00.00
+unspsc7#24.13.16.04.00#Freeze drying equipment#24.13.16.00.00
+unspsc7#24.13.16.05.00#Walk in freezers#24.13.16.00.00
+unspsc7#24.13.16.06.00#Plate freezers#24.13.16.00.00
+unspsc7#24.13.16.07.00#Blast freezers#24.13.16.00.00
+unspsc7#24.13.19.00.00#Ice makers#24.13.00.00.00
+unspsc7#24.13.19.01.00#Ice cube makers#24.13.19.00.00
+unspsc7#24.13.19.02.00#Ice block makers#24.13.19.00.00
+unspsc7#24.14.00.00.00#Packing supplies#24.00.00.00.00
+unspsc7#24.14.15.00.00#Securing and protecting supplies#24.14.00.00.00
+unspsc7#24.14.15.01.00#Stretch wrap films#24.14.15.00.00
+unspsc7#24.14.15.02.00#Shrink wrap films#24.14.15.00.00
+unspsc7#24.14.15.03.00#Polyethylene films#24.14.15.00.00
+unspsc7#24.14.15.04.00#Tamper proof or security seals#24.14.15.00.00
+unspsc7#24.14.15.05.00#Polyethylene films#24.14.15.00.00
+unspsc7#24.14.15.06.00#Tarpaulins#24.14.15.00.00
+unspsc7#24.14.15.07.00#Anti static packaging films#24.14.15.00.00
+unspsc7#24.14.15.08.00#Carton corner support#24.14.15.00.00
+unspsc7#24.14.15.09.00#Rubber cord#24.14.15.00.00
+unspsc7#24.14.15.10.00#Cable protectors#24.14.15.00.00
+unspsc7#24.14.15.11.00#Load binders#24.14.15.00.00
+unspsc7#24.14.16.00.00#Cushioning supplies#24.14.00.00.00
+unspsc7#24.14.16.01.00#Bubble wrap#24.14.16.00.00
+unspsc7#24.14.16.02.00#Thermoforming materials#24.14.16.00.00
+unspsc7#24.14.16.03.00#Cushioning#24.14.16.00.00
+unspsc7#24.14.16.04.00#Wadding materials#24.14.16.00.00
+unspsc7#24.14.16.05.00#Air filled packing materials#24.14.16.00.00
+unspsc7#24.14.16.06.00#Packing peanuts#24.14.16.00.00
+unspsc7#24.14.16.07.00#Cardboard inserts#24.14.16.00.00
+unspsc7#24.14.16.08.00#Protective ends#24.14.16.00.00
+unspsc7#24.14.17.00.00#Packaging tubes and cores and labels and accessories#24.14.00.00.00
+unspsc7#24.14.17.01.00#Paper tubes or cores#24.14.17.00.00
+unspsc7#24.14.17.02.00#Tube or core end plugs#24.14.17.00.00
+unspsc7#24.14.17.03.00#Paper pieces#24.14.17.00.00
+unspsc7#24.14.17.04.00#Printed inserts or instructions#24.14.17.00.00
+unspsc7#24.14.17.05.00#Collapsible tubes#24.14.17.00.00
+unspsc7#24.14.17.06.00#Spool#24.14.17.00.00
+unspsc7#24.14.17.07.00#Reel#24.14.17.00.00
+unspsc7#25.00.00.00.00#Commercial and Military and Private Vehicles and their Accessories and Components#25.00.00.00.00
+unspsc7#25.10.00.00.00#Motor vehicles#25.00.00.00.00
+unspsc7#25.10.15.00.00#Passenger motor vehicles#25.10.00.00.00
+unspsc7#25.10.15.01.00#Minibuses#25.10.15.00.00
+unspsc7#25.10.15.02.00#Busses#25.10.15.00.00
+unspsc7#25.10.15.03.00#Automobiles or cars#25.10.15.00.00
+unspsc7#25.10.15.04.00#Station wagons#25.10.15.00.00
+unspsc7#25.10.15.05.00#Minivans or vans#25.10.15.00.00
+unspsc7#25.10.15.06.00#Limousines#25.10.15.00.00
+unspsc7#25.10.15.07.00#Light trucks or sport utility vehicles#25.10.15.00.00
+unspsc7#25.10.16.00.00#Product and material transport vehicles#25.10.00.00.00
+unspsc7#25.10.16.01.00#Dump trucks#25.10.16.00.00
+unspsc7#25.10.16.02.00#Tow trucks#25.10.16.00.00
+unspsc7#25.10.16.04.00#Delivery trucks#25.10.16.00.00
+unspsc7#25.10.16.09.00#Sludge or sewage handling trucks#25.10.16.00.00
+unspsc7#25.10.17.00.00#Safety and rescue vehicles#25.10.00.00.00
+unspsc7#25.10.17.01.00#Fire or rescue trucks#25.10.17.00.00
+unspsc7#25.10.17.02.00#Police vehicles#25.10.17.00.00
+unspsc7#25.10.17.03.00#Ambulances#25.10.17.00.00
+unspsc7#25.10.18.00.00#Motorized cycles#25.10.00.00.00
+unspsc7#25.10.18.01.00#Motorcycles#25.10.18.00.00
+unspsc7#25.10.18.02.00#Scooters#25.10.18.00.00
+unspsc7#25.10.18.03.00#Mopeds#25.10.18.00.00
+unspsc7#25.10.19.00.00#Specialized and recreational vehicles#25.10.00.00.00
+unspsc7#25.10.19.01.00#Agricultural tractors#25.10.19.00.00
+unspsc7#25.10.19.02.00#Motor homes#25.10.19.00.00
+unspsc7#25.10.19.03.00#Snowmobiles or snow scooter#25.10.19.00.00
+unspsc7#25.10.19.04.00#Golf carts#25.10.19.00.00
+unspsc7#25.10.19.05.00#All terrain vehicles tracked or wheeled#25.10.19.00.00
+unspsc7#25.10.19.06.00#Go cart#25.10.19.00.00
+unspsc7#25.10.20.00.00#War vehicles#25.10.00.00.00
+unspsc7#25.10.20.01.00#Tanks#25.10.20.00.00
+unspsc7#25.10.20.02.00#Armored fighting vehicles#25.10.20.00.00
+unspsc7#25.10.20.03.00#Self propelled artillery#25.10.20.00.00
+unspsc7#25.10.21.00.00#Truck tractors#25.10.00.00.00
+unspsc7#25.10.21.01.00#Low cab forward tractors#25.10.21.00.00
+unspsc7#25.10.21.02.00#Long nose tractors with sleeper#25.10.21.00.00
+unspsc7#25.10.21.03.00#Long nose tractors without sleeper#25.10.21.00.00
+unspsc7#25.10.21.04.00#Cab over engine tractors with sleeper#25.10.21.00.00
+unspsc7#25.10.21.05.00#Cab over engine tractors without sleeper#25.10.21.00.00
+unspsc7#25.11.00.00.00#Marine transport#25.00.00.00.00
+unspsc7#25.11.15.00.00#Commercial marine craft#25.11.00.00.00
+unspsc7#25.11.15.01.00#Trawlers#25.11.15.00.00
+unspsc7#25.11.15.02.00#Fishing boats#25.11.15.00.00
+unspsc7#25.11.15.03.00#Cargo or container ships#25.11.15.00.00
+unspsc7#25.11.15.04.00#Dredging craft#25.11.15.00.00
+unspsc7#25.11.15.05.00#Tankers#25.11.15.00.00
+unspsc7#25.11.15.06.00#Tug boats#25.11.15.00.00
+unspsc7#25.11.15.07.00#Barges#25.11.15.00.00
+unspsc7#25.11.15.08.00#Passenger or automobile ferries#25.11.15.00.00
+unspsc7#25.11.15.09.00#Cruise ships#25.11.15.00.00
+unspsc7#25.11.15.10.00#Salvage ships#25.11.15.00.00
+unspsc7#25.11.15.11.00#Oil or gas crew boat#25.11.15.00.00
+unspsc7#25.11.15.12.00#Oil or gas workboat#25.11.15.00.00
+unspsc7#25.11.15.13.00#Seismic vessel#25.11.15.00.00
+unspsc7#25.11.16.00.00#Safety and rescue water craft#25.11.00.00.00
+unspsc7#25.11.16.01.00#Lifeboats or liferafts#25.11.16.00.00
+unspsc7#25.11.16.02.00#Fire fighting watercraft#25.11.16.00.00
+unspsc7#25.11.16.03.00#Rescue ships or boats#25.11.16.00.00
+unspsc7#25.11.17.00.00#Military watercraft#25.11.00.00.00
+unspsc7#25.11.17.01.00#Submarines#25.11.17.00.00
+unspsc7#25.11.17.02.00#Aircraft carriers#25.11.17.00.00
+unspsc7#25.11.17.03.00#Ammunition ships#25.11.17.00.00
+unspsc7#25.11.17.04.00#Amphibious assault ships#25.11.17.00.00
+unspsc7#25.11.17.05.00#Amphibious transport docks#25.11.17.00.00
+unspsc7#25.11.17.06.00#Amphibious command ships#25.11.17.00.00
+unspsc7#25.11.17.07.00#Command ships#25.11.17.00.00
+unspsc7#25.11.17.08.00#Cruisers#25.11.17.00.00
+unspsc7#25.11.17.09.00#Destroyers#25.11.17.00.00
+unspsc7#25.11.17.10.00#Dock landing ships#25.11.17.00.00
+unspsc7#25.11.17.11.00#Fast combat support ships#25.11.17.00.00
+unspsc7#25.11.17.12.00#Frigates#25.11.17.00.00
+unspsc7#25.11.17.13.00#Fleet oilers#25.11.17.00.00
+unspsc7#25.11.17.14.00#Utility landing watercraft#25.11.17.00.00
+unspsc7#25.11.17.15.00#Mechanized or utility watercraft#25.11.17.00.00
+unspsc7#25.11.17.16.00#Mine hunting ships#25.11.17.00.00
+unspsc7#25.11.17.17.00#Mine countermeasures ships#25.11.17.00.00
+unspsc7#25.11.17.18.00#Coastal patrol watercraft#25.11.17.00.00
+unspsc7#25.11.17.19.00#Submarine tenders#25.11.17.00.00
+unspsc7#25.11.17.20.00#Tank landing ships#25.11.17.00.00
+unspsc7#25.11.17.21.00#Air cushioned landing watercraft#25.11.17.00.00
+unspsc7#25.11.18.00.00#Recreational watercraft#25.11.00.00.00
+unspsc7#25.11.18.01.00#Recreational sailboats#25.11.18.00.00
+unspsc7#25.11.18.02.00#Recreational motorboats#25.11.18.00.00
+unspsc7#25.11.18.03.00#Recreational rowboats#25.11.18.00.00
+unspsc7#25.11.18.04.00#Canoes or kayaks#25.11.18.00.00
+unspsc7#25.11.18.05.00#Personal motorized watercraft#25.11.18.00.00
+unspsc7#25.11.18.06.00#Rafts#25.11.18.00.00
+unspsc7#25.11.19.00.00#Marine craft systems and subassemblies#25.11.00.00.00
+unspsc7#25.11.19.01.00#Marine craft communications systems#25.11.19.00.00
+unspsc7#25.11.19.02.00#Marine propellers#25.11.19.00.00
+unspsc7#25.11.19.03.00#Sails#25.11.19.00.00
+unspsc7#25.11.19.04.00#Paddles#25.11.19.00.00
+unspsc7#25.11.19.05.00#Marine ballast systems#25.11.19.00.00
+unspsc7#25.12.00.00.00#Railway and tramway machinery and equipment#25.00.00.00.00
+unspsc7#25.12.15.00.00#Locomotives and electric trolleys#25.12.00.00.00
+unspsc7#25.12.15.01.00#Diesel freight locomotives#25.12.15.00.00
+unspsc7#25.12.15.02.00#Electric freight locomotives#25.12.15.00.00
+unspsc7#25.12.15.03.00#Diesel passenger locomotives#25.12.15.00.00
+unspsc7#25.12.15.04.00#Electric passenger locomotives#25.12.15.00.00
+unspsc7#25.12.16.00.00#Railway and tramway cars#25.12.00.00.00
+unspsc7#25.12.16.01.00#Freight rail cars#25.12.16.00.00
+unspsc7#25.12.16.02.00#Tanker rail cars#25.12.16.00.00
+unspsc7#25.12.16.03.00#Passenger rail cars#25.12.16.00.00
+unspsc7#25.12.16.04.00#Hopper rail cars#25.12.16.00.00
+unspsc7#25.12.16.05.00#Streetcars or tramway cars#25.12.16.00.00
+unspsc7#25.12.17.00.00#Railroad support equipment and systems#25.12.00.00.00
+unspsc7#25.12.17.01.00#Rail switching systems#25.12.17.00.00
+unspsc7#25.12.17.02.00#Railway sleepers#25.12.17.00.00
+unspsc7#25.12.17.03.00#Railway tracks#25.12.17.00.00
+unspsc7#25.12.17.04.00#Railway frogs or fish plates#25.12.17.00.00
+unspsc7#25.13.00.00.00#Aircraft#25.00.00.00.00
+unspsc7#25.13.15.00.00#Powered fixed wing aircraft#25.13.00.00.00
+unspsc7#25.13.15.01.00#Fixed wing agricultural aircraft#25.13.15.00.00
+unspsc7#25.13.15.02.00#Cargo propeller aircraft#25.13.15.00.00
+unspsc7#25.13.15.03.00#Seaplanes#25.13.15.00.00
+unspsc7#25.13.15.04.00#Commercial passenger propeller aircraft#25.13.15.00.00
+unspsc7#25.13.15.05.00#Cargo jet aircraft#25.13.15.00.00
+unspsc7#25.13.15.06.00#Commercial passenger jet aircraft#25.13.15.00.00
+unspsc7#25.13.15.07.00#Private or business propeller aircraft#25.13.15.00.00
+unspsc7#25.13.15.08.00#Private or business jet aircraft#25.13.15.00.00
+unspsc7#25.13.16.00.00#Civilian and commercial rotary wing aircraft#25.13.00.00.00
+unspsc7#25.13.16.01.00#Passenger transport helicopters#25.13.16.00.00
+unspsc7#25.13.16.02.00#Cargo transport helicopters#25.13.16.00.00
+unspsc7#25.13.16.03.00#Agricultural helicopters#25.13.16.00.00
+unspsc7#25.13.16.04.00#Medical or rescue helicopters#25.13.16.00.00
+unspsc7#25.13.17.00.00#Military fixed wing aircraft#25.13.00.00.00
+unspsc7#25.13.17.01.00#Bomber aircraft#25.13.17.00.00
+unspsc7#25.13.17.02.00#Fighter bomber aircraft#25.13.17.00.00
+unspsc7#25.13.17.03.00#Fighter aircraft#25.13.17.00.00
+unspsc7#25.13.17.04.00#Attack aircraft#25.13.17.00.00
+unspsc7#25.13.17.05.00#Target or reconnaissance drones#25.13.17.00.00
+unspsc7#25.13.17.06.00#Military seaplanes#25.13.17.00.00
+unspsc7#25.13.17.07.00#Reconnaissance or surveillance aircraft#25.13.17.00.00
+unspsc7#25.13.17.08.00#Anti submarine aircraft#25.13.17.00.00
+unspsc7#25.13.17.09.00#Military transport aircraft#25.13.17.00.00
+unspsc7#25.13.18.00.00#Specialty aircraft#25.13.00.00.00
+unspsc7#25.13.18.01.00#Airships#25.13.18.00.00
+unspsc7#25.13.19.00.00#Military rotary wing aircraft#25.13.00.00.00
+unspsc7#25.13.19.02.00#Military transport helicopters#25.13.19.00.00
+unspsc7#25.13.19.03.00#Attack helicopters#25.13.19.00.00
+unspsc7#25.13.19.04.00#Reconnaissance helicopters#25.13.19.00.00
+unspsc7#25.13.19.05.00#Anti submarine helicopters#25.13.19.00.00
+unspsc7#25.13.19.06.00#Tilt rotor wing aircraft#25.13.19.00.00
+unspsc7#25.13.20.00.00#Recreational aircraft#25.13.00.00.00
+unspsc7#25.13.20.01.00#Hang gliders#25.13.20.00.00
+unspsc7#25.13.20.02.00#Hot air balloons#25.13.20.00.00
+unspsc7#25.13.20.03.00#Gliders#25.13.20.00.00
+unspsc7#25.13.20.04.00#Paragliders#25.13.20.00.00
+unspsc7#25.13.20.05.00#Ultra light aircraft#25.13.20.00.00
+unspsc7#25.13.21.00.00#Aircraft management services#25.13.00.00.00
+unspsc7#25.13.21.01.00#Aircraft pilots#25.13.21.00.00
+unspsc7#25.13.21.02.00#Aircraft maintenance or services#25.13.21.00.00
+unspsc7#25.15.00.00.00#Spacecraft#25.00.00.00.00
+unspsc7#25.15.15.00.00#Spaceships#25.15.00.00.00
+unspsc7#25.15.15.01.00#Manned spacecraft#25.15.15.00.00
+unspsc7#25.15.15.02.00#Spacecraft structures#25.15.15.00.00
+unspsc7#25.15.17.00.00#Satellites#25.15.00.00.00
+unspsc7#25.15.17.01.00#Communication satellites#25.15.17.00.00
+unspsc7#25.15.17.02.00#Weather satellites#25.15.17.00.00
+unspsc7#25.15.17.03.00#Military satellites#25.15.17.00.00
+unspsc7#25.15.17.04.00#Scientific or research satellites#25.15.17.00.00
+unspsc7#25.15.17.05.00#Navigation satellites#25.15.17.00.00
+unspsc7#25.15.17.06.00#Geostationary satellites#25.15.17.00.00
+unspsc7#25.15.17.07.00#Low earth orbit satellites#25.15.17.00.00
+unspsc7#25.15.17.08.00#Sun synchronous orbit satellites#25.15.17.00.00
+unspsc7#25.15.17.09.00#Geosynchronous satellites#25.15.17.00.00
+unspsc7#25.16.00.00.00#Non motorized cycles#25.00.00.00.00
+unspsc7#25.16.15.00.00#Pedal powered vehicles#25.16.00.00.00
+unspsc7#25.16.15.01.00#Touring bicycles#25.16.15.00.00
+unspsc7#25.16.15.02.00#Unicycles#25.16.15.00.00
+unspsc7#25.16.15.03.00#Tricycles#25.16.15.00.00
+unspsc7#25.16.15.04.00#Tandem bicycles#25.16.15.00.00
+unspsc7#25.16.15.05.00#Mountain bicycles#25.16.15.00.00
+unspsc7#25.16.15.06.00#Racing bicycles#25.16.15.00.00
+unspsc7#25.16.15.07.00#Bicycles#25.16.15.00.00
+unspsc7#25.16.15.08.00#Recumbent bicycles#25.16.15.00.00
+unspsc7#25.16.15.09.00#Childrens bicycles#25.16.15.00.00
+unspsc7#25.17.00.00.00#Transportation components and systems#25.00.00.00.00
+unspsc7#25.17.15.00.00#Windshield wipers#25.17.00.00.00
+unspsc7#25.17.15.01.00#Aircraft windshield wipers#25.17.15.00.00
+unspsc7#25.17.15.02.00#Automotive windshield wipers#25.17.15.00.00
+unspsc7#25.17.15.03.00#Locomotive windshield wipers#25.17.15.00.00
+unspsc7#25.17.15.04.00#Marine windshield wipers#25.17.15.00.00
+unspsc7#25.17.15.05.00#Truck windshield wipers#25.17.15.00.00
+unspsc7#25.17.15.06.00#Windshield wiper pump#25.17.15.00.00
+unspsc7#25.17.16.00.00#Defrosting and defogging systems#25.17.00.00.00
+unspsc7#25.17.16.01.00#Aircraft onboard defrosting or defogging systems#25.17.16.00.00
+unspsc7#25.17.16.02.00#Automotive defrosting or defogging systems#25.17.16.00.00
+unspsc7#25.17.16.03.00#Train defrosting or defogging systems#25.17.16.00.00
+unspsc7#25.17.17.00.00#Braking systems and components#25.17.00.00.00
+unspsc7#25.17.17.01.00#Aircraft braking systems#25.17.17.00.00
+unspsc7#25.17.17.02.00#Automotive braking systems#25.17.17.00.00
+unspsc7#25.17.17.03.00#Train braking systems#25.17.17.00.00
+unspsc7#25.17.17.04.00#Drag chutes#25.17.17.00.00
+unspsc7#25.17.17.05.00#Rotors#25.17.17.00.00
+unspsc7#25.17.17.06.00#Brake calipers#25.17.17.00.00
+unspsc7#25.17.17.07.00#Drum brake#25.17.17.00.00
+unspsc7#25.17.17.08.00#Disc brake#25.17.17.00.00
+unspsc7#25.17.17.09.00#Liquid cooled brake#25.17.17.00.00
+unspsc7#25.17.17.10.00#Master cylindars#25.17.17.00.00
+unspsc7#25.17.17.11.00#Slave cylinders#25.17.17.00.00
+unspsc7#25.17.17.12.00#Drum brake shoes#25.17.17.00.00
+unspsc7#25.17.17.13.00#Disc brake pads#25.17.17.00.00
+unspsc7#25.17.17.14.00#Brake drum#25.17.17.00.00
+unspsc7#25.17.17.15.00#Disc brake rotors#25.17.17.00.00
+unspsc7#25.17.17.16.00#Brake lines#25.17.17.00.00
+unspsc7#25.17.19.00.00#Wheels and wheel trims#25.17.00.00.00
+unspsc7#25.17.19.01.00#Automobile rims or wheels#25.17.19.00.00
+unspsc7#25.17.19.02.00#Train wheels#25.17.19.00.00
+unspsc7#25.17.19.03.00#Truck rims or wheels#25.17.19.00.00
+unspsc7#25.17.19.04.00#Aircraft wheels#25.17.19.00.00
+unspsc7#25.17.19.05.00#Tire valves#25.17.19.00.00
+unspsc7#25.17.20.00.00#Suspension system components#25.17.00.00.00
+unspsc7#25.17.20.01.00#Automobile suspension systems#25.17.20.00.00
+unspsc7#25.17.20.02.00#Truck suspension systems#25.17.20.00.00
+unspsc7#25.17.20.03.00#Truck shock absorbers#25.17.20.00.00
+unspsc7#25.17.20.04.00#Automobile shock absorbers#25.17.20.00.00
+unspsc7#25.17.20.05.00#Train suspension systems#25.17.20.00.00
+unspsc7#25.17.20.06.00#Steering systems#25.17.20.00.00
+unspsc7#25.17.20.07.00#Struts#25.17.20.00.00
+unspsc7#25.17.20.08.00#Ball joints#25.17.20.00.00
+unspsc7#25.17.20.09.00#Automotive bushings#25.17.20.00.00
+unspsc7#25.17.20.10.00#Sway bars#25.17.20.00.00
+unspsc7#25.17.20.11.00#Shock absorber#25.17.20.00.00
+unspsc7#25.17.21.00.00#Vehicle safety systems and components#25.17.00.00.00
+unspsc7#25.17.21.01.00#Airbags#25.17.21.00.00
+unspsc7#25.17.21.02.00#Aircraft lapbelts#25.17.21.00.00
+unspsc7#25.17.21.03.00#Aircraft harness restraints#25.17.21.00.00
+unspsc7#25.17.21.04.00#Seatbelts#25.17.21.00.00
+unspsc7#25.17.21.05.00#Collision avoidance systems#25.17.21.00.00
+unspsc7#25.17.21.06.00#Impact sensing systems#25.17.21.00.00
+unspsc7#25.17.21.07.00#Automotive seatbelts#25.17.21.00.00
+unspsc7#25.17.21.08.00#Head restraints#25.17.21.00.00
+unspsc7#25.17.22.00.00#Vehicle doors#25.17.00.00.00
+unspsc7#25.17.22.01.00#Removable automotive doors#25.17.22.00.00
+unspsc7#25.17.22.02.00#Aircraft doors#25.17.22.00.00
+unspsc7#25.17.22.03.00#Automotive doors#25.17.22.00.00
+unspsc7#25.17.22.04.00#Roll up truck doors#25.17.22.00.00
+unspsc7#25.17.22.05.00#Tailgates or liftgates#25.17.22.00.00
+unspsc7#25.17.23.00.00#Vehicle windows and windshields#25.17.00.00.00
+unspsc7#25.17.23.01.00#Automotive windshields#25.17.23.00.00
+unspsc7#25.17.23.02.00#Aircraft windows#25.17.23.00.00
+unspsc7#25.17.23.03.00#Automotive windows#25.17.23.00.00
+unspsc7#25.17.23.04.00#Aircraft windshields#25.17.23.00.00
+unspsc7#25.17.24.00.00#Fuel tanks and systems#25.17.00.00.00
+unspsc7#25.17.24.01.00#Aircraft internal fuel tanks#25.17.24.00.00
+unspsc7#25.17.24.02.00#Aircraft fuel drop tanks#25.17.24.00.00
+unspsc7#25.17.24.03.00#Aircraft propellent tanks#25.17.24.00.00
+unspsc7#25.17.24.04.00#Hybrid fuel storage systems#25.17.24.00.00
+unspsc7#25.17.24.05.00#Fuel injection systems#25.17.24.00.00
+unspsc7#25.17.24.06.00#Fuel tanks#25.17.24.00.00
+unspsc7#25.17.24.07.00#Breather elements#25.17.24.00.00
+unspsc7#25.17.24.08.00#Fuel or oil caps#25.17.24.00.00
+unspsc7#25.17.25.00.00#Tires and tire tubes#25.17.00.00.00
+unspsc7#25.17.25.01.00#Aircraft tires#25.17.25.00.00
+unspsc7#25.17.25.02.00#Automobile tire tubes#25.17.25.00.00
+unspsc7#25.17.25.03.00#Heavy truck tires#25.17.25.00.00
+unspsc7#25.17.25.04.00#Automobile or light truck tires#25.17.25.00.00
+unspsc7#25.17.25.05.00#Bicycle tubes#25.17.25.00.00
+unspsc7#25.17.25.06.00#Bicycle tires#25.17.25.00.00
+unspsc7#25.17.25.07.00#Tire cord#25.17.25.00.00
+unspsc7#25.17.25.08.00#Tire treads#25.17.25.00.00
+unspsc7#25.17.26.00.00#Vehicle trim and exterior covering#25.17.00.00.00
+unspsc7#25.17.26.01.00#Automotive trim#25.17.26.00.00
+unspsc7#25.17.26.02.00#Automotive fenders#25.17.26.00.00
+unspsc7#25.17.26.03.00#Vehicle bumpers#25.17.26.00.00
+unspsc7#25.17.26.04.00#Vehicle mirrors#25.17.26.00.00
+unspsc7#25.17.26.05.00#Vehicle grilles#25.17.26.00.00
+unspsc7#25.17.26.06.00#Vehicle hoods#25.17.26.00.00
+unspsc7#25.17.26.07.00#Vehicle side panels#25.17.26.00.00
+unspsc7#25.17.26.08.00#Fascias#25.17.26.00.00
+unspsc7#25.17.27.00.00#Environmental control systems#25.17.00.00.00
+unspsc7#25.17.27.01.00#Aircraft environmental control systems#25.17.27.00.00
+unspsc7#25.17.27.02.00#Space environmental control systems#25.17.27.00.00
+unspsc7#25.17.27.03.00#Marine environmental control systems#25.17.27.00.00
+unspsc7#25.17.27.04.00#Vehicle climate control systems#25.17.27.00.00
+unspsc7#25.17.28.00.00#Hydraulic systems and components#25.17.00.00.00
+unspsc7#25.17.28.01.00#Aircraft hydraulic systems#25.17.28.00.00
+unspsc7#25.17.28.02.00#Automotive hydraulic systems#25.17.28.00.00
+unspsc7#25.17.28.03.00#Marine hydraulic systems#25.17.28.00.00
+unspsc7#25.17.29.00.00#Exterior vehicle lighting#25.17.00.00.00
+unspsc7#25.17.29.01.00#Exterior automobile lighting#25.17.29.00.00
+unspsc7#25.17.29.02.00#Exterior aircraft lighting#25.17.29.00.00
+unspsc7#25.17.29.03.00#Exterior railcar lighting#25.17.29.00.00
+unspsc7#25.17.29.04.00#Exterior ship or boat lighting#25.17.29.00.00
+unspsc7#25.17.29.05.00#Headlamp wiper or washer systems#25.17.29.00.00
+unspsc7#25.17.29.06.00#Reflectors#25.17.29.00.00
+unspsc7#25.17.30.00.00#Interior vehicle lighting#25.17.00.00.00
+unspsc7#25.17.30.01.00#Interior automobile lighting#25.17.30.00.00
+unspsc7#25.17.30.02.00#Interior aircraft lighting#25.17.30.00.00
+unspsc7#25.17.30.03.00#Interior railcar lighting#25.17.30.00.00
+unspsc7#25.17.30.04.00#Interior ship or boat lighting#25.17.30.00.00
+unspsc7#25.17.30.05.00#Light plate assemblies#25.17.30.00.00
+unspsc7#25.17.31.00.00#Location and navigation systems and components#25.17.00.00.00
+unspsc7#25.17.31.01.00#Aircraft digital altitude control systems#25.17.31.00.00
+unspsc7#25.17.31.02.00#Aircraft navigation beacons#25.17.31.00.00
+unspsc7#25.17.31.03.00#Terrain following systems#25.17.31.00.00
+unspsc7#25.17.31.04.00#Aircraft guidance systems#25.17.31.00.00
+unspsc7#25.17.31.05.00#Aircraft steering controls#25.17.31.00.00
+unspsc7#25.17.31.06.00#Spacecraft attitude control systems#25.17.31.00.00
+unspsc7#25.17.31.07.00#Vehicular global positioning systems#25.17.31.00.00
+unspsc7#25.17.32.00.00#Communications related systems#25.17.00.00.00
+unspsc7#25.17.32.01.00#Aircraft communication systems#25.17.32.00.00
+unspsc7#25.17.32.02.00#Flight recorders#25.17.32.00.00
+unspsc7#25.17.32.03.00#Aircraft countermeasures#25.17.32.00.00
+unspsc7#25.17.32.04.00#Aircraft encryption or decryption systems#25.17.32.00.00
+unspsc7#25.17.32.05.00#Aircraft telemetry systems#25.17.32.00.00
+unspsc7#25.17.32.06.00#Aircraft interface electronics#25.17.32.00.00
+unspsc7#25.17.33.00.00#Master control systems#25.17.00.00.00
+unspsc7#25.17.33.01.00#Flight computer systems#25.17.33.00.00
+unspsc7#25.17.33.02.00#Spacecraft command modules#25.17.33.00.00
+unspsc7#25.17.33.03.00#Automotive computer systems#25.17.33.00.00
+unspsc7#25.17.33.04.00#Electronic ignition systems#25.17.33.00.00
+unspsc7#25.17.34.00.00#Vehicle emergency systems#25.17.00.00.00
+unspsc7#25.17.34.01.00#Aircraft fire control or extinguishing systems#25.17.34.00.00
+unspsc7#25.17.34.02.00#Aircraft escape or ejection systems#25.17.34.00.00
+unspsc7#25.17.34.03.00#Aircraft warning systems#25.17.34.00.00
+unspsc7#25.17.35.00.00#Vehicle power systems#25.17.00.00.00
+unspsc7#25.17.35.01.00#Spacecraft solar cells#25.17.35.00.00
+unspsc7#25.17.35.02.00#Spacecraft solar arrays#25.17.35.00.00
+unspsc7#25.17.36.00.00#Vehicle instrumentation#25.17.00.00.00
+unspsc7#25.17.36.01.00#Aircraft cockpit displays#25.17.36.00.00
+unspsc7#25.17.37.00.00#Exhaust and emission controls#25.17.00.00.00
+unspsc7#25.17.37.01.00#Catalytic converters#25.17.37.00.00
+unspsc7#25.17.37.02.00#Mufflers#25.17.37.00.00
+unspsc7#25.17.37.03.00#Exhaust manifolds#25.17.37.00.00
+unspsc7#25.17.38.00.00#Drivetrain systems#25.17.00.00.00
+unspsc7#25.17.38.01.00#Driving axles#25.17.38.00.00
+unspsc7#25.17.38.02.00#Non driving axles#25.17.38.00.00
+unspsc7#25.17.38.03.00#Axle housings#25.17.38.00.00
+unspsc7#25.17.38.04.00#Axle spindles#25.17.38.00.00
+unspsc7#25.17.38.05.00#Differentials#25.17.38.00.00
+unspsc7#25.17.38.06.00#Constant velocity joints#25.17.38.00.00
+unspsc7#25.17.38.07.00#Axle shafts#25.17.38.00.00
+unspsc7#25.17.38.08.00#Axle repair kits#25.17.38.00.00
+unspsc7#25.17.38.09.00#Axle hubs#25.17.38.00.00
+unspsc7#25.17.38.10.00#Universal joints#25.17.38.00.00
+unspsc7#25.17.38.11.00#Drive shafts#25.17.38.00.00
+unspsc7#25.17.38.12.00#Manual transmissions#25.17.38.00.00
+unspsc7#25.17.38.13.00#Automatic transmissions#25.17.38.00.00
+unspsc7#25.17.38.14.00#Power take offs#25.17.38.00.00
+unspsc7#25.17.38.15.00#Clutch cables#25.17.38.00.00
+unspsc7#25.17.38.16.00#Hydraulic clutch parts#25.17.38.00.00
+unspsc7#25.17.38.17.00#Drivetrain chains#25.17.38.00.00
+unspsc7#25.17.39.00.00#Electrical components#25.17.00.00.00
+unspsc7#25.17.39.01.00#Ignition#25.17.39.00.00
+unspsc7#25.17.40.00.00#Engine coolant system#25.17.00.00.00
+unspsc7#25.17.40.01.00#Fan#25.17.40.00.00
+unspsc7#25.17.40.02.00#Vehicle radiators#25.17.40.00.00
+unspsc7#25.17.40.03.00#Radiator caps#25.17.40.00.00
+unspsc7#25.17.40.04.00#Engine coolant#25.17.40.00.00
+unspsc7#25.17.41.00.00#Roof systems#25.17.00.00.00
+unspsc7#25.17.41.01.00#Emergency vehicle exits#25.17.41.00.00
+unspsc7#25.17.41.02.00#Permanent convertible roof tops#25.17.41.00.00
+unspsc7#25.17.41.03.00#Removable hard roof tops#25.17.41.00.00
+unspsc7#25.17.41.04.00#Removable soft roof tops#25.17.41.00.00
+unspsc7#25.17.41.05.00#Roof rack systems#25.17.41.00.00
+unspsc7#25.17.41.06.00#Sunroofs or moonroofs#25.17.41.00.00
+unspsc7#25.17.41.07.00#Wind deflectors#25.17.41.00.00
+unspsc7#25.17.42.00.00#Steering system#25.17.00.00.00
+unspsc7#25.17.42.01.00#Steering sacks#25.17.42.00.00
+unspsc7#25.17.42.02.00#Steering suspension#25.17.42.00.00
+unspsc7#25.17.42.03.00#Ball joint#25.17.42.00.00
+unspsc7#25.17.42.04.00#Power steering system#25.17.42.00.00
+unspsc7#25.17.42.05.00#Tie Rods#25.17.42.00.00
+unspsc7#25.17.42.06.00#Drag link#25.17.42.00.00
+unspsc7#25.17.42.07.00#Steering linkage#25.17.42.00.00
+unspsc7#25.17.42.08.00#Hublock#25.17.42.00.00
+unspsc7#25.17.42.09.00#Pinions#25.17.42.00.00
+unspsc7#25.17.42.10.00#Power steering tuning cable#25.17.42.00.00
+unspsc7#25.17.43.00.00#Vehicle exhaust systems#25.17.00.00.00
+unspsc7#25.17.43.01.00#Catalytic converters#25.17.43.00.00
+unspsc7#25.17.43.02.00#Mufflers or resonators#25.17.43.00.00
+unspsc7#25.17.44.00.00#Vehicle interior systems#25.17.00.00.00
+unspsc7#25.17.44.01.00#Bezels#25.17.44.00.00
+unspsc7#25.17.44.02.00#Consoles#25.17.44.00.00
+unspsc7#25.17.44.03.00#Door panels#25.17.44.00.00
+unspsc7#25.17.44.04.00#Headliners#25.17.44.00.00
+unspsc7#25.17.44.05.00#Instrument clusters#25.17.44.00.00
+unspsc7#25.17.44.06.00#Instrument panels#25.17.44.00.00
+unspsc7#25.17.44.07.00#Pedals#25.17.44.00.00
+unspsc7#25.17.44.08.00#Power ports or lighters#25.17.44.00.00
+unspsc7#25.17.44.09.00#Sun visors#25.17.44.00.00
+unspsc7#25.17.45.00.00#Vehicle safety and security systems#25.17.00.00.00
+unspsc7#25.17.45.01.00#Air bag propellant canisters#25.17.45.00.00
+unspsc7#25.17.45.02.00#Air bags#25.17.45.00.00
+unspsc7#25.17.45.03.00#Vehicle horns#25.17.45.00.00
+unspsc7#25.17.45.04.00#Remote locking system#25.17.45.00.00
+unspsc7#25.17.45.05.00#Vehicle stability control systems#25.17.45.00.00
+unspsc7#25.17.45.06.00#Vehicle traction control systems#25.17.45.00.00
+unspsc7#25.17.45.07.00#Vehicle navigation systems#25.17.45.00.00
+unspsc7#25.17.45.08.00#Wheel clamps#25.17.45.00.00
+unspsc7#25.17.46.00.00#Vehicle seating systems#25.17.00.00.00
+unspsc7#25.17.46.01.00#Seat covers#25.17.46.00.00
+unspsc7#25.17.46.02.00#Seat cushions or bolsters#25.17.46.00.00
+unspsc7#25.17.46.03.00#Seat frames#25.17.46.00.00
+unspsc7#25.18.00.00.00#Vehicle bodies and trailers#25.00.00.00.00
+unspsc7#25.18.15.00.00#Aircraft fuselage and components#25.18.00.00.00
+unspsc7#25.18.15.01.00#Aircraft spoilers#25.18.15.00.00
+unspsc7#25.18.15.02.00#Aircraft fins#25.18.15.00.00
+unspsc7#25.18.15.03.00#Aircraft horizontal stabilizers#25.18.15.00.00
+unspsc7#25.18.15.04.00#Aircraft canards#25.18.15.00.00
+unspsc7#25.18.15.05.00#Aircraft slats#25.18.15.00.00
+unspsc7#25.18.15.06.00#Aircraft flaps#25.18.15.00.00
+unspsc7#25.18.15.07.00#Aircraft rudders#25.18.15.00.00
+unspsc7#25.18.15.08.00#Aircraft elevators#25.18.15.00.00
+unspsc7#25.18.15.09.00#Aircraft ailerons#25.18.15.00.00
+unspsc7#25.18.15.10.00#Aircraft propeller#25.18.15.00.00
+unspsc7#25.18.15.11.00#Aircraft wings#25.18.15.00.00
+unspsc7#25.18.15.12.00#Aircraft fuselage#25.18.15.00.00
+unspsc7#25.18.15.13.00#Aircraft radomes#25.18.15.00.00
+unspsc7#25.18.15.14.00#Aircraft rotors#25.18.15.00.00
+unspsc7#25.18.15.15.00#Aircraft lift fans#25.18.15.00.00
+unspsc7#25.18.15.16.00#Aircraft canopies#25.18.15.00.00
+unspsc7#25.18.15.17.00#Aircraft furnishings#25.18.15.00.00
+unspsc7#25.18.16.00.00#Automotive chassis#25.18.00.00.00
+unspsc7#25.18.16.01.00#Automobile chassis#25.18.16.00.00
+unspsc7#25.18.16.02.00#Truck chassis#25.18.16.00.00
+unspsc7#25.18.16.03.00#Motorcycle frames#25.18.16.00.00
+unspsc7#25.18.16.04.00#Truck chassis#25.18.16.00.00
+unspsc7#25.18.17.00.00#Product and material trailers#25.18.00.00.00
+unspsc7#25.18.17.01.00#Container trailers#25.18.17.00.00
+unspsc7#25.18.17.02.00#Flatbed trailers#25.18.17.00.00
+unspsc7#25.18.17.03.00#Livestock trailers#25.18.17.00.00
+unspsc7#25.18.17.04.00#Non temperature controlled tanker trailers#25.18.17.00.00
+unspsc7#25.18.17.05.00#Temperature controlled tanker trailers#25.18.17.00.00
+unspsc7#25.18.17.06.00#Temperature controlled container trailers#25.18.17.00.00
+unspsc7#25.18.17.07.00#Automobile carrier trailers#25.18.17.00.00
+unspsc7#25.18.17.08.00#Trailer hitches#25.18.17.00.00
+unspsc7#25.18.17.09.00#Skip loader#25.18.17.00.00
+unspsc7#25.18.17.10.00#Trailer end plates#25.18.17.00.00
+unspsc7#25.18.17.11.00#Snowmobile trailer#25.18.17.00.00
+unspsc7#25.18.17.12.00#Motorcycle trailer#25.18.17.00.00
+unspsc7#25.18.17.13.00#Boat Trailer#25.18.17.00.00
+unspsc7#25.19.00.00.00#Transportation services equipment#25.00.00.00.00
+unspsc7#25.19.15.00.00#Air transportation support systems and equipment#25.19.00.00.00
+unspsc7#25.19.15.01.00#Ground support training systems#25.19.15.00.00
+unspsc7#25.19.15.02.00#Ground support test or maintenance systems#25.19.15.00.00
+unspsc7#25.19.15.03.00#Integrated maintenance information systems#25.19.15.00.00
+unspsc7#25.19.15.04.00#Aircraft flight simulators or trainers#25.19.15.00.00
+unspsc7#25.19.15.05.00#Aircraft cargo handling equipment#25.19.15.00.00
+unspsc7#25.19.15.06.00#Aircraft refueling equipment#25.19.15.00.00
+unspsc7#25.19.15.07.00#Aircraft deicing equipment#25.19.15.00.00
+unspsc7#25.19.15.08.00#Jetways#25.19.15.00.00
+unspsc7#25.19.15.09.00#Aircraft pushback or tow tractors#25.19.15.00.00
+unspsc7#25.19.15.10.00#Ground power units for aircraft#25.19.15.00.00
+unspsc7#25.19.15.11.00#Lavatory service equipment for aircraft#25.19.15.00.00
+unspsc7#25.19.15.12.00#Airstairs or stair trucks#25.19.15.00.00
+unspsc7#25.19.16.00.00#Space transportation support systems and equipment#25.19.00.00.00
+unspsc7#25.19.16.01.00#Spacecraft flight simulators#25.19.16.00.00
+unspsc7#25.19.16.02.00#Payload delivery systems for spacecraft#25.19.16.00.00
+unspsc7#25.19.16.03.00#Liquid launch vehicles#25.19.16.00.00
+unspsc7#25.19.16.04.00#Solid launch vehicles#25.19.16.00.00
+unspsc7#25.19.16.05.00#Spacecraft service modules#25.19.16.00.00
+unspsc7#25.19.17.00.00#Vehicle servicing equipment#25.19.00.00.00
+unspsc7#25.19.17.01.00#Wheel balancing equipment#25.19.17.00.00
+unspsc7#25.19.17.02.00#Wheel alignment equipment#25.19.17.00.00
+unspsc7#25.19.17.03.00#Tire changing machines#25.19.17.00.00
+unspsc7#25.19.17.04.00#Engine or vehicle stands#25.19.17.00.00
+unspsc7#25.20.00.00.00#Aerospace systems and components and equipment#25.00.00.00.00
+unspsc7#25.20.15.00.00#Aircraft fuselage and components#25.20.00.00.00
+unspsc7#25.20.15.01.00#Aircraft spoilers#25.20.15.00.00
+unspsc7#25.20.15.02.00#Aircraft fins#25.20.15.00.00
+unspsc7#25.20.15.03.00#Aircraft horizontal stabilizers#25.20.15.00.00
+unspsc7#25.20.15.04.00#Aircraft canards#25.20.15.00.00
+unspsc7#25.20.15.05.00#Aircraft slats#25.20.15.00.00
+unspsc7#25.20.15.06.00#Aircraft flaps or flap drives#25.20.15.00.00
+unspsc7#25.20.15.07.00#Aircraft rudders#25.20.15.00.00
+unspsc7#25.20.15.08.00#Aircraft elevators#25.20.15.00.00
+unspsc7#25.20.15.09.00#Aircraft ailerons#25.20.15.00.00
+unspsc7#25.20.15.10.00#Aircraft propellers#25.20.15.00.00
+unspsc7#25.20.15.11.00#Aircraft wings#25.20.15.00.00
+unspsc7#25.20.15.12.00#Aircraft fuselages#25.20.15.00.00
+unspsc7#25.20.15.13.00#Aircraft radomes#25.20.15.00.00
+unspsc7#25.20.15.14.00#Aircraft rotors#25.20.15.00.00
+unspsc7#25.20.15.15.00#Aircraft lift fans#25.20.15.00.00
+unspsc7#25.20.15.16.00#Aircraft canopies#25.20.15.00.00
+unspsc7#25.20.15.17.00#Aircraft furnishings#25.20.15.00.00
+unspsc7#25.20.16.00.00#Aerospace location and navigation systems and components#25.20.00.00.00
+unspsc7#25.20.16.01.00#Aircraft digital altitude control systems#25.20.16.00.00
+unspsc7#25.20.16.02.00#Aircraft navigation beacons#25.20.16.00.00
+unspsc7#25.20.16.03.00#Air to ground terrain following systems#25.20.16.00.00
+unspsc7#25.20.16.04.00#Aircraft guidance systems#25.20.16.00.00
+unspsc7#25.20.16.05.00#Aircraft steering controls#25.20.16.00.00
+unspsc7#25.20.16.06.00#Spacecraft altitude control systems#25.20.16.00.00
+unspsc7#25.20.17.00.00#Flight communications related systems#25.20.00.00.00
+unspsc7#25.20.17.01.00#Aircraft communication systems#25.20.17.00.00
+unspsc7#25.20.17.02.00#Flight data recorders#25.20.17.00.00
+unspsc7#25.20.17.03.00#Aircraft countermeasures#25.20.17.00.00
+unspsc7#25.20.17.04.00#Encryption or decryption systems#25.20.17.00.00
+unspsc7#25.20.17.05.00#Aircraft telemetry systems#25.20.17.00.00
+unspsc7#25.20.17.06.00#Aircraft interface electronics#25.20.17.00.00
+unspsc7#25.20.17.07.00#Aircraft gyros#25.20.17.00.00
+unspsc7#25.20.17.08.00#Aircraft cameras#25.20.17.00.00
+unspsc7#25.20.17.09.00#Aircraft probes or sensors#25.20.17.00.00
+unspsc7#25.20.17.10.00#Aircraft waveguides#25.20.17.00.00
+unspsc7#25.20.18.00.00#Aircraft master control systems#25.20.00.00.00
+unspsc7#25.20.18.01.00#Flight computer systems#25.20.18.00.00
+unspsc7#25.20.18.02.00#Spacecraft command modules#25.20.18.00.00
+unspsc7#25.20.19.00.00#Aircraft emergency systems#25.20.00.00.00
+unspsc7#25.20.19.01.00#Aircraft fire control or extinguishing systems#25.20.19.00.00
+unspsc7#25.20.19.02.00#Aircraft escape or ejection systems#25.20.19.00.00
+unspsc7#25.20.19.03.00#Aircraft warning systems#25.20.19.00.00
+unspsc7#25.20.19.04.00#Parachutes#25.20.19.00.00
+unspsc7#25.20.20.00.00#Aircraft power systems#25.20.00.00.00
+unspsc7#25.20.20.01.00#Spacecraft solar cells#25.20.20.00.00
+unspsc7#25.20.20.02.00#Spacecraft solar arrays#25.20.20.00.00
+unspsc7#25.20.20.03.00#Aircraft power supply units#25.20.20.00.00
+unspsc7#25.20.20.04.00#Auxilliary power unit systems (APUs)#25.20.20.00.00
+unspsc7#25.20.21.00.00#Flight instrumentation#25.20.00.00.00
+unspsc7#25.20.21.01.00#Aerospace cockpit indicators#25.20.21.00.00
+unspsc7#25.20.21.02.00#Aerospace cockpit gauges#25.20.21.00.00
+unspsc7#25.20.21.03.00#Aerospace cockpit display panels#25.20.21.00.00
+unspsc7#25.20.21.04.00#Aerospace cockpit switch panels#25.20.21.00.00
+unspsc7#25.20.21.05.00#Aerospace head up display (HUDs)#25.20.21.00.00
+unspsc7#25.20.22.00.00#Aircraft landing and braking systems#25.20.00.00.00
+unspsc7#25.20.22.01.00#Aircraft braking systems#25.20.22.00.00
+unspsc7#25.20.22.02.00#Aircraft drag chutes#25.20.22.00.00
+unspsc7#25.20.22.03.00#Aircraft wheels#25.20.22.00.00
+unspsc7#25.20.22.04.00#Landing gear assemblies#25.20.22.00.00
+unspsc7#25.20.22.05.00#Aircraft tires#25.20.22.00.00
+unspsc7#25.20.22.06.00#Aicraft anti skid controls#25.20.22.00.00
+unspsc7#25.20.23.00.00#Aircraft passenger restraints#25.20.00.00.00
+unspsc7#25.20.23.01.00#Aircraft lapbelts#25.20.23.00.00
+unspsc7#25.20.23.02.00#Aircraft harness restraints#25.20.23.00.00
+unspsc7#25.20.24.00.00#Aircraft fuel tanks and systems#25.20.00.00.00
+unspsc7#25.20.24.01.00#Aircraft internal fuel tanks#25.20.24.00.00
+unspsc7#25.20.24.02.00#Aircraft fuel drop tanks#25.20.24.00.00
+unspsc7#25.20.24.03.00#Aircraft propellant tanks#25.20.24.00.00
+unspsc7#25.20.24.04.00#Aircraft hybrid fuel storage systems#25.20.24.00.00
+unspsc7#25.20.24.05.00#Aircraft fuel management systems#25.20.24.00.00
+unspsc7#25.20.24.06.00#Postboosters#25.20.24.00.00
+unspsc7#25.20.25.00.00#Aircraft equipment#25.20.00.00.00
+unspsc7#25.20.25.01.00#Aircraft hydraulic systems#25.20.25.00.00
+unspsc7#25.20.25.02.00#Exterior aircraft lighting#25.20.25.00.00
+unspsc7#25.20.25.03.00#Interior aircraft lighting#25.20.25.00.00
+unspsc7#25.20.25.04.00#Aircraft windshield wipers#25.20.25.00.00
+unspsc7#25.20.25.05.00#Aircraft onboard defrosting or defogging systems#25.20.25.00.00
+unspsc7#25.20.25.06.00#Aircraft doors#25.20.25.00.00
+unspsc7#25.20.25.07.00#Aircraft windows#25.20.25.00.00
+unspsc7#25.20.25.08.00#Aircraft windshields#25.20.25.00.00
+unspsc7#25.20.25.09.00#Aircraft shock mounts#25.20.25.00.00
+unspsc7#25.20.25.10.00#Aircraft slip ring assemblies#25.20.25.00.00
+unspsc7#25.20.26.00.00#Aircraft environmental control systems and components#25.20.00.00.00
+unspsc7#25.20.26.01.00#Aircraft environment controllers#25.20.26.00.00
+unspsc7#25.20.26.02.00#Aircraft environment regulators#25.20.26.00.00
+unspsc7#25.20.26.03.00#Aircraft cooling turbines#25.20.26.00.00
+unspsc7#25.20.26.04.00#Aircraft cooling fans#25.20.26.00.00
+unspsc7#25.20.26.05.00#Aircraft heat exchangers#25.20.26.00.00
+unspsc7#25.20.26.06.00#Aircraft water separators#25.20.26.00.00
+unspsc7#25.20.26.07.00#Aircraft oxygen equipment#25.20.26.00.00
+unspsc7#25.20.27.00.00#Aircraft accumulators#25.20.00.00.00
+unspsc7#25.20.27.01.00#Hydraulic aircraft accumulators#25.20.27.00.00
+unspsc7#25.20.27.02.00#Pneumatic aircraft accumulators#25.20.27.00.00
+unspsc7#26.00.00.00.00#Power Generation and Distribution Machinery and Accessories#26.00.00.00.00
+unspsc7#26.10.00.00.00#Power sources#26.00.00.00.00
+unspsc7#26.10.15.00.00#Engines#26.10.00.00.00
+unspsc7#26.10.15.01.00#Hydraulic engines#26.10.15.00.00
+unspsc7#26.10.15.02.00#Pneumatic engines#26.10.15.00.00
+unspsc7#26.10.15.03.00#Gas engines#26.10.15.00.00
+unspsc7#26.10.15.04.00#Diesel engines#26.10.15.00.00
+unspsc7#26.10.15.05.00#Steam engines#26.10.15.00.00
+unspsc7#26.10.15.06.00#Turbine engines#26.10.15.00.00
+unspsc7#26.10.15.07.00#Turbofan engines#26.10.15.00.00
+unspsc7#26.10.15.08.00#Thermal engines#26.10.15.00.00
+unspsc7#26.10.15.09.00#Hydroelectric engines#26.10.15.00.00
+unspsc7#26.10.15.10.00#Rotary engines#26.10.15.00.00
+unspsc7#26.10.15.11.00#Hydraulic turbine engines#26.10.15.00.00
+unspsc7#26.10.15.12.00#Turboprop engines#26.10.15.00.00
+unspsc7#26.10.15.13.00#Engine Repair Kit#26.10.15.00.00
+unspsc7#26.10.16.00.00#Motors#26.10.00.00.00
+unspsc7#26.10.16.01.00#Induction motors#26.10.16.00.00
+unspsc7#26.10.16.02.00#Alternating current (AC) motors#26.10.16.00.00
+unspsc7#26.10.16.03.00#Direct current (DC) motors#26.10.16.00.00
+unspsc7#26.10.16.04.00#Alternating current or direct current (AC/DC) motors#26.10.16.00.00
+unspsc7#26.10.16.05.00#Dynamotors#26.10.16.00.00
+unspsc7#26.10.16.06.00#Servomotors#26.10.16.00.00
+unspsc7#26.10.16.07.00#Torque motors#26.10.16.00.00
+unspsc7#26.10.16.08.00#Liquid rocket motors#26.10.16.00.00
+unspsc7#26.10.16.09.00#Synchronous motors#26.10.16.00.00
+unspsc7#26.10.16.10.00#Solid rocket motors#26.10.16.00.00
+unspsc7#26.10.16.11.00#Single phase motors#26.10.16.00.00
+unspsc7#26.10.16.12.00#Multi phase motors#26.10.16.00.00
+unspsc7#26.10.16.13.00#Hydraulic motors#26.10.16.00.00
+unspsc7#26.10.16.14.00#Step motors#26.10.16.00.00
+unspsc7#26.10.16.15.00#Alternators#26.10.16.00.00
+unspsc7#26.10.16.16.00#Carbon Brushes#26.10.16.00.00
+unspsc7#26.10.17.00.00#Engine components#26.10.00.00.00
+unspsc7#26.10.17.01.00#Aircraft burners#26.10.17.00.00
+unspsc7#26.10.17.02.00#Aircraft engine compressors#26.10.17.00.00
+unspsc7#26.10.17.03.00#Aircraft engine diffusers#26.10.17.00.00
+unspsc7#26.10.17.04.00#Engine mounts#26.10.17.00.00
+unspsc7#26.10.17.05.00#Aircraft drive shafts power take offs or screw jacks#26.10.17.00.00
+unspsc7#26.10.17.06.00#Aircraft transmission units#26.10.17.00.00
+unspsc7#26.10.17.07.00#Balance shafts#26.10.17.00.00
+unspsc7#26.10.17.08.00#Cam followers#26.10.17.00.00
+unspsc7#26.10.17.09.00#Camshaft lifters#26.10.17.00.00
+unspsc7#26.10.17.10.00#Carburetors#26.10.17.00.00
+unspsc7#26.10.17.11.00#Connecting rods#26.10.17.00.00
+unspsc7#26.10.17.12.00#Crankcase ventillation valves#26.10.17.00.00
+unspsc7#26.10.17.13.00#Cylinder heads#26.10.17.00.00
+unspsc7#26.10.17.14.00#Engine coolant radiators#26.10.17.00.00
+unspsc7#26.10.17.15.00#Engine covers or pans#26.10.17.00.00
+unspsc7#26.10.17.16.00#Engine forgings#26.10.17.00.00
+unspsc7#26.10.17.17.00#Engine heaters#26.10.17.00.00
+unspsc7#26.10.17.18.00#Engine ignition systems#26.10.17.00.00
+unspsc7#26.10.17.19.00#Supercharger#26.10.17.00.00
+unspsc7#26.10.17.20.00#Turbocharger#26.10.17.00.00
+unspsc7#26.10.17.21.00#Engine pulleys#26.10.17.00.00
+unspsc7#26.10.17.22.00#Fuel injection systems#26.10.17.00.00
+unspsc7#26.10.17.23.00#Fuel vapor canister#26.10.17.00.00
+unspsc7#26.10.17.24.00#Glow plugs#26.10.17.00.00
+unspsc7#26.10.17.25.00#Oil dip sticks and tubes#26.10.17.00.00
+unspsc7#26.10.17.26.00#Oil strainers#26.10.17.00.00
+unspsc7#26.10.17.27.00#Piston rings#26.10.17.00.00
+unspsc7#26.10.17.28.00#Push rod tubes#26.10.17.00.00
+unspsc7#26.10.17.29.00#Rocker arm balls#26.10.17.00.00
+unspsc7#26.10.17.30.00#Rocker arm shafts#26.10.17.00.00
+unspsc7#26.10.17.31.00#Rocker arms#26.10.17.00.00
+unspsc7#26.10.17.32.00#Spark plugs#26.10.17.00.00
+unspsc7#26.10.17.33.00#Carburetor jet#26.10.17.00.00
+unspsc7#26.10.17.34.00#Carburetor diaphragms#26.10.17.00.00
+unspsc7#26.10.17.35.00#Oil pan#26.10.17.00.00
+unspsc7#26.10.17.36.00#Pistons#26.10.17.00.00
+unspsc7#26.10.17.37.00#Timing chain#26.10.17.00.00
+unspsc7#26.10.17.38.00#Intake manifolds#26.10.17.00.00
+unspsc7#26.10.17.39.00#Exhaust manifolds#26.10.17.00.00
+unspsc7#26.10.17.40.00#Fuel injectors#26.10.17.00.00
+unspsc7#26.10.17.41.00#Engine sleeves#26.10.17.00.00
+unspsc7#26.10.17.42.00#Fuel injection manifolds#26.10.17.00.00
+unspsc7#26.10.17.43.00#Engine valves#26.10.17.00.00
+unspsc7#26.10.17.44.00#Turbocharger#26.10.17.00.00
+unspsc7#26.10.17.45.00#camshaft#26.10.17.00.00
+unspsc7#26.10.17.46.00#Cylinder head#26.10.17.00.00
+unspsc7#26.10.17.47.00#Push rods#26.10.17.00.00
+unspsc7#26.10.17.48.00#Engine flywheel#26.10.17.00.00
+unspsc7#26.10.17.49.00#Crankshaft#26.10.17.00.00
+unspsc7#26.10.17.50.00#Throttle#26.10.17.00.00
+unspsc7#26.10.17.51.00#Electronic engine controls#26.10.17.00.00
+unspsc7#26.10.17.52.00#Vibration dampers#26.10.17.00.00
+unspsc7#26.10.18.00.00#Motor or generator components#26.10.00.00.00
+unspsc7#26.10.18.01.00#Motor brushes#26.10.18.00.00
+unspsc7#26.10.18.02.00#Armatures#26.10.18.00.00
+unspsc7#26.10.18.03.00#Rotors or stators#26.10.18.00.00
+unspsc7#26.10.18.04.00#Motor mounts or bases#26.10.18.00.00
+unspsc7#26.10.19.00.00#Internal combustion engine components#26.10.00.00.00
+unspsc7#26.10.19.01.00#Crank shafts#26.10.19.00.00
+unspsc7#26.10.19.02.00#Spark plugs#26.10.19.00.00
+unspsc7#26.10.19.03.00#Camshaft#26.10.19.00.00
+unspsc7#26.10.19.04.00#Fuel injection nozzle#26.10.19.00.00
+unspsc7#26.10.19.05.00#Cylinder block#26.10.19.00.00
+unspsc7#26.11.00.00.00#Batteries and generators and kinetic power transmission#26.00.00.00.00
+unspsc7#26.11.15.00.00#Kinetic power transmission#26.11.00.00.00
+unspsc7#26.11.15.01.00#Commutators#26.11.15.00.00
+unspsc7#26.11.15.03.00#Adjustable speed drives#26.11.15.00.00
+unspsc7#26.11.15.04.00#Belt drives#26.11.15.00.00
+unspsc7#26.11.15.05.00#Chain drives#26.11.15.00.00
+unspsc7#26.11.15.06.00#Linear motion devices#26.11.15.00.00
+unspsc7#26.11.15.07.00#Clutches#26.11.15.00.00
+unspsc7#26.11.15.08.00#Power take offs#26.11.15.00.00
+unspsc7#26.11.15.09.00#Transmission yokes#26.11.15.00.00
+unspsc7#26.11.15.10.00#Transmission shafts#26.11.15.00.00
+unspsc7#26.11.15.11.00#Universal joints#26.11.15.00.00
+unspsc7#26.11.15.12.00#Axles#26.11.15.00.00
+unspsc7#26.11.15.13.00#Power transmission chains#26.11.15.00.00
+unspsc7#26.11.15.14.00#Knuckle joints#26.11.15.00.00
+unspsc7#26.11.15.15.00#Servo controller#26.11.15.00.00
+unspsc7#26.11.15.16.00#Step drive or stepper drive or step indexer#26.11.15.00.00
+unspsc7#26.11.15.17.00#Planet carrier#26.11.15.00.00
+unspsc7#26.11.15.18.00#Tension strut#26.11.15.00.00
+unspsc7#26.11.15.19.00#Torque converters#26.11.15.00.00
+unspsc7#26.11.15.20.00#Trunnions#26.11.15.00.00
+unspsc7#26.11.15.21.00#Pusher head#26.11.15.00.00
+unspsc7#26.11.15.22.00#Pusher assembly#26.11.15.00.00
+unspsc7#26.11.15.23.00#Backstops#26.11.15.00.00
+unspsc7#26.11.16.00.00#Power generators#26.11.00.00.00
+unspsc7#26.11.16.01.00#Diesel generators#26.11.16.00.00
+unspsc7#26.11.16.02.00#Hydro electric generators#26.11.16.00.00
+unspsc7#26.11.16.03.00#Wind generators#26.11.16.00.00
+unspsc7#26.11.16.04.00#Gas generators#26.11.16.00.00
+unspsc7#26.11.16.05.00#Thermal generators#26.11.16.00.00
+unspsc7#26.11.16.06.00#Hydraulic generators#26.11.16.00.00
+unspsc7#26.11.16.07.00#Solar generators#26.11.16.00.00
+unspsc7#26.11.17.00.00#Batteries and accessories#26.11.00.00.00
+unspsc7#26.11.17.01.00#Rechargeable batteries#26.11.17.00.00
+unspsc7#26.11.17.02.00#Alkaline batteries#26.11.17.00.00
+unspsc7#26.11.17.03.00#Vehicle batteries#26.11.17.00.00
+unspsc7#26.11.17.04.00#Battery chargers#26.11.17.00.00
+unspsc7#26.11.17.05.00#Dry cell batteries#26.11.17.00.00
+unspsc7#26.11.17.06.00#Electronic batteries#26.11.17.00.00
+unspsc7#26.11.17.07.00#Lead acid batteries#26.11.17.00.00
+unspsc7#26.11.17.08.00#Nickel iron batteries#26.11.17.00.00
+unspsc7#26.11.17.09.00#Nickel cadmium batteries#26.11.17.00.00
+unspsc7#26.11.17.10.00#Product specific battery packs#26.11.17.00.00
+unspsc7#26.11.17.11.00#Lithium batteries#26.11.17.00.00
+unspsc7#26.11.17.12.00#Nickel hydrogen batteries#26.11.17.00.00
+unspsc7#26.11.17.13.00#Thermal batteries#26.11.17.00.00
+unspsc7#26.11.17.14.00#Zync air#26.11.17.00.00
+unspsc7#26.11.17.15.00#Zinc coal battery#26.11.17.00.00
+unspsc7#26.11.17.16.00#Mercury oxide battery#26.11.17.00.00
+unspsc7#26.11.17.17.00#Manganese batteries#26.11.17.00.00
+unspsc7#26.11.17.18.00#Silver oxide batteries#26.11.17.00.00
+unspsc7#26.11.17.19.00#Battery testers#26.11.17.00.00
+unspsc7#26.11.18.00.00#Drive components#26.11.00.00.00
+unspsc7#26.11.18.01.00#V belts#26.11.18.00.00
+unspsc7#26.11.18.02.00#Geared timing belts#26.11.18.00.00
+unspsc7#26.11.18.03.00#Round belts#26.11.18.00.00
+unspsc7#26.11.18.04.00#Flat belts#26.11.18.00.00
+unspsc7#26.11.18.05.00#Belt tensioners#26.11.18.00.00
+unspsc7#26.11.18.06.00#Transmission pulleys#26.11.18.00.00
+unspsc7#26.11.18.07.00#Timing pulley#26.11.18.00.00
+unspsc7#26.11.18.08.00#Trantorque#26.11.18.00.00
+unspsc7#26.11.18.09.00#Belt guards#26.11.18.00.00
+unspsc7#26.11.19.00.00#Clutches#26.11.00.00.00
+unspsc7#26.11.19.01.00#Plate clutches#26.11.19.00.00
+unspsc7#26.11.19.02.00#Diaphragm clutch#26.11.19.00.00
+unspsc7#26.11.19.03.00#Centrifugal clutch#26.11.19.00.00
+unspsc7#26.11.19.04.00#Semi centrifugal clutch#26.11.19.00.00
+unspsc7#26.11.19.05.00#Free wheel clutch#26.11.19.00.00
+unspsc7#26.11.19.06.00#Torque converter#26.11.19.00.00
+unspsc7#26.11.19.07.00#Fluid coupling#26.11.19.00.00
+unspsc7#26.11.19.08.00#Cam clutches#26.11.19.00.00
+unspsc7#26.11.20.00.00#Clutch parts and accessories#26.11.00.00.00
+unspsc7#26.11.20.01.00#Pressure plate#26.11.20.00.00
+unspsc7#26.11.20.02.00#Driven plate#26.11.20.00.00
+unspsc7#26.11.20.03.00#Clutch plates#26.11.20.00.00
+unspsc7#26.11.21.00.00#Industrial braking systems#26.11.00.00.00
+unspsc7#26.11.21.01.00#Air or pneumatic braking systems#26.11.21.00.00
+unspsc7#26.11.21.02.00#Hydraulic braking systems#26.11.21.00.00
+unspsc7#26.11.21.03.00#Mechanical braking systems#26.11.21.00.00
+unspsc7#26.11.21.04.00#Braking clutch assemblies#26.11.21.00.00
+unspsc7#26.12.00.00.00#Electrical wire and cable and harness#26.00.00.00.00
+unspsc7#26.12.15.00.00#Electrical wire#26.12.00.00.00
+unspsc7#26.12.15.01.00#Heating wire#26.12.15.00.00
+unspsc7#26.12.15.05.00#Fixture wire#26.12.15.00.00
+unspsc7#26.12.15.07.00#Radio or television wire#26.12.15.00.00
+unspsc7#26.12.15.08.00#Automotive or aircraft wire#26.12.15.00.00
+unspsc7#26.12.15.09.00#Magnet wire#26.12.15.00.00
+unspsc7#26.12.15.10.00#Trolley wire#26.12.15.00.00
+unspsc7#26.12.15.14.00#Underground wire#26.12.15.00.00
+unspsc7#26.12.15.15.00#Silicon asbestos (SA) wire#26.12.15.00.00
+unspsc7#26.12.15.17.00#Copper wire#26.12.15.00.00
+unspsc7#26.12.15.19.00#Copper clad aluminum wire#26.12.15.00.00
+unspsc7#26.12.15.20.00#Copper steel wire#26.12.15.00.00
+unspsc7#26.12.15.21.00#Bronze wire#26.12.15.00.00
+unspsc7#26.12.15.22.00#Bare wire#26.12.15.00.00
+unspsc7#26.12.15.23.00#Covered but not insulated wire#26.12.15.00.00
+unspsc7#26.12.15.24.00#Insulated or covered wire#26.12.15.00.00
+unspsc7#26.12.15.32.00#Inter connect wire#26.12.15.00.00
+unspsc7#26.12.15.33.00#Kaptan wire#26.12.15.00.00
+unspsc7#26.12.15.34.00#Polymide wire#26.12.15.00.00
+unspsc7#26.12.15.35.00#Extension cord#26.12.15.00.00
+unspsc7#26.12.15.36.00#Extension cord#26.12.15.00.00
+unspsc7#26.12.15.37.00#Wire assembly#26.12.15.00.00
+unspsc7#26.12.15.38.00#Wire assembly#26.12.15.00.00
+unspsc7#26.12.16.00.00#Electrical cable#26.12.00.00.00
+unspsc7#26.12.16.01.00#Heating cable#26.12.16.00.00
+unspsc7#26.12.16.02.00#Submarine cable#26.12.16.00.00
+unspsc7#26.12.16.03.00#Control cable#26.12.16.00.00
+unspsc7#26.12.16.04.00#Signal cable#26.12.16.00.00
+unspsc7#26.12.16.05.00#Automotive or aircraft cable#26.12.16.00.00
+unspsc7#26.12.16.06.00#Coaxial cable#26.12.16.00.00
+unspsc7#26.12.16.07.00#Fiber optic cable#26.12.16.00.00
+unspsc7#26.12.16.08.00#Aerial cable#26.12.16.00.00
+unspsc7#26.12.16.09.00#Network cable#26.12.16.00.00
+unspsc7#26.12.16.10.00#Bronze cable#26.12.16.00.00
+unspsc7#26.12.16.11.00#Bare cable#26.12.16.00.00
+unspsc7#26.12.16.12.00#Covered but not insulated cable#26.12.16.00.00
+unspsc7#26.12.16.13.00#Insulated or covered cable#26.12.16.00.00
+unspsc7#26.12.16.14.00#Building cable#26.12.16.00.00
+unspsc7#26.12.16.15.00#Power cable for direct burial#26.12.16.00.00
+unspsc7#26.12.16.16.00#Telecommunications cable#26.12.16.00.00
+unspsc7#26.12.16.17.00#Triaxial cable#26.12.16.00.00
+unspsc7#26.12.16.18.00#Crosslinked polykaene cable#26.12.16.00.00
+unspsc7#26.12.16.19.00#Floropolymer cable#26.12.16.00.00
+unspsc7#26.12.16.20.00#Inter connect cable#26.12.16.00.00
+unspsc7#26.12.16.21.00#Kaptan cable#26.12.16.00.00
+unspsc7#26.12.16.22.00#Polymide cable#26.12.16.00.00
+unspsc7#26.12.16.23.00#Radio frequency (RF) cable#26.12.16.00.00
+unspsc7#26.12.16.24.00#Ribbon or flat cable#26.12.16.00.00
+unspsc7#26.12.16.25.00#Copper cable#26.12.16.00.00
+unspsc7#26.12.17.00.00#Wiring harness#26.12.00.00.00
+unspsc7#26.12.17.01.00#Panel wiring harness#26.12.17.00.00
+unspsc7#26.12.17.02.00#Trunk wiring harness#26.12.17.00.00
+unspsc7#26.12.17.03.00#Communication wiring harness#26.12.17.00.00
+unspsc7#26.12.17.04.00#Specialty wiring harness#26.12.17.00.00
+unspsc7#26.13.00.00.00#Power generation#26.00.00.00.00
+unspsc7#26.13.15.00.00#Power plants#26.13.00.00.00
+unspsc7#26.13.15.01.00#Diesel power plants#26.13.15.00.00
+unspsc7#26.13.15.02.00#Geothermal power plants#26.13.15.00.00
+unspsc7#26.13.15.03.00#Hydro power plants#26.13.15.00.00
+unspsc7#26.13.15.04.00#Gas power plants#26.13.15.00.00
+unspsc7#26.13.15.05.00#Marine power plants#26.13.15.00.00
+unspsc7#26.13.15.06.00#Petrol power plants#26.13.15.00.00
+unspsc7#26.13.15.07.00#Solar power plants#26.13.15.00.00
+unspsc7#26.13.15.08.00#Steam power plants#26.13.15.00.00
+unspsc7#26.13.15.09.00#Wind power plants#26.13.15.00.00
+unspsc7#26.13.15.10.00#Thermal power plants#26.13.15.00.00
+unspsc7#26.14.00.00.00#Atomic and nuclear energy machinery and equipment#26.00.00.00.00
+unspsc7#26.14.16.00.00#Subcritical assembly equipment#26.14.00.00.00
+unspsc7#26.14.16.01.00#Subcritical assembly fuel#26.14.16.00.00
+unspsc7#26.14.16.02.00#Subcritical assembly components#26.14.16.00.00
+unspsc7#26.14.16.03.00#Subcritical assembly moderator#26.14.16.00.00
+unspsc7#26.14.17.00.00#Dosimetry equipment#26.14.00.00.00
+unspsc7#26.14.17.01.00#Ionization chamber dosimeters#26.14.17.00.00
+unspsc7#26.14.17.02.00#Dosimeters#26.14.17.00.00
+unspsc7#26.14.17.03.00#Secondary standard dosimetry systems#26.14.17.00.00
+unspsc7#26.14.17.04.00#Phantom dosimeters#26.14.17.00.00
+unspsc7#26.14.18.00.00#Hot cell devices#26.14.00.00.00
+unspsc7#26.14.18.01.00#Hot cell remote handling equipment#26.14.18.00.00
+unspsc7#26.14.18.02.00#Hot cell remote viewing device#26.14.18.00.00
+unspsc7#26.14.18.03.00#Hot cell shielding doors#26.14.18.00.00
+unspsc7#26.14.18.04.00#Hot cell samplers#26.14.18.00.00
+unspsc7#26.14.18.05.00#Hot cell sample processing equipment#26.14.18.00.00
+unspsc7#26.14.18.06.00#Hot cell special tools#26.14.18.00.00
+unspsc7#26.14.18.07.00#Hot cell lead glass windows#26.14.18.00.00
+unspsc7#26.14.18.08.00#Hot cell decontamination systems#26.14.18.00.00
+unspsc7#26.14.18.09.00#Hot cell penetration devices#26.14.18.00.00
+unspsc7#26.14.19.00.00#Industrial nucleonic instruments#26.14.00.00.00
+unspsc7#26.14.19.01.00#Industrial nucleonic airborne dust measuring systems#26.14.19.00.00
+unspsc7#26.14.19.02.00#Beta gauge measuring systems#26.14.19.00.00
+unspsc7#26.14.19.04.00#Industrial nucleonic liquid level gauges#26.14.19.00.00
+unspsc7#26.14.19.05.00#Industrial nucleonic mass per unit ore measuring systems#26.14.19.00.00
+unspsc7#26.14.19.06.00#Industrial nucleonic moisture measuring systems#26.14.19.00.00
+unspsc7#26.14.19.07.00#Industrial nucleonic thickness measuring systems#26.14.19.00.00
+unspsc7#26.14.19.08.00#Industrial nucleonic flow measuring systems#26.14.19.00.00
+unspsc7#26.14.19.09.00#Isotope separators#26.14.19.00.00
+unspsc7#26.14.19.10.00#Isotope production facilities#26.14.19.00.00
+unspsc7#26.14.19.11.00#Isotope calibrator activity meters#26.14.19.00.00
+unspsc7#26.14.20.00.00#Irradiation equipment#26.14.00.00.00
+unspsc7#26.14.20.01.00#Irradiation gamma sources#26.14.20.00.00
+unspsc7#26.14.20.02.00#Magnet systems#26.14.20.00.00
+unspsc7#26.14.20.03.00#NIM nuclear electronic units#26.14.20.00.00
+unspsc7#26.14.20.04.00#Neutron irradiators#26.14.20.00.00
+unspsc7#26.14.20.05.00#Irradiation testing capsules#26.14.20.00.00
+unspsc7#26.14.20.06.00#Irradiation sample transfer system#26.14.20.00.00
+unspsc7#26.14.20.07.00#Neutron generators#26.14.20.00.00
+unspsc7#26.14.21.00.00#Nuclear reactor equipment#26.14.00.00.00
+unspsc7#26.14.21.01.00#Nuclear reactor specimen irradiation containers#26.14.21.00.00
+unspsc7#26.14.21.06.00#Nuclear reactor control rod systems#26.14.21.00.00
+unspsc7#26.14.21.08.00#Nuclear reactor in core neutron flux instrumentation#26.14.21.00.00
+unspsc7#26.14.21.17.00#Nuclear reactor earthquake instrumentation#26.14.21.00.00
+unspsc7#26.14.22.00.00#Nuclear fuel equipment#26.14.00.00.00
+unspsc7#26.14.22.01.00#Nuclear fuel cladding tubes#26.14.22.00.00
+unspsc7#26.14.22.02.00#Nuclear fuel element failure detection systems#26.14.22.00.00
+unspsc7#26.14.23.00.00#Radiation shielding equipment#26.14.00.00.00
+unspsc7#26.14.23.02.00#Lead screens#26.14.23.00.00
+unspsc7#26.14.23.03.00#Film badges#26.14.23.00.00
+unspsc7#26.14.23.04.00#Radiographic equipment#26.14.23.00.00
+unspsc7#26.14.23.06.00#Shielded containers for radiation protection#26.14.23.00.00
+unspsc7#26.14.23.07.00#Lead chambers or safes for radiation protection#26.14.23.00.00
+unspsc7#26.14.23.08.00#Lead bricks for radiation protection#26.14.23.00.00
+unspsc7#26.14.23.10.00#Glove boxes for radiation protection#26.14.23.00.00
+unspsc7#26.14.23.11.00#Radiation shielding windows#26.14.23.00.00
+unspsc7#26.14.23.12.00#Lead for radiation shielding#26.14.23.00.00
+unspsc7#26.14.24.00.00#Radioactive waste equipment#26.14.00.00.00
+unspsc7#26.14.24.01.00#Radioactive waste treatment compactors or incinerators#26.14.24.00.00
+unspsc7#26.14.24.02.00#Nuclear radiation absorbers#26.14.24.00.00
+unspsc7#26.14.24.03.00#Atomic energy evaporators or concentrators or dryers#26.14.24.00.00
+unspsc7#26.14.24.04.00#Door interlocking systems#26.14.24.00.00
+unspsc7#26.14.24.05.00#Radioactive waste dosage systems#26.14.24.00.00
+unspsc7#26.14.24.06.00#Radioactive waste solidification systems#26.14.24.00.00
+unspsc7#26.14.24.07.00#Radioactive waste disposal systems#26.14.24.00.00
+unspsc7#26.14.24.08.00#Radioactive waste treatment facilities#26.14.24.00.00
+unspsc7#27.00.00.00.00#Tools and General Machinery#27.00.00.00.00
+unspsc7#27.11.00.00.00#Hand tools#27.00.00.00.00
+unspsc7#27.11.15.00.00#Cutting and crimping and punching tools#27.11.00.00.00
+unspsc7#27.11.15.01.00#Knife blades#27.11.15.00.00
+unspsc7#27.11.15.02.00#Razor knives#27.11.15.00.00
+unspsc7#27.11.15.03.00#Utility knives#27.11.15.00.00
+unspsc7#27.11.15.04.00#Pocket knives#27.11.15.00.00
+unspsc7#27.11.15.05.00#Punches or nail sets or drifts#27.11.15.00.00
+unspsc7#27.11.15.06.00#Shears#27.11.15.00.00
+unspsc7#27.11.15.07.00#Metal cutters#27.11.15.00.00
+unspsc7#27.11.15.08.00#Saws#27.11.15.00.00
+unspsc7#27.11.15.09.00#Augers#27.11.15.00.00
+unspsc7#27.11.15.10.00#Stripping tools#27.11.15.00.00
+unspsc7#27.11.15.11.00#Wire cutters#27.11.15.00.00
+unspsc7#27.11.15.12.00#Bolt cutters#27.11.15.00.00
+unspsc7#27.11.15.13.00#Hose cutter#27.11.15.00.00
+unspsc7#27.11.15.14.00#Glass cutters#27.11.15.00.00
+unspsc7#27.11.15.15.00#Hand or push drill#27.11.15.00.00
+unspsc7#27.11.15.16.00#Punching pliers#27.11.15.00.00
+unspsc7#27.11.15.17.00#Knife blade sets or dispensers#27.11.15.00.00
+unspsc7#27.11.15.20.00#Nut splitters#27.11.15.00.00
+unspsc7#27.11.15.21.00#Nibblers#27.11.15.00.00
+unspsc7#27.11.16.00.00#Forming tools#27.11.00.00.00
+unspsc7#27.11.16.01.00#Mallets#27.11.16.00.00
+unspsc7#27.11.16.02.00#Hammers#27.11.16.00.00
+unspsc7#27.11.16.03.00#Anvils#27.11.16.00.00
+unspsc7#27.11.16.04.00#Hatchets#27.11.16.00.00
+unspsc7#27.11.16.05.00#Picks#27.11.16.00.00
+unspsc7#27.11.16.06.00#Bolt cutters#27.11.16.00.00
+unspsc7#27.11.16.07.00#Swaging tools#27.11.16.00.00
+unspsc7#27.11.17.00.00#Wrenches and drivers#27.11.00.00.00
+unspsc7#27.11.17.01.00#Screwdrivers#27.11.17.00.00
+unspsc7#27.11.17.02.00#Nut drivers#27.11.17.00.00
+unspsc7#27.11.17.03.00#Socket sets#27.11.17.00.00
+unspsc7#27.11.17.04.00#Sockets#27.11.17.00.00
+unspsc7#27.11.17.05.00#Box end wrenches#27.11.17.00.00
+unspsc7#27.11.17.06.00#Open end wrenches#27.11.17.00.00
+unspsc7#27.11.17.07.00#Adjustable wrenches#27.11.17.00.00
+unspsc7#27.11.17.08.00#Pipe wrenches#27.11.17.00.00
+unspsc7#27.11.17.09.00#Screw extractors#27.11.17.00.00
+unspsc7#27.11.17.10.00#Hex keys#27.11.17.00.00
+unspsc7#27.11.17.11.00#Ratchets#27.11.17.00.00
+unspsc7#27.11.17.12.00#Pullers#27.11.17.00.00
+unspsc7#27.11.17.13.00#Combination wrenches#27.11.17.00.00
+unspsc7#27.11.17.14.00#Specialty wrenches#27.11.17.00.00
+unspsc7#27.11.17.15.00#Torque wrenches#27.11.17.00.00
+unspsc7#27.11.17.16.00#Torx keys#27.11.17.00.00
+unspsc7#27.11.17.17.00#Pipe extractors#27.11.17.00.00
+unspsc7#27.11.17.18.00#Tap extractors#27.11.17.00.00
+unspsc7#27.11.17.19.00#Torque wrench#27.11.17.00.00
+unspsc7#27.11.17.20.00#T handle tap wrenches#27.11.17.00.00
+unspsc7#27.11.17.21.00#Cranks#27.11.17.00.00
+unspsc7#27.11.17.22.00#Die stocks#27.11.17.00.00
+unspsc7#27.11.17.23.00#Tube wrenches#27.11.17.00.00
+unspsc7#27.11.17.24.00#Hook wrenches#27.11.17.00.00
+unspsc7#27.11.17.25.00#Offset socket wrenches#27.11.17.00.00
+unspsc7#27.11.17.26.00#Spanner wrenches#27.11.17.00.00
+unspsc7#27.11.18.00.00#Measuring and layout tools#27.11.00.00.00
+unspsc7#27.11.18.01.00#Tape measures#27.11.18.00.00
+unspsc7#27.11.18.02.00#Levels#27.11.18.00.00
+unspsc7#27.11.18.03.00#Squares#27.11.18.00.00
+unspsc7#27.11.18.04.00#Plumb bobs#27.11.18.00.00
+unspsc7#27.11.18.05.00#Protractors#27.11.18.00.00
+unspsc7#27.11.18.06.00#Nail or router gauges#27.11.18.00.00
+unspsc7#27.11.18.07.00#Straight edges#27.11.18.00.00
+unspsc7#27.11.18.08.00#Rules#27.11.18.00.00
+unspsc7#27.11.18.09.00#Bevels#27.11.18.00.00
+unspsc7#27.11.18.10.00#Stud finders#27.11.18.00.00
+unspsc7#27.11.18.11.00#Calipers#27.11.18.00.00
+unspsc7#27.11.19.00.00#Rough and finishing tools#27.11.00.00.00
+unspsc7#27.11.19.01.00#Cold chisels#27.11.19.00.00
+unspsc7#27.11.19.02.00#Files#27.11.19.00.00
+unspsc7#27.11.19.03.00#Planes#27.11.19.00.00
+unspsc7#27.11.19.04.00#Rasps#27.11.19.00.00
+unspsc7#27.11.19.05.00#Grinders#27.11.19.00.00
+unspsc7#27.11.19.06.00#Wood chisels#27.11.19.00.00
+unspsc7#27.11.19.07.00#Wire brushes#27.11.19.00.00
+unspsc7#27.11.19.08.00#Sharpening tools or kits#27.11.19.00.00
+unspsc7#27.11.19.09.00#Spatulas#27.11.19.00.00
+unspsc7#27.11.19.11.00#Cross cut chisels#27.11.19.00.00
+unspsc7#27.11.20.00.00#Garden tools#27.11.00.00.00
+unspsc7#27.11.20.01.00#Machetes#27.11.20.00.00
+unspsc7#27.11.20.02.00#Spades#27.11.20.00.00
+unspsc7#27.11.20.03.00#Rakes#27.11.20.00.00
+unspsc7#27.11.20.04.00#Shovels#27.11.20.00.00
+unspsc7#27.11.20.05.00#Axes#27.11.20.00.00
+unspsc7#27.11.20.06.00#Scythes#27.11.20.00.00
+unspsc7#27.11.20.07.00#Secateurs or pruning shears#27.11.20.00.00
+unspsc7#27.11.20.08.00#Hoes#27.11.20.00.00
+unspsc7#27.11.20.09.00#Scrapers#27.11.20.00.00
+unspsc7#27.11.20.10.00#Garden forks#27.11.20.00.00
+unspsc7#27.11.20.11.00#Tool handles#27.11.20.00.00
+unspsc7#27.11.20.12.00#Garden riddles#27.11.20.00.00
+unspsc7#27.11.20.13.00#Post hole digger#27.11.20.00.00
+unspsc7#27.11.20.14.00#Lawnmowers#27.11.20.00.00
+unspsc7#27.11.20.15.00#Lawn scarifiers#27.11.20.00.00
+unspsc7#27.11.20.16.00#Hedge clippers#27.11.20.00.00
+unspsc7#27.11.20.17.00#Digging bars#27.11.20.00.00
+unspsc7#27.11.21.00.00#Holding and clamping tools#27.11.00.00.00
+unspsc7#27.11.21.01.00#Pipe vises#27.11.21.00.00
+unspsc7#27.11.21.02.00#Bench vises#27.11.21.00.00
+unspsc7#27.11.21.03.00#Hand clamps#27.11.21.00.00
+unspsc7#27.11.21.04.00#Tongs#27.11.21.00.00
+unspsc7#27.11.21.05.00#Tweezers#27.11.21.00.00
+unspsc7#27.11.21.06.00#Linemans pliers#27.11.21.00.00
+unspsc7#27.11.21.07.00#Adjustable widemouth pliers#27.11.21.00.00
+unspsc7#27.11.21.08.00#Needlenose pliers#27.11.21.00.00
+unspsc7#27.11.21.09.00#Magnetic tools#27.11.21.00.00
+unspsc7#27.11.21.10.00#Retaining ring pliers#27.11.21.00.00
+unspsc7#27.11.21.11.00#Alligator pliers#27.11.21.00.00
+unspsc7#27.11.21.12.00#Tongue and groove pliers#27.11.21.00.00
+unspsc7#27.11.21.13.00#Slip or groove joint pliers#27.11.21.00.00
+unspsc7#27.11.21.14.00#Diagonal cut pliers#27.11.21.00.00
+unspsc7#27.11.21.15.00#Locking pliers#27.11.21.00.00
+unspsc7#27.11.21.16.00#Fence pliers#27.11.21.00.00
+unspsc7#27.11.21.17.00#End cut pliers#27.11.21.00.00
+unspsc7#27.11.21.18.00#Wire lug crimping tool#27.11.21.00.00
+unspsc7#27.11.21.19.00#Light bulb changer#27.11.21.00.00
+unspsc7#27.11.21.20.00#C clamps#27.11.21.00.00
+unspsc7#27.11.21.21.00#Corner clamps#27.11.21.00.00
+unspsc7#27.11.21.22.00#Sheet metal pliers#27.11.21.00.00
+unspsc7#27.11.21.23.00#Bench dog#27.11.21.00.00
+unspsc7#27.11.21.24.00#Tensioners#27.11.21.00.00
+unspsc7#27.11.21.25.00#Round nose pliers#27.11.21.00.00
+unspsc7#27.11.21.26.00#Flat nose pliers#27.11.21.00.00
+unspsc7#27.11.21.27.00#Strap wrenches#27.11.21.00.00
+unspsc7#27.11.22.00.00#Masonry and concrete tools#27.11.00.00.00
+unspsc7#27.11.22.01.00#Trowels#27.11.22.00.00
+unspsc7#27.11.22.02.00#Floats#27.11.22.00.00
+unspsc7#27.11.22.03.00#Edgers#27.11.22.00.00
+unspsc7#27.11.22.04.00#Cement mixers#27.11.22.00.00
+unspsc7#27.11.23.00.00#Marking tools#27.11.00.00.00
+unspsc7#27.11.23.01.00#Branders#27.11.23.00.00
+unspsc7#27.11.23.02.00#Awls#27.11.23.00.00
+unspsc7#27.11.23.03.00#Scribers#27.11.23.00.00
+unspsc7#27.11.23.04.00#Chalk lines#27.11.23.00.00
+unspsc7#27.11.23.05.00#Metal markers or holders#27.11.23.00.00
+unspsc7#27.11.23.06.00#Metal stamps#27.11.23.00.00
+unspsc7#27.11.24.00.00#Fastener setting tools#27.11.00.00.00
+unspsc7#27.11.24.01.00#Staple guns#27.11.24.00.00
+unspsc7#27.11.24.02.00#Rivet tools#27.11.24.00.00
+unspsc7#27.11.24.03.00#Banders#27.11.24.00.00
+unspsc7#27.11.24.04.00#Anchor setting tools#27.11.24.00.00
+unspsc7#27.11.24.05.00#Bolt heaters#27.11.24.00.00
+unspsc7#27.11.25.00.00#Prying and bending tools#27.11.00.00.00
+unspsc7#27.11.25.01.00#Pipe bending tools#27.11.25.00.00
+unspsc7#27.11.25.02.00#Pry bars#27.11.25.00.00
+unspsc7#27.11.25.03.00#Conduit benders#27.11.25.00.00
+unspsc7#27.11.25.04.00#Wedges#27.11.25.00.00
+unspsc7#27.11.25.05.00#Packing hooks#27.11.25.00.00
+unspsc7#27.11.25.06.00#Hickeys#27.11.25.00.00
+unspsc7#27.11.26.00.00#Sealing tools#27.11.00.00.00
+unspsc7#27.11.26.01.00#Putty knives#27.11.26.00.00
+unspsc7#27.11.26.02.00#Caulking tools#27.11.26.00.00
+unspsc7#27.11.27.00.00#Power tools#27.11.00.00.00
+unspsc7#27.11.27.01.00#Power blowers#27.11.27.00.00
+unspsc7#27.11.27.02.00#Power buffers#27.11.27.00.00
+unspsc7#27.11.27.03.00#Power drills#27.11.27.00.00
+unspsc7#27.11.27.04.00#Power grinders#27.11.27.00.00
+unspsc7#27.11.27.05.00#Demolition hammers#27.11.27.00.00
+unspsc7#27.11.27.06.00#Power planes#27.11.27.00.00
+unspsc7#27.11.27.07.00#Power routers#27.11.27.00.00
+unspsc7#27.11.27.08.00#Power sanders#27.11.27.00.00
+unspsc7#27.11.27.09.00#Power saws#27.11.27.00.00
+unspsc7#27.11.27.10.00#Power screwguns#27.11.27.00.00
+unspsc7#27.11.27.11.00#Power staple guns#27.11.27.00.00
+unspsc7#27.11.27.12.00#Power trimmers#27.11.27.00.00
+unspsc7#27.11.27.13.00#Impact wrenches#27.11.27.00.00
+unspsc7#27.11.27.14.00#Power caulking guns#27.11.27.00.00
+unspsc7#27.11.27.15.00#Power chippers#27.11.27.00.00
+unspsc7#27.11.27.16.00#Power nail guns#27.11.27.00.00
+unspsc7#27.11.27.17.00#Heat guns#27.11.27.00.00
+unspsc7#27.11.27.18.00#Engravers#27.11.27.00.00
+unspsc7#27.11.27.19.00#Glue guns#27.11.27.00.00
+unspsc7#27.11.27.20.00#Torque tools#27.11.27.00.00
+unspsc7#27.11.27.21.00#Biscuit jointers#27.11.27.00.00
+unspsc7#27.11.28.00.00#Tool attachments#27.11.00.00.00
+unspsc7#27.11.28.01.00#Drill bits#27.11.28.00.00
+unspsc7#27.11.28.02.00#Saw blades#27.11.28.00.00
+unspsc7#27.11.28.03.00#End mills#27.11.28.00.00
+unspsc7#27.11.28.04.00#Stamping dies or punches#27.11.28.00.00
+unspsc7#27.11.28.05.00#Threading dies#27.11.28.00.00
+unspsc7#27.11.28.06.00#Threading taps#27.11.28.00.00
+unspsc7#27.11.28.07.00#Chucks#27.11.28.00.00
+unspsc7#27.11.28.08.00#Collets#27.11.28.00.00
+unspsc7#27.11.28.09.00#Tool holders#27.11.28.00.00
+unspsc7#27.11.28.10.00#Thread repair kits#27.11.28.00.00
+unspsc7#27.11.28.11.00#Arbors#27.11.28.00.00
+unspsc7#27.11.28.12.00#Countersinks#27.11.28.00.00
+unspsc7#27.11.28.13.00#Extension pole#27.11.28.00.00
+unspsc7#27.11.28.14.00#Screwdriver bits#27.11.28.00.00
+unspsc7#27.11.28.15.00#Nut driver bits#27.11.28.00.00
+unspsc7#27.11.28.16.00#Abrasive disk#27.11.28.00.00
+unspsc7#27.11.28.17.00#Hole saws#27.11.28.00.00
+unspsc7#27.11.28.18.00#Vise jaw liners or caps#27.11.28.00.00
+unspsc7#27.11.28.19.00#Skiving tool cutter blades#27.11.28.00.00
+unspsc7#27.11.28.21.00#Router bits#27.11.28.00.00
+unspsc7#27.11.29.00.00#Dispensing tools#27.11.00.00.00
+unspsc7#27.11.29.01.00#Grease guns#27.11.29.00.00
+unspsc7#27.11.29.02.00#Industrial funnels#27.11.29.00.00
+unspsc7#27.11.29.03.00#Hand sprayers#27.11.29.00.00
+unspsc7#27.11.29.04.00#Resin guns#27.11.29.00.00
+unspsc7#27.11.29.05.00#Oil can#27.11.29.00.00
+unspsc7#27.11.29.06.00#Caulking guns#27.11.29.00.00
+unspsc7#27.11.29.07.00#Broadcast spreaders#27.11.29.00.00
+unspsc7#27.11.30.00.00#Brushes#27.11.00.00.00
+unspsc7#27.11.30.01.00#Scratch brushes#27.11.30.00.00
+unspsc7#27.11.30.02.00#Tube brushes#27.11.30.00.00
+unspsc7#27.11.30.03.00#Applicator brushes#27.11.30.00.00
+unspsc7#27.11.31.00.00#Pulling tools#27.11.00.00.00
+unspsc7#27.11.31.01.00#Fish tape#27.11.31.00.00
+unspsc7#27.11.31.02.00#Fuse pullers#27.11.31.00.00
+unspsc7#27.11.32.00.00#Tool kits#27.11.00.00.00
+unspsc7#27.11.32.01.00#General tool kits#27.11.32.00.00
+unspsc7#27.11.32.02.00#Bearing fitting tool kits#27.11.32.00.00
+unspsc7#27.11.32.03.00#Computer tool kits#27.11.32.00.00
+unspsc7#27.11.32.04.00#Electrician kits#27.11.32.00.00
+unspsc7#27.12.00.00.00#Hydraulic machinery and equipment#27.00.00.00.00
+unspsc7#27.12.15.00.00#Hydraulic presses#27.12.00.00.00
+unspsc7#27.12.15.01.00#Press return springs#27.12.15.00.00
+unspsc7#27.12.16.00.00#Hydraulic cylinders and pistons#27.12.00.00.00
+unspsc7#27.12.16.01.00#Cylinder pistons#27.12.16.00.00
+unspsc7#27.12.16.02.00#Hydraulic cylinders#27.12.16.00.00
+unspsc7#27.12.17.00.00#Hydraulic hose and tube fittings#27.12.00.00.00
+unspsc7#27.12.17.01.00#Hydraulic quick connectors#27.12.17.00.00
+unspsc7#27.12.17.02.00#Hydraulic tees or crosses#27.12.17.00.00
+unspsc7#27.12.17.03.00#Ferrules#27.12.17.00.00
+unspsc7#27.12.17.04.00#Hydraulic unions#27.12.17.00.00
+unspsc7#27.12.17.05.00#Hydraulic or compression elbows#27.12.17.00.00
+unspsc7#27.12.17.06.00#Ferrule nuts#27.12.17.00.00
+unspsc7#27.12.17.07.00#Crimp connectors#27.12.17.00.00
+unspsc7#27.12.18.00.00#Hydraulic quick connectors#27.12.00.00.00
+unspsc7#27.12.19.00.00#Hydraulic tees or crosses#27.12.00.00.00
+unspsc7#27.12.20.00.00#Ferrules#27.12.00.00.00
+unspsc7#27.12.30.00.00#Hydraulic unions#27.12.00.00.00
+unspsc7#27.12.40.00.00#Hydraulic or compression elbows#27.12.00.00.00
+unspsc7#27.12.50.00.00#Ferrule nuts#27.12.00.00.00
+unspsc7#27.12.60.00.00#Crimp connectors#27.12.00.00.00
+unspsc7#27.12.61.00.00#Hydraulic tools#27.12.00.00.00
+unspsc7#27.12.61.01.00#Manhole cover lifters#27.12.61.00.00
+unspsc7#27.13.00.00.00#Pneumatic machinery and equipment#27.00.00.00.00
+unspsc7#27.13.15.00.00#Pneumatic tools#27.13.00.00.00
+unspsc7#27.13.15.01.00#Pneumatic impact wrenches#27.13.15.00.00
+unspsc7#27.13.15.02.00#Compressed air gun#27.13.15.00.00
+unspsc7#27.13.15.03.00#Pneumatic screwdriver#27.13.15.00.00
+unspsc7#27.13.15.04.00#Pneumatic hammer#27.13.15.00.00
+unspsc7#27.13.15.05.00#Pneumatic drill#27.13.15.00.00
+unspsc7#27.13.15.06.00#Pneumatic nail drivers#27.13.15.00.00
+unspsc7#27.13.15.07.00#Pneumatic sanding machines#27.13.15.00.00
+unspsc7#27.13.16.00.00#Air fittings and connectors#27.13.00.00.00
+unspsc7#27.13.16.01.00#Air manifolds#27.13.16.00.00
+unspsc7#27.13.16.02.00#Filters#27.13.16.00.00
+unspsc7#27.13.16.03.00#Regulator#27.13.16.00.00
+unspsc7#27.13.16.04.00#Lubricator#27.13.16.00.00
+unspsc7#27.13.16.05.00#Air curtain#27.13.16.00.00
+unspsc7#27.13.16.06.00#Air coupling#27.13.16.00.00
+unspsc7#30.00.00.00.00#Structures and Building and Construction and Manufacturing Components and Supplies#30.00.00.00.00
+unspsc7#30.10.00.00.00#Structural materials and basic shapes#30.00.00.00.00
+unspsc7#30.10.15.00.00#Angles#30.10.00.00.00
+unspsc7#30.10.15.01.00#Ferrous alloy angles#30.10.15.00.00
+unspsc7#30.10.15.02.00#Non ferrous alloy angles#30.10.15.00.00
+unspsc7#30.10.15.03.00#Iron angles#30.10.15.00.00
+unspsc7#30.10.15.04.00#Steel angles#30.10.15.00.00
+unspsc7#30.10.15.05.00#Stainless steel angles#30.10.15.00.00
+unspsc7#30.10.15.06.00#Aluminum angles#30.10.15.00.00
+unspsc7#30.10.15.07.00#Magnesium angles#30.10.15.00.00
+unspsc7#30.10.15.08.00#Titanium angles#30.10.15.00.00
+unspsc7#30.10.15.09.00#Copper angles#30.10.15.00.00
+unspsc7#30.10.15.10.00#Brass angles#30.10.15.00.00
+unspsc7#30.10.15.11.00#Bronze angles#30.10.15.00.00
+unspsc7#30.10.15.12.00#Zinc angles#30.10.15.00.00
+unspsc7#30.10.15.13.00#Tin angles#30.10.15.00.00
+unspsc7#30.10.15.14.00#Lead angles#30.10.15.00.00
+unspsc7#30.10.15.15.00#Plastic angles#30.10.15.00.00
+unspsc7#30.10.15.16.00#Rubber angles#30.10.15.00.00
+unspsc7#30.10.15.17.00#Precious metal angles#30.10.15.00.00
+unspsc7#30.10.16.00.00#Bar#30.10.00.00.00
+unspsc7#30.10.16.01.00#Ferrous alloy bars#30.10.16.00.00
+unspsc7#30.10.16.02.00#Non ferrous alloy bars#30.10.16.00.00
+unspsc7#30.10.16.03.00#Iron bars#30.10.16.00.00
+unspsc7#30.10.16.04.00#Steel bars#30.10.16.00.00
+unspsc7#30.10.16.05.00#Stainless steel bars#30.10.16.00.00
+unspsc7#30.10.16.06.00#Aluminum bars#30.10.16.00.00
+unspsc7#30.10.16.07.00#Magnesium bars#30.10.16.00.00
+unspsc7#30.10.16.08.00#Titanium bars#30.10.16.00.00
+unspsc7#30.10.16.09.00#Copper bars#30.10.16.00.00
+unspsc7#30.10.16.10.00#Brass bars#30.10.16.00.00
+unspsc7#30.10.16.11.00#Bronze bars#30.10.16.00.00
+unspsc7#30.10.16.12.00#Zinc bars#30.10.16.00.00
+unspsc7#30.10.16.13.00#Tin bars#30.10.16.00.00
+unspsc7#30.10.16.14.00#Lead bars#30.10.16.00.00
+unspsc7#30.10.16.15.00#Plastic bars#30.10.16.00.00
+unspsc7#30.10.16.16.00#Precious metal bars#30.10.16.00.00
+unspsc7#30.10.16.17.00#Wooden bars#30.10.16.00.00
+unspsc7#30.10.17.00.00#Beams#30.10.00.00.00
+unspsc7#30.10.17.01.00#Ferrous alloy beams#30.10.17.00.00
+unspsc7#30.10.17.02.00#Non ferrous alloy beams#30.10.17.00.00
+unspsc7#30.10.17.03.00#Iron beams#30.10.17.00.00
+unspsc7#30.10.17.04.00#Steel beams#30.10.17.00.00
+unspsc7#30.10.17.05.00#Stainless steel beams#30.10.17.00.00
+unspsc7#30.10.17.06.00#Aluminum beams#30.10.17.00.00
+unspsc7#30.10.17.07.00#Magnesium beams#30.10.17.00.00
+unspsc7#30.10.17.08.00#Titanium beams#30.10.17.00.00
+unspsc7#30.10.17.09.00#Copper beams#30.10.17.00.00
+unspsc7#30.10.17.10.00#Brass beams#30.10.17.00.00
+unspsc7#30.10.17.11.00#Bronze beams#30.10.17.00.00
+unspsc7#30.10.17.12.00#Zinc beams#30.10.17.00.00
+unspsc7#30.10.17.13.00#Tin beams#30.10.17.00.00
+unspsc7#30.10.17.14.00#Lead beams#30.10.17.00.00
+unspsc7#30.10.17.15.00#Plastic beams#30.10.17.00.00
+unspsc7#30.10.17.16.00#Rubber beams#30.10.17.00.00
+unspsc7#30.10.17.17.00#Concrete beams#30.10.17.00.00
+unspsc7#30.10.17.18.00#Precious metal beams#30.10.17.00.00
+unspsc7#30.10.18.00.00#Channels#30.10.00.00.00
+unspsc7#30.10.18.01.00#Ferrous alloy channels#30.10.18.00.00
+unspsc7#30.10.18.02.00#Non ferrous alloy channels#30.10.18.00.00
+unspsc7#30.10.18.03.00#Iron channels#30.10.18.00.00
+unspsc7#30.10.18.04.00#Steel channels#30.10.18.00.00
+unspsc7#30.10.18.05.00#Stainless steel channels#30.10.18.00.00
+unspsc7#30.10.18.06.00#Aluminum channels#30.10.18.00.00
+unspsc7#30.10.18.07.00#Magnesium channels#30.10.18.00.00
+unspsc7#30.10.18.08.00#Titanium channnels#30.10.18.00.00
+unspsc7#30.10.18.09.00#Copper channels#30.10.18.00.00
+unspsc7#30.10.18.10.00#Brass channels#30.10.18.00.00
+unspsc7#30.10.18.11.00#Bronze channels#30.10.18.00.00
+unspsc7#30.10.18.12.00#Zinc channels#30.10.18.00.00
+unspsc7#30.10.18.13.00#Tin channels#30.10.18.00.00
+unspsc7#30.10.18.14.00#Lead channels#30.10.18.00.00
+unspsc7#30.10.18.15.00#Plastic channels#30.10.18.00.00
+unspsc7#30.10.18.16.00#Rubber channels#30.10.18.00.00
+unspsc7#30.10.18.17.00#Precious metal channels#30.10.18.00.00
+unspsc7#30.10.19.00.00#Coil#30.10.00.00.00
+unspsc7#30.10.19.01.00#Ferrous alloy coil#30.10.19.00.00
+unspsc7#30.10.19.02.00#Non ferrous alloy coil#30.10.19.00.00
+unspsc7#30.10.19.03.00#Iron coil#30.10.19.00.00
+unspsc7#30.10.19.04.00#Steel coil#30.10.19.00.00
+unspsc7#30.10.19.05.00#Stainless steel coil#30.10.19.00.00
+unspsc7#30.10.19.06.00#Aluminum coil#30.10.19.00.00
+unspsc7#30.10.19.07.00#Magnesium coil#30.10.19.00.00
+unspsc7#30.10.19.08.00#Titanium coil#30.10.19.00.00
+unspsc7#30.10.19.09.00#Copper coil#30.10.19.00.00
+unspsc7#30.10.19.10.00#Brass coil#30.10.19.00.00
+unspsc7#30.10.19.11.00#Bronze coil#30.10.19.00.00
+unspsc7#30.10.19.12.00#Zinc coil#30.10.19.00.00
+unspsc7#30.10.19.13.00#Tin coil#30.10.19.00.00
+unspsc7#30.10.19.14.00#Lead coil#30.10.19.00.00
+unspsc7#30.10.19.15.00#Plastic coil#30.10.19.00.00
+unspsc7#30.10.19.16.00#Precious metal coils#30.10.19.00.00
+unspsc7#30.10.19.17.00#Non metallic coils#30.10.19.00.00
+unspsc7#30.10.19.18.00#Perforated steel#30.10.19.00.00
+unspsc7#30.10.19.19.00#Embossed steel#30.10.19.00.00
+unspsc7#30.10.19.20.00#Compressed fiber coil#30.10.19.00.00
+unspsc7#30.10.19.21.00#Fiber and rubber coil#30.10.19.00.00
+unspsc7#30.10.19.22.00#Graphite coil#30.10.19.00.00
+unspsc7#30.10.20.00.00#Foil#30.10.00.00.00
+unspsc7#30.10.20.01.00#Ferrous alloy foil#30.10.20.00.00
+unspsc7#30.10.20.02.00#Non ferrous alloy foil#30.10.20.00.00
+unspsc7#30.10.20.03.00#Iron foil#30.10.20.00.00
+unspsc7#30.10.20.04.00#Steel foil#30.10.20.00.00
+unspsc7#30.10.20.05.00#Stainless steel foil#30.10.20.00.00
+unspsc7#30.10.20.06.00#Aluminum foil#30.10.20.00.00
+unspsc7#30.10.20.07.00#Magnesium foil#30.10.20.00.00
+unspsc7#30.10.20.08.00#Titanium foil#30.10.20.00.00
+unspsc7#30.10.20.09.00#Copper foil#30.10.20.00.00
+unspsc7#30.10.20.10.00#Brass foil#30.10.20.00.00
+unspsc7#30.10.20.11.00#Bronze foil#30.10.20.00.00
+unspsc7#30.10.20.12.00#Zinc foil#30.10.20.00.00
+unspsc7#30.10.20.13.00#Tin foil#30.10.20.00.00
+unspsc7#30.10.20.14.00#Lead foil#30.10.20.00.00
+unspsc7#30.10.20.15.00#Plastic foil#30.10.20.00.00
+unspsc7#30.10.21.00.00#Pipe#30.10.00.00.00
+unspsc7#30.10.21.01.00#Ferrous alloy pipe#30.10.21.00.00
+unspsc7#30.10.21.02.00#Non ferrous alloy pipe#30.10.21.00.00
+unspsc7#30.10.21.03.00#Iron pipe#30.10.21.00.00
+unspsc7#30.10.21.04.00#Steel pipe#30.10.21.00.00
+unspsc7#30.10.21.05.00#Stainless steel pipe#30.10.21.00.00
+unspsc7#30.10.21.06.00#Aluminum pipe#30.10.21.00.00
+unspsc7#30.10.21.07.00#Magnesium pipe#30.10.21.00.00
+unspsc7#30.10.21.08.00#Titanium pipe#30.10.21.00.00
+unspsc7#30.10.21.09.00#Copper pipe#30.10.21.00.00
+unspsc7#30.10.21.10.00#Brass pipe#30.10.21.00.00
+unspsc7#30.10.21.11.00#Bronze pipe#30.10.21.00.00
+unspsc7#30.10.21.12.00#Zinc pipe#30.10.21.00.00
+unspsc7#30.10.21.13.00#Tin pipe#30.10.21.00.00
+unspsc7#30.10.21.14.00#Lead pipe#30.10.21.00.00
+unspsc7#30.10.21.15.00#Plastic pipe#30.10.21.00.00
+unspsc7#30.10.21.16.00#Rubber pipe#30.10.21.00.00
+unspsc7#30.10.21.17.00#Concrete pipe#30.10.21.00.00
+unspsc7#30.10.22.00.00#Plate#30.10.00.00.00
+unspsc7#30.10.22.01.00#Ferrous alloy plate#30.10.22.00.00
+unspsc7#30.10.22.02.00#Non ferrous plate#30.10.22.00.00
+unspsc7#30.10.22.03.00#Iron plate#30.10.22.00.00
+unspsc7#30.10.22.04.00#Steel plate#30.10.22.00.00
+unspsc7#30.10.22.05.00#Stainless steel plate#30.10.22.00.00
+unspsc7#30.10.22.06.00#Aluminum plate#30.10.22.00.00
+unspsc7#30.10.22.07.00#Magnesium plate#30.10.22.00.00
+unspsc7#30.10.22.08.00#Titanium plate#30.10.22.00.00
+unspsc7#30.10.22.09.00#Copper plate#30.10.22.00.00
+unspsc7#30.10.22.10.00#Brass plate#30.10.22.00.00
+unspsc7#30.10.22.11.00#Bronze plate#30.10.22.00.00
+unspsc7#30.10.22.12.00#Zinc plate#30.10.22.00.00
+unspsc7#30.10.22.13.00#Tin plate#30.10.22.00.00
+unspsc7#30.10.22.14.00#Lead plate#30.10.22.00.00
+unspsc7#30.10.22.15.00#Plastic plate#30.10.22.00.00
+unspsc7#30.10.22.16.00#Rubber plate#30.10.22.00.00
+unspsc7#30.10.22.17.00#Concrete plate#30.10.22.00.00
+unspsc7#30.10.22.18.00#Precious metal plate#30.10.22.00.00
+unspsc7#30.10.22.19.00#Non metallic plates#30.10.22.00.00
+unspsc7#30.10.23.00.00#Profiles#30.10.00.00.00
+unspsc7#30.10.23.01.00#Ferrous alloy profiles#30.10.23.00.00
+unspsc7#30.10.23.02.00#Non ferrous alloy profiles#30.10.23.00.00
+unspsc7#30.10.23.03.00#Iron profiles#30.10.23.00.00
+unspsc7#30.10.23.04.00#Steel profiles#30.10.23.00.00
+unspsc7#30.10.23.05.00#Stainless steel profiles#30.10.23.00.00
+unspsc7#30.10.23.06.00#Aluminum profiles#30.10.23.00.00
+unspsc7#30.10.23.07.00#Magnesium profiles#30.10.23.00.00
+unspsc7#30.10.23.08.00#Titanium profiles#30.10.23.00.00
+unspsc7#30.10.23.09.00#Copper profiles#30.10.23.00.00
+unspsc7#30.10.23.10.00#Brass profiles#30.10.23.00.00
+unspsc7#30.10.23.11.00#Bronze profiles#30.10.23.00.00
+unspsc7#30.10.23.12.00#Zinc profiles#30.10.23.00.00
+unspsc7#30.10.23.13.00#Tin profiles#30.10.23.00.00
+unspsc7#30.10.23.14.00#Lead profiles#30.10.23.00.00
+unspsc7#30.10.23.15.00#Plastic profiles#30.10.23.00.00
+unspsc7#30.10.23.16.00#Rubber profiles#30.10.23.00.00
+unspsc7#30.10.24.00.00#Rod#30.10.00.00.00
+unspsc7#30.10.24.01.00#Ferrous alloy rods#30.10.24.00.00
+unspsc7#30.10.24.02.00#Non ferrous alloy rods#30.10.24.00.00
+unspsc7#30.10.24.03.00#Iron rods#30.10.24.00.00
+unspsc7#30.10.24.04.00#Steel rods#30.10.24.00.00
+unspsc7#30.10.24.05.00#Stainless steel rods#30.10.24.00.00
+unspsc7#30.10.24.06.00#Aluminum rods#30.10.24.00.00
+unspsc7#30.10.24.07.00#Magnesium rods#30.10.24.00.00
+unspsc7#30.10.24.08.00#Titanium rods#30.10.24.00.00
+unspsc7#30.10.24.09.00#Copper rods#30.10.24.00.00
+unspsc7#30.10.24.10.00#Brass rods#30.10.24.00.00
+unspsc7#30.10.24.11.00#Bronze rods#30.10.24.00.00
+unspsc7#30.10.24.12.00#Zinc rods#30.10.24.00.00
+unspsc7#30.10.24.13.00#Tin rods#30.10.24.00.00
+unspsc7#30.10.24.14.00#Lead rods#30.10.24.00.00
+unspsc7#30.10.24.15.00#Plastic rods#30.10.24.00.00
+unspsc7#30.10.24.16.00#Rubber rods#30.10.24.00.00
+unspsc7#30.10.25.00.00#Sheet#30.10.00.00.00
+unspsc7#30.10.25.01.00#Ferrous alloy sheet#30.10.25.00.00
+unspsc7#30.10.25.02.00#Non ferrous alloy sheet#30.10.25.00.00
+unspsc7#30.10.25.03.00#Iron sheet#30.10.25.00.00
+unspsc7#30.10.25.04.00#Steel sheet#30.10.25.00.00
+unspsc7#30.10.25.05.00#Stainless steel sheet#30.10.25.00.00
+unspsc7#30.10.25.06.00#Aluminum sheet#30.10.25.00.00
+unspsc7#30.10.25.07.00#Magnesium sheet#30.10.25.00.00
+unspsc7#30.10.25.08.00#Titanium sheet#30.10.25.00.00
+unspsc7#30.10.25.09.00#Copper sheet#30.10.25.00.00
+unspsc7#30.10.25.10.00#Brass sheet#30.10.25.00.00
+unspsc7#30.10.25.11.00#Bronze sheet#30.10.25.00.00
+unspsc7#30.10.25.12.00#Zinc sheet#30.10.25.00.00
+unspsc7#30.10.25.13.00#Tin sheet#30.10.25.00.00
+unspsc7#30.10.25.14.00#Lead sheet#30.10.25.00.00
+unspsc7#30.10.25.15.00#Plastic sheet#30.10.25.00.00
+unspsc7#30.10.25.16.00#Rubber sheet#30.10.25.00.00
+unspsc7#30.10.25.17.00#Armor sheet#30.10.25.00.00
+unspsc7#30.10.25.18.00#Beryllium alloy sheet#30.10.25.00.00
+unspsc7#30.10.25.19.00#Composite metal sheet#30.10.25.00.00
+unspsc7#30.10.25.20.00#Nickel sheet#30.10.25.00.00
+unspsc7#30.10.25.21.00#Foam Rubber Sheet#30.10.25.00.00
+unspsc7#30.10.25.22.00#Cork and rubber sheet#30.10.25.00.00
+unspsc7#30.10.25.23.00#Compressed fiber sheet#30.10.25.00.00
+unspsc7#30.10.25.24.00#Metal inserted compressed fiber sheet#30.10.25.00.00
+unspsc7#30.10.25.25.00#Fiber and rubber sheet#30.10.25.00.00
+unspsc7#30.10.25.26.00#Asbestos sheets#30.10.25.00.00
+unspsc7#30.10.26.00.00#Strip#30.10.00.00.00
+unspsc7#30.10.26.01.00#Ferrous alloy strip#30.10.26.00.00
+unspsc7#30.10.26.02.00#Non ferrous alloy strip#30.10.26.00.00
+unspsc7#30.10.26.03.00#Iron strip#30.10.26.00.00
+unspsc7#30.10.26.04.00#Steel strip#30.10.26.00.00
+unspsc7#30.10.26.05.00#Stainless steel strip#30.10.26.00.00
+unspsc7#30.10.26.06.00#Aluminum strip#30.10.26.00.00
+unspsc7#30.10.26.07.00#Magnesium strip#30.10.26.00.00
+unspsc7#30.10.26.08.00#Titanium strip#30.10.26.00.00
+unspsc7#30.10.26.09.00#Copper strip#30.10.26.00.00
+unspsc7#30.10.26.10.00#Brass strip#30.10.26.00.00
+unspsc7#30.10.26.11.00#Bronze strip#30.10.26.00.00
+unspsc7#30.10.26.12.00#Zinc strip#30.10.26.00.00
+unspsc7#30.10.26.13.00#Tin strip#30.10.26.00.00
+unspsc7#30.10.26.14.00#Lead strip#30.10.26.00.00
+unspsc7#30.10.26.15.00#Plastic strip#30.10.26.00.00
+unspsc7#30.10.26.16.00#Rubber strip#30.10.26.00.00
+unspsc7#30.10.27.00.00#Tube and tubing#30.10.00.00.00
+unspsc7#30.10.27.01.00#Ferrous alloy tubing#30.10.27.00.00
+unspsc7#30.10.27.02.00#Copper tubing#30.10.27.00.00
+unspsc7#30.10.27.03.00#Titanium tubing#30.10.27.00.00
+unspsc7#30.10.27.04.00#Magnesium tubing#30.10.27.00.00
+unspsc7#30.10.27.05.00#Tin tubing#30.10.27.00.00
+unspsc7#30.10.27.06.00#Brass tubing#30.10.27.00.00
+unspsc7#30.10.27.07.00#Lead tubing#30.10.27.00.00
+unspsc7#30.10.27.08.00#Bronze tubing#30.10.27.00.00
+unspsc7#30.10.27.09.00#Zinc tubing#30.10.27.00.00
+unspsc7#30.10.27.10.00#Steel tubing#30.10.27.00.00
+unspsc7#30.10.27.11.00#Iron tubing#30.10.27.00.00
+unspsc7#30.10.27.12.00#Cement tubing#30.10.27.00.00
+unspsc7#30.10.27.13.00#Plastic tubing#30.10.27.00.00
+unspsc7#30.10.27.14.00#Rubber tubing#30.10.27.00.00
+unspsc7#30.10.27.15.00#Glass tubing#30.10.27.00.00
+unspsc7#30.10.27.16.00#Stone tubing#30.10.27.00.00
+unspsc7#30.10.27.17.00#Non ferrous alloy tubing#30.10.27.00.00
+unspsc7#30.10.27.18.00#Aluminum tubing#30.10.27.00.00
+unspsc7#30.10.27.19.00#Stainless steel tubing#30.10.27.00.00
+unspsc7#30.10.27.20.00#Precious metal tubing#30.10.27.00.00
+unspsc7#30.10.28.00.00#Piling#30.10.00.00.00
+unspsc7#30.10.28.01.00#Aluminum pilings#30.10.28.00.00
+unspsc7#30.10.28.02.00#Concrete pilings#30.10.28.00.00
+unspsc7#30.10.28.03.00#Steel pilings#30.10.28.00.00
+unspsc7#30.10.29.00.00#Post#30.10.00.00.00
+unspsc7#30.10.29.01.00#Cement or concrete posts#30.10.29.00.00
+unspsc7#30.10.29.02.00#Steel posts#30.10.29.00.00
+unspsc7#30.10.29.03.00#Metal posts#30.10.29.00.00
+unspsc7#30.10.29.04.00#Wooden posts#30.10.29.00.00
+unspsc7#30.10.29.05.00#Plastic posts#30.10.29.00.00
+unspsc7#30.10.29.06.00#Fiberglass posts#30.10.29.00.00
+unspsc7#30.10.30.00.00#Shafting#30.10.00.00.00
+unspsc7#30.10.30.01.00#Steel shafting#30.10.30.00.00
+unspsc7#30.10.30.02.00#Stainless steel shafting#30.10.30.00.00
+unspsc7#30.10.31.00.00#Rails#30.10.00.00.00
+unspsc7#30.10.31.01.00#Steel rail#30.10.31.00.00
+unspsc7#30.10.31.02.00#Aluminum rail#30.10.31.00.00
+unspsc7#30.10.31.03.00#Metal rail#30.10.31.00.00
+unspsc7#30.10.32.00.00#Grating#30.10.00.00.00
+unspsc7#30.10.32.01.00#Steel grating#30.10.32.00.00
+unspsc7#30.10.32.02.00#Stainless steel grating#30.10.32.00.00
+unspsc7#30.10.32.03.00#Aluminum grating#30.10.32.00.00
+unspsc7#30.10.32.04.00#Fiberglass grating#30.10.32.00.00
+unspsc7#30.10.32.05.00#Iron grating#30.10.32.00.00
+unspsc7#30.10.33.00.00#Billets#30.10.00.00.00
+unspsc7#30.10.33.01.00#Aluminum billet#30.10.33.00.00
+unspsc7#30.10.33.02.00#Brass billet#30.10.33.00.00
+unspsc7#30.10.33.03.00#Bronze billets#30.10.33.00.00
+unspsc7#30.10.33.04.00#Copper billets#30.10.33.00.00
+unspsc7#30.10.33.05.00#Lead billets#30.10.33.00.00
+unspsc7#30.10.33.06.00#Zinc billets#30.10.33.00.00
+unspsc7#30.10.33.07.00#Steel billets#30.10.33.00.00
+unspsc7#30.10.33.08.00#Titanium billets#30.10.33.00.00
+unspsc7#30.10.33.09.00#Magnesium billets#30.10.33.00.00
+unspsc7#30.10.33.10.00#Precious metal billets#30.10.33.00.00
+unspsc7#30.10.33.11.00#Non ferrous metal billets#30.10.33.00.00
+unspsc7#30.10.33.12.00#Ferrous metal billets#30.10.33.00.00
+unspsc7#30.10.33.13.00#Non metallic billets#30.10.33.00.00
+unspsc7#30.10.34.00.00#Ingots#30.10.00.00.00
+unspsc7#30.10.34.01.00#Aluminum ingots#30.10.34.00.00
+unspsc7#30.10.34.02.00#Brass ingots#30.10.34.00.00
+unspsc7#30.10.34.03.00#Lead ingots#30.10.34.00.00
+unspsc7#30.10.34.04.00#Zinc ingots#30.10.34.00.00
+unspsc7#30.10.34.05.00#Steel ingots#30.10.34.00.00
+unspsc7#30.10.34.06.00#Magnesium ingots#30.10.34.00.00
+unspsc7#30.10.34.07.00#Bronze ingots#30.10.34.00.00
+unspsc7#30.10.34.08.00#Copper ingots#30.10.34.00.00
+unspsc7#30.10.34.09.00#Titanium ingots#30.10.34.00.00
+unspsc7#30.10.34.10.00#Precious metal ingots#30.10.34.00.00
+unspsc7#30.10.34.11.00#Ferrous alloy extrusion ingots#30.10.34.00.00
+unspsc7#30.10.34.12.00#Non ferrous alloy extrusion ingots#30.10.34.00.00
+unspsc7#30.10.34.13.00#Non metallic ingots#30.10.34.00.00
+unspsc7#30.10.35.00.00#Honeycomb core#30.10.00.00.00
+unspsc7#30.10.35.01.00#Aluminum honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.02.00#Magnesium honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.03.00#Foam honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.04.00#Plastic honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.05.00#Wooden honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.06.00#Ferrous metal honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.07.00#Bronze honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.08.00#Copper honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.09.00#Steel honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.10.00#Lead honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.11.00#Zinc honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.12.00#Titanium honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.13.00#Brass honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.14.00#Non ferrous metal honeycomb core#30.10.35.00.00
+unspsc7#30.10.35.15.00#Precious metal honeycomb core#30.10.35.00.00
+unspsc7#30.10.36.00.00#Structural products#30.10.00.00.00
+unspsc7#30.10.36.01.00#Wood beams#30.10.36.00.00
+unspsc7#30.10.36.02.00#Wood composite beams#30.10.36.00.00
+unspsc7#30.10.36.03.00#Framing lumber#30.10.36.00.00
+unspsc7#30.10.36.04.00#Wood sheathing or sheets#30.10.36.00.00
+unspsc7#30.10.36.05.00#Wood planks#30.10.36.00.00
+unspsc7#30.10.36.06.00#Wood trusses#30.10.36.00.00
+unspsc7#30.10.36.07.00#Wood joists#30.10.36.00.00
+unspsc7#30.10.37.00.00#Braid#30.10.00.00.00
+unspsc7#30.10.37.01.00#Stainless steel braid#30.10.37.00.00
+unspsc7#30.11.00.00.00#Concrete and cement and plaster#30.00.00.00.00
+unspsc7#30.11.15.00.00#Concrete and mortars#30.11.00.00.00
+unspsc7#30.11.15.01.00#Foamed concrete#30.11.15.00.00
+unspsc7#30.11.15.02.00#Conductive concrete#30.11.15.00.00
+unspsc7#30.11.15.03.00#Insulating concrete#30.11.15.00.00
+unspsc7#30.11.15.04.00#Mortars#30.11.15.00.00
+unspsc7#30.11.16.00.00#Cement and lime#30.11.00.00.00
+unspsc7#30.11.16.01.00#Cement#30.11.16.00.00
+unspsc7#30.11.16.02.00#Chlorinated lime#30.11.16.00.00
+unspsc7#30.11.16.03.00#Hydraulic lime#30.11.16.00.00
+unspsc7#30.11.16.04.00#Hydrated lime#30.11.16.00.00
+unspsc7#30.11.16.05.00#Lean lime#30.11.16.00.00
+unspsc7#30.11.16.06.00#Grout#30.11.16.00.00
+unspsc7#30.11.16.07.00#Unslaked lime#30.11.16.00.00
+unspsc7#30.11.17.00.00#Plasters#30.11.00.00.00
+unspsc7#30.11.17.01.00#Gypsum plaster#30.11.17.00.00
+unspsc7#30.12.00.00.00#Roads and landscape#30.00.00.00.00
+unspsc7#30.12.15.00.00#Bituminous derivatives#30.12.00.00.00
+unspsc7#30.12.15.01.00#Coal tar#30.12.15.00.00
+unspsc7#30.12.15.02.00#Tars#30.12.15.00.00
+unspsc7#30.12.15.03.00#Cresote#30.12.15.00.00
+unspsc7#30.12.16.00.00#Asphalts#30.12.00.00.00
+unspsc7#30.12.16.01.00#Asphalt#30.12.16.00.00
+unspsc7#30.12.16.02.00#Pitch#30.12.16.00.00
+unspsc7#30.12.16.03.00#Gilsonite#30.12.16.00.00
+unspsc7#30.12.16.04.00#Cutback products#30.12.16.00.00
+unspsc7#30.12.16.05.00#Manhole frames with covers#30.12.16.00.00
+unspsc7#30.13.00.00.00#Structural building products#30.00.00.00.00
+unspsc7#30.13.15.00.00#Blocks#30.13.00.00.00
+unspsc7#30.13.15.01.00#Cement blocks#30.13.15.00.00
+unspsc7#30.13.15.02.00#Concrete blocks#30.13.15.00.00
+unspsc7#30.13.15.03.00#Stone blocks#30.13.15.00.00
+unspsc7#30.13.15.04.00#Ceramic blocks#30.13.15.00.00
+unspsc7#30.13.16.00.00#Bricks#30.13.00.00.00
+unspsc7#30.13.16.01.00#Cement bricks#30.13.16.00.00
+unspsc7#30.13.16.02.00#Ceramic bricks#30.13.16.00.00
+unspsc7#30.13.16.03.00#Concrete bricks#30.13.16.00.00
+unspsc7#30.13.16.04.00#Stone bricks#30.13.16.00.00
+unspsc7#30.13.17.00.00#Tiles and flagstones#30.13.00.00.00
+unspsc7#30.13.17.01.00#Cement tiles or flagstones#30.13.17.00.00
+unspsc7#30.13.17.02.00#Stone tiles or flagstones#30.13.17.00.00
+unspsc7#30.13.17.03.00#Concrete tiles or flagstones#30.13.17.00.00
+unspsc7#30.13.17.04.00#Ceramic tiles or flagstones#30.13.17.00.00
+unspsc7#30.13.17.05.00#Head stones#30.13.17.00.00
+unspsc7#30.14.00.00.00#Insulation#30.00.00.00.00
+unspsc7#30.14.15.00.00#Thermal insulation#30.14.00.00.00
+unspsc7#30.14.15.01.00#Weather stripping#30.14.15.00.00
+unspsc7#30.14.15.02.00#Insulation blankets#30.14.15.00.00
+unspsc7#30.14.15.03.00#Foam insulation#30.14.15.00.00
+unspsc7#30.14.15.04.00#Insulation batts#30.14.15.00.00
+unspsc7#30.14.15.05.00#Thermal insulation sleeving#30.14.15.00.00
+unspsc7#30.14.15.06.00#Loose fill insulation#30.14.15.00.00
+unspsc7#30.14.15.07.00#Rigid board insulation#30.14.15.00.00
+unspsc7#30.14.15.08.00#Fiber insulation#30.14.15.00.00
+unspsc7#30.14.15.09.00#Refractories#30.14.15.00.00
+unspsc7#30.14.15.10.00#Door sweep#30.14.15.00.00
+unspsc7#30.14.15.11.00#Window film#30.14.15.00.00
+unspsc7#30.14.16.00.00#Specialty insulation#30.14.00.00.00
+unspsc7#30.14.16.01.00#Acoustical insulation#30.14.16.00.00
+unspsc7#30.14.16.02.00#Non thermal insulation sleeving#30.14.16.00.00
+unspsc7#30.14.16.03.00#Heat Shields#30.14.16.00.00
+unspsc7#30.15.00.00.00#Exterior finishing materials#30.00.00.00.00
+unspsc7#30.15.15.00.00#Roofing materials#30.15.00.00.00
+unspsc7#30.15.15.01.00#Roll roofing#30.15.15.00.00
+unspsc7#30.15.15.02.00#Roof valleys#30.15.15.00.00
+unspsc7#30.15.15.03.00#Roofing fabrics#30.15.15.00.00
+unspsc7#30.15.15.04.00#Roofing felts#30.15.15.00.00
+unspsc7#30.15.15.05.00#Roofing membranes#30.15.15.00.00
+unspsc7#30.15.15.06.00#Roofing tiles#30.15.15.00.00
+unspsc7#30.15.15.07.00#Shakes#30.15.15.00.00
+unspsc7#30.15.15.08.00#Shingles#30.15.15.00.00
+unspsc7#30.15.15.09.00#Trusses#30.15.15.00.00
+unspsc7#30.15.15.10.00#Slate roofing#30.15.15.00.00
+unspsc7#30.15.16.00.00#Roofing accessories#30.15.00.00.00
+unspsc7#30.15.16.01.00#Roof fascias#30.15.16.00.00
+unspsc7#30.15.16.02.00#Flashings#30.15.16.00.00
+unspsc7#30.15.16.03.00#Gravel stops#30.15.16.00.00
+unspsc7#30.15.16.04.00#Roofing brushes#30.15.16.00.00
+unspsc7#30.15.16.05.00#Roofing drains#30.15.16.00.00
+unspsc7#30.15.16.06.00#Roofing mops#30.15.16.00.00
+unspsc7#30.15.16.07.00#Roofing vents#30.15.16.00.00
+unspsc7#30.15.16.08.00#Soffits#30.15.16.00.00
+unspsc7#30.15.16.09.00#Roof curbs#30.15.16.00.00
+unspsc7#30.15.16.10.00#Roof rippers#30.15.16.00.00
+unspsc7#30.15.17.00.00#Rain gutters and accessories#30.15.00.00.00
+unspsc7#30.15.17.01.00#Downspouts#30.15.17.00.00
+unspsc7#30.15.17.02.00#Drip caps#30.15.17.00.00
+unspsc7#30.15.17.03.00#Gutters#30.15.17.00.00
+unspsc7#30.15.17.04.00#Splashblocks#30.15.17.00.00
+unspsc7#30.15.18.00.00#Siding and exterior wall materials#30.15.00.00.00
+unspsc7#30.15.18.01.00#Shutters#30.15.18.00.00
+unspsc7#30.15.18.02.00#Siding#30.15.18.00.00
+unspsc7#30.15.18.03.00#Siding butt joints#30.15.18.00.00
+unspsc7#30.15.18.04.00#Siding corners#30.15.18.00.00
+unspsc7#30.15.18.05.00#Stucco#30.15.18.00.00
+unspsc7#30.15.18.06.00#Glass curtainwalling#30.15.18.00.00
+unspsc7#30.15.19.00.00#Finishing materials and products#30.15.00.00.00
+unspsc7#30.15.19.01.00#Awnings#30.15.19.00.00
+unspsc7#30.15.19.02.00#Exterior trim materials#30.15.19.00.00
+unspsc7#30.15.20.00.00#Fencing#30.15.00.00.00
+unspsc7#30.15.20.01.00#Metal fencing#30.15.20.00.00
+unspsc7#30.15.20.02.00#Wood fencing#30.15.20.00.00
+unspsc7#30.15.21.00.00#Surface#30.15.00.00.00
+unspsc7#30.15.21.01.00#Shot steel#30.15.21.00.00
+unspsc7#30.16.00.00.00#Interior finishing materials#30.00.00.00.00
+unspsc7#30.16.15.00.00#Wall finishing materials#30.16.00.00.00
+unspsc7#30.16.15.01.00#Wallboard#30.16.15.00.00
+unspsc7#30.16.15.02.00#Wallpapers#30.16.15.00.00
+unspsc7#30.16.15.03.00#Drywall#30.16.15.00.00
+unspsc7#30.16.15.04.00#Corner guards#30.16.15.00.00
+unspsc7#30.16.15.05.00#Panels or panelling#30.16.15.00.00
+unspsc7#30.16.15.06.00#Plaster#30.16.15.00.00
+unspsc7#30.16.15.07.00#Drywall joint compounds#30.16.15.00.00
+unspsc7#30.16.15.08.00#Wallpaper roller#30.16.15.00.00
+unspsc7#30.16.16.00.00#Ceiling materials#30.16.00.00.00
+unspsc7#30.16.16.01.00#Acoustic ceiling tiles#30.16.16.00.00
+unspsc7#30.16.16.02.00#Ceiling panels#30.16.16.00.00
+unspsc7#30.16.16.03.00#Coffers#30.16.16.00.00
+unspsc7#30.16.16.04.00#Suspended ceiling systems#30.16.16.00.00
+unspsc7#30.16.17.00.00#Flooring#30.16.00.00.00
+unspsc7#30.16.17.01.00#Carpeting#30.16.17.00.00
+unspsc7#30.16.17.02.00#Wood flooring#30.16.17.00.00
+unspsc7#30.16.17.03.00#Linoleum#30.16.17.00.00
+unspsc7#30.16.17.05.00#Rubber flooring#30.16.17.00.00
+unspsc7#30.16.17.06.00#Stone or tile flooring#30.16.17.00.00
+unspsc7#30.16.17.07.00#Vinyl flooring#30.16.17.00.00
+unspsc7#30.16.17.08.00#Knotted carpeting#30.16.17.00.00
+unspsc7#30.16.17.09.00#Tufted carpeting#30.16.17.00.00
+unspsc7#30.16.17.10.00#Laminate flooring#30.16.17.00.00
+unspsc7#30.16.17.11.00#Outdoor carpeting#30.16.17.00.00
+unspsc7#30.16.17.12.00#Flooring joists#30.16.17.00.00
+unspsc7#30.16.17.13.00#Carpet pads#30.16.17.00.00
+unspsc7#30.16.17.14.00#Cork flooring#30.16.17.00.00
+unspsc7#30.16.17.15.00#Duckboards#30.16.17.00.00
+unspsc7#30.16.17.16.00#Tile spacers#30.16.17.00.00
+unspsc7#30.16.18.00.00#Cabinetry#30.16.00.00.00
+unspsc7#30.16.18.01.00#Cabinets#30.16.18.00.00
+unspsc7#30.16.18.02.00#Countertops#30.16.18.00.00
+unspsc7#30.16.19.00.00#Molding and millwork#30.16.00.00.00
+unspsc7#30.16.19.01.00#Louvers#30.16.19.00.00
+unspsc7#30.16.19.02.00#Columns#30.16.19.00.00
+unspsc7#30.16.19.03.00#Wainscoting#30.16.19.00.00
+unspsc7#30.16.19.04.00#Cornices#30.16.19.00.00
+unspsc7#30.16.19.05.00#Door surrounds#30.16.19.00.00
+unspsc7#30.16.19.06.00#Molding#30.16.19.00.00
+unspsc7#30.16.19.07.00#Stairs#30.16.19.00.00
+unspsc7#30.16.19.08.00#Stair parts#30.16.19.00.00
+unspsc7#30.17.00.00.00#Doors and windows and glass#30.00.00.00.00
+unspsc7#30.17.15.00.00#Doors#30.17.00.00.00
+unspsc7#30.17.15.01.00#Glass doors#30.17.15.00.00
+unspsc7#30.17.15.02.00#Screen doors#30.17.15.00.00
+unspsc7#30.17.15.03.00#Rolling doors#30.17.15.00.00
+unspsc7#30.17.15.04.00#Wooden doors#30.17.15.00.00
+unspsc7#30.17.15.05.00#Metal doors#30.17.15.00.00
+unspsc7#30.17.15.06.00#Storm doors#30.17.15.00.00
+unspsc7#30.17.15.07.00#Door frames#30.17.15.00.00
+unspsc7#30.17.15.08.00#Pocket doors#30.17.15.00.00
+unspsc7#30.17.15.09.00#Revolving doors#30.17.15.00.00
+unspsc7#30.17.15.10.00#Automatic doors#30.17.15.00.00
+unspsc7#30.17.15.11.00#Swing door#30.17.15.00.00
+unspsc7#30.17.15.12.00#Door openers#30.17.15.00.00
+unspsc7#30.17.16.00.00#Windows#30.17.00.00.00
+unspsc7#30.17.16.04.00#Double hung windows#30.17.16.00.00
+unspsc7#30.17.16.05.00#Single hung windows#30.17.16.00.00
+unspsc7#30.17.16.06.00#Casement windows#30.17.16.00.00
+unspsc7#30.17.16.07.00#Horizontal slider windows#30.17.16.00.00
+unspsc7#30.17.16.08.00#Tilt or transom windows#30.17.16.00.00
+unspsc7#30.17.16.09.00#Fixed windows#30.17.16.00.00
+unspsc7#30.17.16.10.00#Bay windows#30.17.16.00.00
+unspsc7#30.17.16.11.00#Bow windows#30.17.16.00.00
+unspsc7#30.17.16.12.00#Projected windows#30.17.16.00.00
+unspsc7#30.17.16.13.00#Window walls#30.17.16.00.00
+unspsc7#30.17.16.14.00#Window screens#30.17.16.00.00
+unspsc7#30.17.16.15.00#French windows#30.17.16.00.00
+unspsc7#30.17.17.00.00#Glass products#30.17.00.00.00
+unspsc7#30.17.17.01.00#Paving blocks#30.17.17.00.00
+unspsc7#30.17.17.03.00#Beveled glass#30.17.17.00.00
+unspsc7#30.17.17.04.00#Leaded glass#30.17.17.00.00
+unspsc7#30.17.17.05.00#Laminated glass#30.17.17.00.00
+unspsc7#30.17.17.06.00#Tempered glass#30.17.17.00.00
+unspsc7#30.17.17.07.00#Safety glass#30.17.17.00.00
+unspsc7#30.17.17.08.00#Float glass#30.17.17.00.00
+unspsc7#30.17.17.09.00#Wired glass#30.17.17.00.00
+unspsc7#30.17.18.00.00#Skylights#30.17.00.00.00
+unspsc7#30.17.18.01.00#Fixed skylights#30.17.18.00.00
+unspsc7#30.17.18.02.00#Vented skylights#30.17.18.00.00
+unspsc7#30.17.18.03.00#Tube skylights#30.17.18.00.00
+unspsc7#30.17.19.00.00#Window frames#30.17.00.00.00
+unspsc7#30.17.19.01.00#Double hung window frames#30.17.19.00.00
+unspsc7#30.17.19.02.00#Single hung window frames#30.17.19.00.00
+unspsc7#30.17.19.03.00#Casement window frames#30.17.19.00.00
+unspsc7#30.17.19.04.00#Horizontal slider window frames#30.17.19.00.00
+unspsc7#30.17.19.05.00#Tilt or transom window frames#30.17.19.00.00
+unspsc7#30.17.19.06.00#Fixed window frames#30.17.19.00.00
+unspsc7#30.17.20.00.00#Gates#30.17.00.00.00
+unspsc7#30.17.20.01.00#Single bar gate#30.17.20.00.00
+unspsc7#30.17.20.02.00#Double bar gate#30.17.20.00.00
+unspsc7#30.18.00.00.00#Plumbing fixtures#30.00.00.00.00
+unspsc7#30.18.15.00.00#Sanitary ware#30.18.00.00.00
+unspsc7#30.18.15.01.00#Bathtubs#30.18.15.00.00
+unspsc7#30.18.15.02.00#Bidets#30.18.15.00.00
+unspsc7#30.18.15.03.00#Showers#30.18.15.00.00
+unspsc7#30.18.15.04.00#Sinks#30.18.15.00.00
+unspsc7#30.18.15.05.00#Toilets#30.18.15.00.00
+unspsc7#30.18.15.06.00#Urinals#30.18.15.00.00
+unspsc7#30.18.15.07.00#Bathtub or shower enclosures#30.18.15.00.00
+unspsc7#30.18.15.08.00#Restroom partitions#30.18.15.00.00
+unspsc7#30.18.15.09.00#Soap dishes#30.18.15.00.00
+unspsc7#30.18.15.10.00#Napkin rings#30.18.15.00.00
+unspsc7#30.19.00.00.00#Construction and maintenance support equipment#30.00.00.00.00
+unspsc7#30.19.15.00.00#Ladders and scaffolding#30.19.00.00.00
+unspsc7#30.19.15.01.00#Ladders#30.19.15.00.00
+unspsc7#30.19.15.02.00#Scaffolding#30.19.15.00.00
+unspsc7#30.19.15.03.00#Step stool#30.19.15.00.00
+unspsc7#30.19.15.04.00#Step stool#30.19.15.00.00
+unspsc7#30.19.15.05.00#Step stool#30.19.15.00.00
+unspsc7#30.19.16.00.00#Ladders and scaffolding accessories#30.19.00.00.00
+unspsc7#30.19.16.01.00#Handrails#30.19.16.00.00
+unspsc7#30.19.16.02.00#Scaffolding stabilizers#30.19.16.00.00
+unspsc7#30.19.16.03.00#Scaffolding flooring#30.19.16.00.00
+unspsc7#30.20.00.00.00#Prefabricated structures#30.00.00.00.00
+unspsc7#30.20.15.00.00#Prefabricated farm structures#30.20.00.00.00
+unspsc7#30.20.15.01.00#Silos#30.20.15.00.00
+unspsc7#30.20.15.02.00#Greenhouses#30.20.15.00.00
+unspsc7#30.20.16.00.00#Prefabricated residential structures#30.20.00.00.00
+unspsc7#30.20.16.01.00#Houses#30.20.16.00.00
+unspsc7#30.20.16.02.00#Mobile homes#30.20.16.00.00
+unspsc7#30.20.16.03.00#Cabins#30.20.16.00.00
+unspsc7#30.20.16.04.00#Garages#30.20.16.00.00
+unspsc7#30.20.16.05.00#Gazebo#30.20.16.00.00
+unspsc7#30.20.17.00.00#Prefabricated commercial and industrial structures#30.20.00.00.00
+unspsc7#30.20.17.01.00#In plant offices#30.20.17.00.00
+unspsc7#30.20.17.02.00#Spray booths#30.20.17.00.00
+unspsc7#30.20.17.03.00#Storage sheds#30.20.17.00.00
+unspsc7#30.20.17.04.00#Clean rooms#30.20.17.00.00
+unspsc7#30.20.17.05.00#Guardhouses#30.20.17.00.00
+unspsc7#30.20.17.06.00#Portable toilettes#30.20.17.00.00
+unspsc7#30.20.17.07.00#Warehouses#30.20.17.00.00
+unspsc7#30.20.17.08.00#Auditorium#30.20.17.00.00
+unspsc7#30.20.17.09.00#Conservatory#30.20.17.00.00
+unspsc7#30.20.17.10.00#Office kitchens#30.20.17.00.00
+unspsc7#30.20.18.00.00#Prefabricated emergency relief structures#30.20.00.00.00
+unspsc7#30.20.18.01.00#Shelters#30.20.18.00.00
+unspsc7#30.20.18.02.00#Emergency tent halls#30.20.18.00.00
+unspsc7#30.20.18.03.00#Container units#30.20.18.00.00
+unspsc7#30.20.19.00.00#Prefabricated medical structures#30.20.00.00.00
+unspsc7#30.20.19.01.00#Medical units#30.20.19.00.00
+unspsc7#30.20.19.02.00#Laboratory units#30.20.19.00.00
+unspsc7#30.20.19.03.00#Dental units#30.20.19.00.00
+unspsc7#30.20.19.04.00#Surgical units#30.20.19.00.00
+unspsc7#30.21.00.00.00#Electrical equipment and components and supplies#30.00.00.00.00
+unspsc7#30.21.15.00.00#Power conversion#30.21.00.00.00
+unspsc7#30.21.15.01.00#Transformers#30.21.15.00.00
+unspsc7#30.21.15.02.00#Power supply units#30.21.15.00.00
+unspsc7#30.21.15.03.00#Power distribution units (PDUs)#30.21.15.00.00
+unspsc7#30.21.15.04.00#Power adapters or inverters#30.21.15.00.00
+unspsc7#30.21.15.05.00#Frequency converters#30.21.15.00.00
+unspsc7#30.21.15.06.00#Signal converters#30.21.15.00.00
+unspsc7#30.21.15.07.00#Transducers#30.21.15.00.00
+unspsc7#30.21.15.08.00#Regulators#30.21.15.00.00
+unspsc7#30.21.15.09.00#Magnetic coils#30.21.15.00.00
+unspsc7#30.21.15.10.00#Uninterruptible power supplies#30.21.15.00.00
+unspsc7#30.21.15.11.00#Solenoids#30.21.15.00.00
+unspsc7#30.21.15.12.00#Chokes#30.21.15.00.00
+unspsc7#30.21.15.13.00#Electric rotary converters#30.21.15.00.00
+unspsc7#30.21.15.14.00#Capacitor banks#30.21.15.00.00
+unspsc7#30.21.15.15.00#Reactors#30.21.15.00.00
+unspsc7#30.21.16.00.00#Conduits and raceways#30.21.00.00.00
+unspsc7#30.21.16.01.00#Cable trays#30.21.16.00.00
+unspsc7#30.21.16.02.00#Electrical conduit#30.21.16.00.00
+unspsc7#30.21.16.03.00#Electrical raceways#30.21.16.00.00
+unspsc7#30.21.16.04.00#Wiring ducts#30.21.16.00.00
+unspsc7#30.21.16.05.00#Wireways#30.21.16.00.00
+unspsc7#30.21.16.06.00#Wiring troughs#30.21.16.00.00
+unspsc7#30.21.17.00.00#Electrical boxes and enclosures and fittings#30.21.00.00.00
+unspsc7#30.21.17.01.00#Electrical boxes#30.21.17.00.00
+unspsc7#30.21.17.02.00#Electrical box covers#30.21.17.00.00
+unspsc7#30.21.17.03.00#Weatherproof boxes#30.21.17.00.00
+unspsc7#30.21.17.04.00#Switch boxes#30.21.17.00.00
+unspsc7#30.21.17.05.00#Floor boxes#30.21.17.00.00
+unspsc7#30.21.17.06.00#Outlet boxes#30.21.17.00.00
+unspsc7#30.21.17.07.00#Specialty electrical boxes#30.21.17.00.00
+unspsc7#30.21.17.08.00#Utility boxes#30.21.17.00.00
+unspsc7#30.21.17.09.00#Electrical fittings#30.21.17.00.00
+unspsc7#30.21.17.10.00#Electrical bushings#30.21.17.00.00
+unspsc7#30.21.17.11.00#Ceiling flanges#30.21.17.00.00
+unspsc7#30.21.18.00.00#Lugs connectors and terminals#30.21.00.00.00
+unspsc7#30.21.18.01.00#Electrical terminals#30.21.18.00.00
+unspsc7#30.21.18.02.00#Electrical plugs#30.21.18.00.00
+unspsc7#30.21.18.03.00#Twist lock plugs#30.21.18.00.00
+unspsc7#30.21.18.04.00#Electrical sleeves#30.21.18.00.00
+unspsc7#30.21.18.05.00#Cable or wire lugs#30.21.18.00.00
+unspsc7#30.21.18.06.00#Electrical receptacles#30.21.18.00.00
+unspsc7#30.21.18.07.00#Terminal strips#30.21.18.00.00
+unspsc7#30.21.18.08.00#Mechanical connectors#30.21.18.00.00
+unspsc7#30.21.18.09.00#Ring or flag terminals#30.21.18.00.00
+unspsc7#30.21.18.10.00#Wire connectors#30.21.18.00.00
+unspsc7#30.21.18.11.00#Terminal blocks#30.21.18.00.00
+unspsc7#30.21.18.12.00#Fuse blocks#30.21.18.00.00
+unspsc7#30.21.18.13.00#Backshell connectors#30.21.18.00.00
+unspsc7#30.21.18.14.00#Circular connectors#30.21.18.00.00
+unspsc7#30.21.18.15.00#Coaxial connectors#30.21.18.00.00
+unspsc7#30.21.18.16.00#Flat connectors#30.21.18.00.00
+unspsc7#30.21.18.17.00#Electronic connector caps#30.21.18.00.00
+unspsc7#30.21.18.18.00#Radio frequency (RF) connectors#30.21.18.00.00
+unspsc7#30.21.18.19.00#Electrical metallic tubing (EMT) connectors#30.21.18.00.00
+unspsc7#30.21.18.20.00#Compression connectors#30.21.18.00.00
+unspsc7#30.21.18.21.00#Set screw couplings#30.21.18.00.00
+unspsc7#30.21.18.22.00#Flex connectors#30.21.18.00.00
+unspsc7#30.21.18.23.00#Liquid tight connectors#30.21.18.00.00
+unspsc7#30.21.18.24.00#Connector assemblies#30.21.18.00.00
+unspsc7#30.21.18.25.00#Mechanical couplings#30.21.18.00.00
+unspsc7#30.21.18.26.00#Spring jaw connectors#30.21.18.00.00
+unspsc7#30.21.18.27.00#Terminal block covers#30.21.18.00.00
+unspsc7#30.21.18.28.00#Terminal block separator#30.21.18.00.00
+unspsc7#30.21.18.29.00#Jumper bar#30.21.18.00.00
+unspsc7#30.21.18.30.00#Wiring taps#30.21.18.00.00
+unspsc7#30.21.18.31.00#Electrical taps#30.21.18.00.00
+unspsc7#30.21.18.32.00#Fiber optic connector#30.21.18.00.00
+unspsc7#30.21.19.00.00#Switches and controls and relays#30.21.00.00.00
+unspsc7#30.21.19.01.00#Safety switches#30.21.19.00.00
+unspsc7#30.21.19.02.00#Dimmer switches#30.21.19.00.00
+unspsc7#30.21.19.03.00#Drum switches#30.21.19.00.00
+unspsc7#30.21.19.04.00#Time switches#30.21.19.00.00
+unspsc7#30.21.19.05.00#Snap switches#30.21.19.00.00
+unspsc7#30.21.19.06.00#Mechanical switches#30.21.19.00.00
+unspsc7#30.21.19.07.00#Pressure switches#30.21.19.00.00
+unspsc7#30.21.19.08.00#Toggle switches#30.21.19.00.00
+unspsc7#30.21.19.09.00#Slide switches#30.21.19.00.00
+unspsc7#30.21.19.10.00#Limit switches#30.21.19.00.00
+unspsc7#30.21.19.11.00#Controller switches#30.21.19.00.00
+unspsc7#30.21.19.12.00#Variable switches#30.21.19.00.00
+unspsc7#30.21.19.13.00#Push button switches#30.21.19.00.00
+unspsc7#30.21.19.14.00#Rotary switches#30.21.19.00.00
+unspsc7#30.21.19.15.00#Power relays#30.21.19.00.00
+unspsc7#30.21.19.16.00#General purpose relays#30.21.19.00.00
+unspsc7#30.21.19.17.00#Socket relays#30.21.19.00.00
+unspsc7#30.21.19.18.00#Alternating voltage relays#30.21.19.00.00
+unspsc7#30.21.19.19.00#Mercury relays#30.21.19.00.00
+unspsc7#30.21.19.20.00#Time relays#30.21.19.00.00
+unspsc7#30.21.19.21.00#Overload relays#30.21.19.00.00
+unspsc7#30.21.19.22.00#Motor starter controls#30.21.19.00.00
+unspsc7#30.21.19.23.00#Electrical contacts#30.21.19.00.00
+unspsc7#30.21.19.24.00#Timer controls#30.21.19.00.00
+unspsc7#30.21.19.25.00#Photocontrols#30.21.19.00.00
+unspsc7#30.21.19.26.00#Non fusible switches#30.21.19.00.00
+unspsc7#30.21.19.27.00#Radio frequency (RF) switches#30.21.19.00.00
+unspsc7#30.21.19.28.00#Proximity switches#30.21.19.00.00
+unspsc7#30.21.19.29.00#Encoders#30.21.19.00.00
+unspsc7#30.21.19.30.00#Photoelectric sensors#30.21.19.00.00
+unspsc7#30.21.19.31.00#Contactors#30.21.19.00.00
+unspsc7#30.21.20.00.00#Circuit protection devices and accessories#30.21.00.00.00
+unspsc7#30.21.20.01.00#Circuit breakers#30.21.20.00.00
+unspsc7#30.21.20.02.00#Magnetic circuit breakers#30.21.20.00.00
+unspsc7#30.21.20.03.00#Miniature circuit breakers#30.21.20.00.00
+unspsc7#30.21.20.04.00#Time delay fuses#30.21.20.00.00
+unspsc7#30.21.20.05.00#Plug fuses#30.21.20.00.00
+unspsc7#30.21.20.06.00#Cartridge fuses#30.21.20.00.00
+unspsc7#30.21.20.07.00#Glass body fuses#30.21.20.00.00
+unspsc7#30.21.20.08.00#Class type fuses#30.21.20.00.00
+unspsc7#30.21.20.09.00#Midget fuses#30.21.20.00.00
+unspsc7#30.21.20.10.00#Surge suppressers#30.21.20.00.00
+unspsc7#30.21.20.11.00#Ceramic fuses#30.21.20.00.00
+unspsc7#30.21.20.12.00#Blade fuses#30.21.20.00.00
+unspsc7#30.21.21.00.00#Electrical hardware and supplies#30.21.00.00.00
+unspsc7#30.21.21.01.00#Electrical hangers#30.21.21.00.00
+unspsc7#30.21.21.02.00#Cable clips#30.21.21.00.00
+unspsc7#30.21.21.03.00#Cable ties#30.21.21.00.00
+unspsc7#30.21.21.04.00#Wallplates#30.21.21.00.00
+unspsc7#30.21.21.05.00#Switchplates#30.21.21.00.00
+unspsc7#30.21.21.06.00#Cable clamps#30.21.21.00.00
+unspsc7#30.21.21.07.00#Transformer bushings#30.21.21.00.00
+unspsc7#30.21.21.08.00#Harness board nails#30.21.21.00.00
+unspsc7#30.21.21.09.00#Din Rail#30.21.21.00.00
+unspsc7#30.21.21.10.00#Handle tie#30.21.21.00.00
+unspsc7#30.21.21.11.00#Electrical receptacle multipliers#30.21.21.00.00
+unspsc7#30.21.21.12.00#Tubings#30.21.21.00.00
+unspsc7#30.21.21.13.00#End caps#30.21.21.00.00
+unspsc7#30.21.21.14.00#Spiral wrapping#30.21.21.00.00
+unspsc7#30.21.21.15.00#Grommet edging#30.21.21.00.00
+unspsc7#30.21.21.16.00#Corrugated loom tubes#30.21.21.00.00
+unspsc7#30.21.21.17.00#Expandable braided sleeve#30.21.21.00.00
+unspsc7#30.21.21.18.00#Cable tie mounts#30.21.21.00.00
+unspsc7#30.22.00.00.00#Permanent structures#30.00.00.00.00
+unspsc7#30.22.10.00.00#Commercial and entertainment structures#30.22.00.00.00
+unspsc7#30.22.10.01.00#Shopping malls#30.22.10.00.00
+unspsc7#30.22.10.02.00#Parking structures#30.22.10.00.00
+unspsc7#30.22.10.03.00#Cafeteria#30.22.10.00.00
+unspsc7#30.22.10.04.00#Shop buildings#30.22.10.00.00
+unspsc7#30.22.10.05.00#Shopping center#30.22.10.00.00
+unspsc7#30.22.10.06.00#Canteen#30.22.10.00.00
+unspsc7#30.22.10.07.00#Theater#30.22.10.00.00
+unspsc7#30.22.10.08.00#Auditorium#30.22.10.00.00
+unspsc7#30.22.10.09.00#Market#30.22.10.00.00
+unspsc7#30.22.10.10.00#Childrens play area#30.22.10.00.00
+unspsc7#30.22.10.11.00#Zoo#30.22.10.00.00
+unspsc7#30.22.10.12.00#Gardens#30.22.10.00.00
+unspsc7#30.22.10.13.00#Parks#30.22.10.00.00
+unspsc7#30.22.10.14.00#Waterside leisure facilities#30.22.10.00.00
+unspsc7#30.22.20.00.00#Transport structures#30.22.00.00.00
+unspsc7#30.22.20.01.00#Steel bridges#30.22.20.00.00
+unspsc7#30.22.20.02.00#Dry dock#30.22.20.00.00
+unspsc7#30.22.20.03.00#Bus station#30.22.20.00.00
+unspsc7#30.22.20.04.00#Bus garage#30.22.20.00.00
+unspsc7#30.22.20.05.00#Service area building#30.22.20.00.00
+unspsc7#30.22.20.06.00#Railway station#30.22.20.00.00
+unspsc7#30.22.20.07.00#Railway depot#30.22.20.00.00
+unspsc7#30.22.20.08.00#Underground railway station#30.22.20.00.00
+unspsc7#30.22.20.09.00#Rail terminal building#30.22.20.00.00
+unspsc7#30.22.20.10.00#Tramway depot#30.22.20.00.00
+unspsc7#30.22.20.11.00#Tramway platforms#30.22.20.00.00
+unspsc7#30.22.20.12.00#Airport buildings#30.22.20.00.00
+unspsc7#30.22.20.13.00#Airport control tower#30.22.20.00.00
+unspsc7#30.22.20.14.00#Airfield#30.22.20.00.00
+unspsc7#30.22.20.15.00#Runway#30.22.20.00.00
+unspsc7#30.22.20.16.00#Quay#30.22.20.00.00
+unspsc7#30.22.20.17.00#Pier#30.22.20.00.00
+unspsc7#30.22.20.18.00#Dock#30.22.20.00.00
+unspsc7#30.22.20.19.00#Wharf#30.22.20.00.00
+unspsc7#30.22.20.20.00#Marina#30.22.20.00.00
+unspsc7#30.22.20.21.00#Yacht harbor#30.22.20.00.00
+unspsc7#30.22.20.22.00#Breakwater#30.22.20.00.00
+unspsc7#30.22.20.23.00#Seawall#30.22.20.00.00
+unspsc7#30.22.20.24.00#Ferry terminal building#30.22.20.00.00
+unspsc7#30.22.20.25.00#Ro ro terminal#30.22.20.00.00
+unspsc7#30.22.20.26.00#Lighthouse#30.22.20.00.00
+unspsc7#30.22.20.27.00#Road bridge#30.22.20.00.00
+unspsc7#30.22.20.28.00#Railway bridge#30.22.20.00.00
+unspsc7#30.22.20.29.00#Footbridge#30.22.20.00.00
+unspsc7#30.22.20.30.00#Road viaduct#30.22.20.00.00
+unspsc7#30.22.20.31.00#Railway viaduct#30.22.20.00.00
+unspsc7#30.22.20.32.00#Underpass#30.22.20.00.00
+unspsc7#30.22.20.33.00#Overpass#30.22.20.00.00
+unspsc7#30.22.20.34.00#Subway#30.22.20.00.00
+unspsc7#30.22.20.35.00#Culverts#30.22.20.00.00
+unspsc7#30.22.20.36.00#Road tunnel#30.22.20.00.00
+unspsc7#30.22.20.37.00#Railway tunnel#30.22.20.00.00
+unspsc7#30.22.20.38.00#Pedestrian tunnel#30.22.20.00.00
+unspsc7#30.22.20.39.00#Canal tunnel#30.22.20.00.00
+unspsc7#30.22.20.40.00#Under river tunnel#30.22.20.00.00
+unspsc7#30.22.20.41.00#Undersea tunnel#30.22.20.00.00
+unspsc7#30.22.20.42.00#Highways#30.22.20.00.00
+unspsc7#30.22.20.43.00#Crossroad#30.22.20.00.00
+unspsc7#30.22.20.44.00#Ring road#30.22.20.00.00
+unspsc7#30.22.20.45.00#Trunk road#30.22.20.00.00
+unspsc7#30.22.20.46.00#Secondary road#30.22.20.00.00
+unspsc7#30.22.20.47.00#Access road#30.22.20.00.00
+unspsc7#30.22.20.48.00#Slip road#30.22.20.00.00
+unspsc7#30.22.20.49.00#Dual carriageway#30.22.20.00.00
+unspsc7#30.22.20.50.00#Single carriageway#30.22.20.00.00
+unspsc7#30.22.20.51.00#Road junction#30.22.20.00.00
+unspsc7#30.22.20.52.00#Pedestrian ways#30.22.20.00.00
+unspsc7#30.22.20.53.00#Pedestrian overpass#30.22.20.00.00
+unspsc7#30.22.20.54.00#Footpath#30.22.20.00.00
+unspsc7#30.22.20.55.00#Cycle path#30.22.20.00.00
+unspsc7#30.22.20.56.00#Pipeline carrying bridge#30.22.20.00.00
+unspsc7#30.22.20.57.00#Pipelines#30.22.20.00.00
+unspsc7#30.22.20.58.00#Pumping station#30.22.20.00.00
+unspsc7#30.22.20.59.00#Sewage pumping stations#30.22.20.00.00
+unspsc7#30.22.20.60.00#Sewage outfall#30.22.20.00.00
+unspsc7#30.22.20.61.00#Parking lot#30.22.20.00.00
+unspsc7#30.22.20.62.00#Parking structures#30.22.20.00.00
+unspsc7#30.22.20.63.00#Motorway service area#30.22.20.00.00
+unspsc7#30.22.21.00.00#Public structures#30.22.00.00.00
+unspsc7#30.22.21.01.00#Post office#30.22.21.00.00
+unspsc7#30.22.21.02.00#Bank#30.22.21.00.00
+unspsc7#30.22.21.03.00#Police station#30.22.21.00.00
+unspsc7#30.22.21.04.00#Court building#30.22.21.00.00
+unspsc7#30.22.21.05.00#Prison building#30.22.21.00.00
+unspsc7#30.22.21.06.00#Fire station#30.22.21.00.00
+unspsc7#30.22.21.07.00#Ambulance station#30.22.21.00.00
+unspsc7#30.22.21.08.00#Mountain rescue building#30.22.21.00.00
+unspsc7#30.22.21.09.00#Lifeboat station#30.22.21.00.00
+unspsc7#30.22.21.10.00#Coastguard building#30.22.21.00.00
+unspsc7#30.22.21.11.00#Rescue service station#30.22.21.00.00
+unspsc7#30.22.21.12.00#Civic center#30.22.21.00.00
+unspsc7#30.22.21.13.00#Crematorium#30.22.21.00.00
+unspsc7#30.22.21.14.00#Art gallery#30.22.21.00.00
+unspsc7#30.22.21.15.00#Prehistoric monument#30.22.21.00.00
+unspsc7#30.22.21.16.00#Ticket offices#30.22.21.00.00
+unspsc7#30.22.22.00.00#Utilities structures#30.22.00.00.00
+unspsc7#30.22.22.01.00#Radar station#30.22.22.00.00
+unspsc7#30.22.22.02.00#Substation#30.22.22.00.00
+unspsc7#30.22.22.03.00#Nuclear power station#30.22.22.00.00
+unspsc7#30.22.22.04.00#Water tower#30.22.22.00.00
+unspsc7#30.22.22.05.00#Wells#30.22.22.00.00
+unspsc7#30.22.22.06.00#Mobile telephone base stations#30.22.22.00.00
+unspsc7#30.22.22.07.00#Dam#30.22.22.00.00
+unspsc7#30.22.22.08.00#Oil or gas platforms#30.22.22.00.00
+unspsc7#30.22.23.00.00#Educational and research structures#30.22.00.00.00
+unspsc7#30.22.23.01.00#Schools#30.22.23.00.00
+unspsc7#30.22.23.02.00#Polytechnic#30.22.23.00.00
+unspsc7#30.22.23.03.00#Vocational college#30.22.23.00.00
+unspsc7#30.22.23.04.00#Lecture theater#30.22.23.00.00
+unspsc7#30.22.23.05.00#Library#30.22.23.00.00
+unspsc7#30.22.23.06.00#Language laboratory#30.22.23.00.00
+unspsc7#30.22.23.07.00#Laboratory building#30.22.23.00.00
+unspsc7#30.22.23.08.00#Meteorological stations#30.22.23.00.00
+unspsc7#30.22.23.09.00#Research or testing facilities#30.22.23.00.00
+unspsc7#30.22.24.00.00#Hospital structures#30.22.00.00.00
+unspsc7#30.22.24.01.00#Clinic#30.22.24.00.00
+unspsc7#30.22.24.02.00#Nursing home#30.22.24.00.00
+unspsc7#30.22.24.03.00#Operating theater#30.22.24.00.00
+unspsc7#30.22.24.04.00#Intensive care unit#30.22.24.00.00
+unspsc7#30.22.24.05.00#Diagnostic screening room#30.22.24.00.00
+unspsc7#30.22.24.06.00#Screening rooms#30.22.24.00.00
+unspsc7#30.22.24.07.00#Fluoroscopy room#30.22.24.00.00
+unspsc7#30.22.24.08.00#Pathology room#30.22.24.00.00
+unspsc7#30.22.24.09.00#Catheter room#30.22.24.00.00
+unspsc7#30.22.25.00.00#Accommodation structures#30.22.00.00.00
+unspsc7#30.22.25.01.00#Residential homes#30.22.25.00.00
+unspsc7#30.22.25.02.00#Flats#30.22.25.00.00
+unspsc7#30.22.25.03.00#Childrens home#30.22.25.00.00
+unspsc7#30.22.25.04.00#Daycare center#30.22.25.00.00
+unspsc7#30.22.25.05.00#Retirement home#30.22.25.00.00
+unspsc7#30.22.25.06.00#Old peoples home#30.22.25.00.00
+unspsc7#30.22.25.07.00#Hostel#30.22.25.00.00
+unspsc7#30.22.26.00.00#Sports and health structures#30.22.00.00.00
+unspsc7#30.22.26.01.00#Stadium#30.22.26.00.00
+unspsc7#30.22.26.02.00#Sports ground#30.22.26.00.00
+unspsc7#30.22.26.03.00#Running track#30.22.26.00.00
+unspsc7#30.22.26.04.00#Sports hall#30.22.26.00.00
+unspsc7#30.22.26.05.00#Spa#30.22.26.00.00
+unspsc7#30.22.26.06.00#Gymnasium#30.22.26.00.00
+unspsc7#30.22.26.07.00#Swimming pool#30.22.26.00.00
+unspsc7#30.22.26.08.00#Water sports facilities#30.22.26.00.00
+unspsc7#30.22.27.00.00#Industrial structures#30.22.00.00.00
+unspsc7#30.22.27.01.00#Workshops#30.22.27.00.00
+unspsc7#30.22.27.02.00#Cold storage installations#30.22.27.00.00
+unspsc7#30.22.27.03.00#Warehouse stores#30.22.27.00.00
+unspsc7#30.22.28.00.00#Agricultural and farming and fishing structures#30.22.00.00.00
+unspsc7#30.22.28.01.00#Barn#30.22.28.00.00
+unspsc7#30.22.28.02.00#Cowsheds#30.22.28.00.00
+unspsc7#30.22.28.03.00#Irrigation channel#30.22.28.00.00
+unspsc7#30.22.29.00.00#Defense structures#30.22.00.00.00
+unspsc7#30.22.29.01.00#Military bunker#30.22.29.00.00
+unspsc7#30.22.29.02.00#Military shelter#30.22.29.00.00
+unspsc7#30.22.29.03.00#Barracks#30.22.29.00.00
+unspsc7#30.22.29.04.00#Military mess#30.22.29.00.00
+unspsc7#30.22.30.00.00#Religious structures#30.22.00.00.00
+unspsc7#30.22.30.01.00#Churches#30.22.30.00.00
+unspsc7#30.22.30.02.00#Temples#30.22.30.00.00
+unspsc7#30.22.30.03.00#Mosques#30.22.30.00.00
+unspsc7#31.00.00.00.00#Manufacturing Components and Supplies#31.00.00.00.00
+unspsc7#31.10.00.00.00#Castings#31.00.00.00.00
+unspsc7#31.10.15.00.00#Die castings#31.10.00.00.00
+unspsc7#31.10.15.01.00#Aluminum die castings#31.10.15.00.00
+unspsc7#31.10.15.02.00#Ferrous alloy die castings#31.10.15.00.00
+unspsc7#31.10.15.03.00#Iron die castings#31.10.15.00.00
+unspsc7#31.10.15.04.00#Non ferrous alloy die castings#31.10.15.00.00
+unspsc7#31.10.15.05.00#Stainless steel die castings#31.10.15.00.00
+unspsc7#31.10.15.06.00#Steel die castings#31.10.15.00.00
+unspsc7#31.10.15.07.00#Magnesium die castings#31.10.15.00.00
+unspsc7#31.10.15.08.00#Zinc die castings#31.10.15.00.00
+unspsc7#31.10.15.09.00#Tin die castings#31.10.15.00.00
+unspsc7#31.10.15.10.00#Titanium die castings#31.10.15.00.00
+unspsc7#31.10.15.11.00#Beryllium die castings#31.10.15.00.00
+unspsc7#31.10.15.12.00#Precious metal die castings#31.10.15.00.00
+unspsc7#31.10.15.13.00#Copper die castings#31.10.15.00.00
+unspsc7#31.10.15.14.00#Lead die castings#31.10.15.00.00
+unspsc7#31.10.15.15.00#Brass die castings#31.10.15.00.00
+unspsc7#31.10.15.16.00#Bronze die castings#31.10.15.00.00
+unspsc7#31.10.16.00.00#Sand castings#31.10.00.00.00
+unspsc7#31.10.16.01.00#Non ferrous alloy sand castings#31.10.16.00.00
+unspsc7#31.10.16.02.00#Ferrous alloy sand castings#31.10.16.00.00
+unspsc7#31.10.16.03.00#Steel sand castings#31.10.16.00.00
+unspsc7#31.10.16.04.00#Stainless steel sand castings#31.10.16.00.00
+unspsc7#31.10.16.05.00#Iron sand castings#31.10.16.00.00
+unspsc7#31.10.16.06.00#Aluminum sand castings#31.10.16.00.00
+unspsc7#31.10.16.07.00#Magnesium sand castings#31.10.16.00.00
+unspsc7#31.10.16.08.00#Titanium sand castings#31.10.16.00.00
+unspsc7#31.10.16.09.00#Beryllium sand castings#31.10.16.00.00
+unspsc7#31.10.16.10.00#Copper sand castings#31.10.16.00.00
+unspsc7#31.10.16.11.00#Brass sand castings#31.10.16.00.00
+unspsc7#31.10.16.12.00#Bronze sand castings#31.10.16.00.00
+unspsc7#31.10.16.13.00#Zinc sand castings#31.10.16.00.00
+unspsc7#31.10.16.14.00#Tin sand castings#31.10.16.00.00
+unspsc7#31.10.16.15.00#Lead sand castings#31.10.16.00.00
+unspsc7#31.10.16.16.00#Precious metal sand castings#31.10.16.00.00
+unspsc7#31.10.17.00.00#Permanent mold castings#31.10.00.00.00
+unspsc7#31.10.17.01.00#Non ferrous alloy permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.02.00#Ferrous alloy permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.03.00#Steel permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.04.00#Stainless steel permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.05.00#Iron permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.06.00#Aluminum permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.07.00#Magnesium permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.08.00#Titanium permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.09.00#Beryllium permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.10.00#Copper permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.11.00#Brass permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.12.00#Bronze permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.13.00#Zinc permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.14.00#Tin permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.15.00#Lead permanent mold castings#31.10.17.00.00
+unspsc7#31.10.17.16.00#Precious metal permanent mold castings#31.10.17.00.00
+unspsc7#31.10.18.00.00#Shell mold castings#31.10.00.00.00
+unspsc7#31.10.18.01.00#Non ferrous alloy shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.02.00#Ferrous alloy shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.03.00#Steel shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.04.00#Stainless steel shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.05.00#Iron shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.06.00#Aluminum shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.07.00#Magnesium shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.08.00#Titanium shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.09.00#Beryllium shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.10.00#Copper shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.11.00#Brass shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.12.00#Bronze shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.13.00#Zinc shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.14.00#Tin shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.15.00#Lead shell mold castings#31.10.18.00.00
+unspsc7#31.10.18.16.00#Precious shell mold castings#31.10.18.00.00
+unspsc7#31.10.19.00.00#Investment castings#31.10.00.00.00
+unspsc7#31.10.19.01.00#Non ferrous alloy investment castings#31.10.19.00.00
+unspsc7#31.10.19.02.00#Ferrous alloy investment castings#31.10.19.00.00
+unspsc7#31.10.19.03.00#Steel investment castings#31.10.19.00.00
+unspsc7#31.10.19.04.00#Stainless steel investment castings#31.10.19.00.00
+unspsc7#31.10.19.05.00#Iron investment castings#31.10.19.00.00
+unspsc7#31.10.19.06.00#Aluminum investment castings#31.10.19.00.00
+unspsc7#31.10.19.07.00#Magnesium investment castings#31.10.19.00.00
+unspsc7#31.10.19.08.00#Zinc investment castings#31.10.19.00.00
+unspsc7#31.10.19.09.00#Tin investment castings#31.10.19.00.00
+unspsc7#31.10.19.10.00#Lead investment castings#31.10.19.00.00
+unspsc7#31.10.19.11.00#Precious metal investment castings#31.10.19.00.00
+unspsc7#31.10.19.12.00#Titanium investment castings#31.10.19.00.00
+unspsc7#31.10.20.00.00#Centrifugal castings#31.10.00.00.00
+unspsc7#31.10.20.01.00#Non ferrous alloy centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.02.00#Ferrous alloy centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.03.00#Steel centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.04.00#Stainless steel centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.05.00#Iron centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.06.00#Aluminum centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.07.00#Magnesium centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.08.00#Titanium centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.09.00#Beryllium centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.10.00#Copper centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.11.00#Brass centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.12.00#Bronze centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.13.00#Zinc centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.14.00#Tin centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.15.00#Lead centrifugal castings#31.10.20.00.00
+unspsc7#31.10.20.16.00#Precious metal centrifugal castings#31.10.20.00.00
+unspsc7#31.10.21.00.00#Ceramic mold castings#31.10.00.00.00
+unspsc7#31.10.21.01.00#Non ferrous alloy ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.02.00#Ferrous alloy ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.03.00#Steel ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.04.00#Stainless steel ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.05.00#Iron ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.06.00#Aluminum ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.07.00#Magnesium ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.08.00#Titanium ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.09.00#Beryllium ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.10.00#Copper ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.11.00#Brass ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.12.00#Bronze ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.13.00#Zinc ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.14.00#Tin ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.15.00#Lead ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.21.16.00#Precious metal ceramic mold castings#31.10.21.00.00
+unspsc7#31.10.22.00.00#Graphite mold castings#31.10.00.00.00
+unspsc7#31.10.22.01.00#Non ferrous alloy graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.02.00#Ferrrous alloy graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.03.00#Steel graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.04.00#Stainless steel graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.05.00#Iron graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.06.00#Aluminum graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.07.00#Magnesium graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.08.00#Titanium graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.09.00#Beryllium graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.10.00#Copper graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.11.00#Brass graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.12.00#Bronze graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.13.00#Zinc graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.14.00#Tin graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.15.00#Lead graphite mold castings#31.10.22.00.00
+unspsc7#31.10.22.16.00#Precious metal graphite mold castings#31.10.22.00.00
+unspsc7#31.10.23.00.00#Plaster mold castings#31.10.00.00.00
+unspsc7#31.10.23.01.00#Non ferrous alloy plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.02.00#Ferrous alloy plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.03.00#Steel plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.04.00#Stainless steel plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.05.00#Iron plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.06.00#Aluminum plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.07.00#Magnesium plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.08.00#Titanium plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.09.00#Beryllium plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.10.00#Copper plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.11.00#Brass plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.12.00#Bronze plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.13.00#Zinc plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.14.00#Tin plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.15.00#Lead plaster mold castings#31.10.23.00.00
+unspsc7#31.10.23.16.00#Precious metal plaster mold castings#31.10.23.00.00
+unspsc7#31.10.24.00.00#V process castings#31.10.00.00.00
+unspsc7#31.10.24.01.00#Non ferrous alloy v process castings#31.10.24.00.00
+unspsc7#31.10.24.02.00#Ferrous alloy v process castings#31.10.24.00.00
+unspsc7#31.10.24.03.00#Steel v process castings#31.10.24.00.00
+unspsc7#31.10.24.04.00#Stainless steel v process castings#31.10.24.00.00
+unspsc7#31.10.24.05.00#Iron v process castings#31.10.24.00.00
+unspsc7#31.10.24.06.00#Aluminum v process castings#31.10.24.00.00
+unspsc7#31.10.24.07.00#Magnesium v process castings#31.10.24.00.00
+unspsc7#31.10.24.08.00#Titanium v process castings#31.10.24.00.00
+unspsc7#31.10.24.09.00#Beryllium v process castings#31.10.24.00.00
+unspsc7#31.10.24.10.00#Copper v process castings#31.10.24.00.00
+unspsc7#31.10.24.11.00#Brass v process castings#31.10.24.00.00
+unspsc7#31.10.24.12.00#Bronze v process castings#31.10.24.00.00
+unspsc7#31.10.24.13.00#Zinc v process castings#31.10.24.00.00
+unspsc7#31.10.24.14.00#Tin v process castings#31.10.24.00.00
+unspsc7#31.10.24.15.00#Lead v process castings#31.10.24.00.00
+unspsc7#31.10.24.16.00#Precious metal v process castings#31.10.24.00.00
+unspsc7#31.11.00.00.00#Extrusions#31.00.00.00.00
+unspsc7#31.11.15.00.00#Profile extrusions#31.11.00.00.00
+unspsc7#31.11.15.01.00#Aluminum profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.02.00#Beryllium profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.03.00#Brass profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.04.00#Bronze profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.05.00#Copper profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.06.00#Ferrous alloy profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.07.00#Lead profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.08.00#Magnesium profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.09.00#Non ferrous alloy profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.10.00#Plastic profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.11.00#Precious metal profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.12.00#Rubber profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.13.00#Stainless steel profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.14.00#Steel profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.15.00#Tin profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.16.00#Titanium profile extrusions#31.11.15.00.00
+unspsc7#31.11.15.17.00#Zinc profile extrusions#31.11.15.00.00
+unspsc7#31.11.16.00.00#Impact extrusions#31.11.00.00.00
+unspsc7#31.11.16.01.00#Aluminum impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.02.00#Beryllium impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.03.00#Brass impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.04.00#Bronze impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.05.00#Copper impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.06.00#Ferrous alloy impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.07.00#Lead impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.08.00#Magnesium impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.09.00#Non ferrous alloy impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.10.00#Plastic impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.11.00#Precious metal impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.12.00#Rubber impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.13.00#Stainless steel impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.14.00#Steel impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.15.00#Tin impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.16.00#Titanium impact extrusions#31.11.16.00.00
+unspsc7#31.11.16.17.00#Zinc impact extrusions#31.11.16.00.00
+unspsc7#31.11.17.00.00#Cold extrusions#31.11.00.00.00
+unspsc7#31.11.17.01.00#Aluminum cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.02.00#Beryllium cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.03.00#Brass cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.04.00#Bronze cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.05.00#Copper cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.06.00#Ferrous alloy cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.07.00#Lead cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.08.00#Magnesium cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.09.00#Non ferrous alloy cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.10.00#Plastic cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.11.00#Precious metal cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.12.00#Rubber cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.13.00#Stainless steel cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.14.00#Steel cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.15.00#Tin cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.16.00#Titanium cold extrusions#31.11.17.00.00
+unspsc7#31.11.17.17.00#Zinc cold extrusions#31.11.17.00.00
+unspsc7#31.12.00.00.00#Machined castings#31.00.00.00.00
+unspsc7#31.12.10.00.00#Machined v process castings#31.12.00.00.00
+unspsc7#31.12.10.01.00#Non ferrous alloy v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.02.00#Ferrous alloy v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.03.00#Steel v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.04.00#Stainless steel v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.05.00#Iron v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.06.00#Aluminum v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.07.00#Magnesium v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.08.00#Titanium v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.09.00#Beryllium v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.10.00#Copper v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.11.00#Brass v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.12.00#Bronze v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.13.00#Zinc v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.14.00#Tin v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.15.00#Lead v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.16.00#Precious metal v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.17.00#Composite v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.18.00#Nickel alloy v process machined castings#31.12.10.00.00
+unspsc7#31.12.10.19.00#Non metallic v process machined castings#31.12.10.00.00
+unspsc7#31.12.11.00.00#Machined die castings#31.12.00.00.00
+unspsc7#31.12.11.01.00#Aluminum die machined castings#31.12.11.00.00
+unspsc7#31.12.11.02.00#Ferrous alloy die machined castings#31.12.11.00.00
+unspsc7#31.12.11.03.00#Iron die machined castings#31.12.11.00.00
+unspsc7#31.12.11.04.00#Non ferrous alloy die machined castings#31.12.11.00.00
+unspsc7#31.12.11.05.00#Stainless steel die machined castings#31.12.11.00.00
+unspsc7#31.12.11.06.00#Steel die machined castings#31.12.11.00.00
+unspsc7#31.12.11.07.00#Magnesium die machined castings#31.12.11.00.00
+unspsc7#31.12.11.08.00#Zinc die machined castings#31.12.11.00.00
+unspsc7#31.12.11.09.00#Tin die machined castings#31.12.11.00.00
+unspsc7#31.12.11.10.00#Titanium die machined castings#31.12.11.00.00
+unspsc7#31.12.11.11.00#Beryllium die machined castings#31.12.11.00.00
+unspsc7#31.12.11.12.00#Precious metal die machined castings#31.12.11.00.00
+unspsc7#31.12.11.13.00#Copper die machined castings#31.12.11.00.00
+unspsc7#31.12.11.14.00#Lead die machined castings#31.12.11.00.00
+unspsc7#31.12.11.15.00#Brass die machined castings#31.12.11.00.00
+unspsc7#31.12.11.16.00#Bronze die machined castings#31.12.11.00.00
+unspsc7#31.12.11.17.00#Composite die machined castings#31.12.11.00.00
+unspsc7#31.12.11.18.00#Nickel Alloy die machined castings#31.12.11.00.00
+unspsc7#31.12.11.19.00#Non metallic die machined castings#31.12.11.00.00
+unspsc7#31.12.12.00.00#Machined sand castings#31.12.00.00.00
+unspsc7#31.12.12.01.00#Non ferrous alloy sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.02.00#Ferrous alloy sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.03.00#Steel sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.04.00#Stainless steel sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.05.00#Iron sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.06.00#Aluminum sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.07.00#Magnesium sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.08.00#Titanium sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.09.00#Beryllium sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.10.00#Copper sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.11.00#Brass sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.12.00#Bronze sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.13.00#Zinc sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.14.00#Tin sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.15.00#Lead sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.16.00#Precious metal sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.17.00#Composite sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.18.00#Nickel Alloy sand machined castings#31.12.12.00.00
+unspsc7#31.12.12.19.00#Non metallic sand machined castings#31.12.12.00.00
+unspsc7#31.12.13.00.00#Machined permanent mold castings#31.12.00.00.00
+unspsc7#31.12.13.01.00#Non ferrous alloy permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.02.00#Ferrous alloy permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.03.00#Steel permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.04.00#Stainless steel permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.05.00#Iron permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.06.00#Aluminum permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.07.00#Magnesium permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.08.00#Titanium permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.09.00#Beryllium permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.10.00#Copper permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.11.00#Brass permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.12.00#Bronze permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.13.00#Zinc permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.14.00#Tin permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.15.00#Lead permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.16.00#Precious metal permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.17.00#Composite permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.18.00#Nickel alloy permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.13.19.00#Non metallic permanent mold machined castings#31.12.13.00.00
+unspsc7#31.12.14.00.00#Machined plaster mold castings#31.12.00.00.00
+unspsc7#31.12.14.01.00#Non ferrous alloy plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.02.00#Ferrous alloy plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.03.00#Steel plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.04.00#Stainless steel plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.05.00#Iron plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.06.00#Aluminum plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.07.00#Magnesium plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.08.00#Titanium plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.09.00#Beryllium plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.10.00#Copper plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.11.00#Brass plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.12.00#Bronze plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.13.00#Zinc plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.14.00#Tin plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.15.00#Lead plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.16.00#Precious metal plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.17.00#Composite plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.18.00#Nickel alloy plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.14.19.00#Non metallic plaster mold machined castings#31.12.14.00.00
+unspsc7#31.12.15.00.00#Machined shell mold castings#31.12.00.00.00
+unspsc7#31.12.15.01.00#Non ferrous alloy shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.02.00#Ferrous alloy shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.03.00#Steel shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.04.00#Stainless steel shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.05.00#Iron shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.06.00#Aluminum shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.07.00#Magnesium shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.08.00#Titanium shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.09.00#Beryllium shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.10.00#Copper shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.11.00#Brass shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.12.00#Bronze shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.13.00#Zinc shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.14.00#Tin shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.15.00#Lead shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.16.00#Precious shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.17.00#Composite shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.18.00#Nickel alloy shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.15.19.00#Non metallic shell mold machined castings#31.12.15.00.00
+unspsc7#31.12.16.00.00#Machined investment castings#31.12.00.00.00
+unspsc7#31.12.16.01.00#Non ferrous alloy investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.02.00#Ferrous alloy investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.03.00#Steel investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.04.00#Stainless steel investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.05.00#Iron investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.06.00#Aluminum investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.07.00#Magnesium investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.08.00#Zinc investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.09.00#Tin investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.10.00#Lead investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.11.00#Precious metal investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.12.00#Titanium investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.13.00#Composite investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.14.00#Nickel alloy investment machined castings#31.12.16.00.00
+unspsc7#31.12.16.15.00#Non metallic investment machined castings#31.12.16.00.00
+unspsc7#31.12.17.00.00#Machined centrifugal castings#31.12.00.00.00
+unspsc7#31.12.17.01.00#Non ferrous alloy centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.02.00#Ferrous alloy centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.03.00#Steel centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.04.00#Stainless steel centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.05.00#Iron centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.06.00#Aluminum centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.07.00#Magnesium centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.08.00#Titanium centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.09.00#Beryllium centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.10.00#Copper centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.11.00#Brass centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.12.00#Bronze centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.13.00#Zinc centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.14.00#Tin centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.15.00#Lead centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.16.00#Precious metal centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.17.00#Composite centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.18.00#Nickel alloy centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.17.19.00#Non metallic centrifugal machined castings#31.12.17.00.00
+unspsc7#31.12.18.00.00#Machined ceramic mold castings#31.12.00.00.00
+unspsc7#31.12.18.01.00#Non ferrous alloy ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.02.00#Ferrous alloy ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.03.00#Steel ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.04.00#Stainless steel ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.05.00#Iron ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.06.00#Aluminum ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.07.00#Magnesium ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.08.00#Titanium ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.09.00#Beryllium ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.10.00#Copper ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.11.00#Brass ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.12.00#Bronze ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.13.00#Zinc ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.14.00#Tin ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.15.00#Lead ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.16.00#Precious metal ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.17.00#Composite ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.18.00#Nickel alloy ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.18.19.00#Non metallic ceramic mold machined castings#31.12.18.00.00
+unspsc7#31.12.19.00.00#Machined graphite mold castings#31.12.00.00.00
+unspsc7#31.12.19.01.00#Non ferrous alloy graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.02.00#Ferrrous alloy graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.03.00#Steel graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.04.00#Stainless steel graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.05.00#Iron graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.06.00#Aluminum graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.07.00#Magnesium graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.08.00#Titanium graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.09.00#Beryllium graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.10.00#Copper graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.11.00#Brass graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.12.00#Bronze graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.13.00#Zinc graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.14.00#Tin graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.15.00#Lead graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.16.00#Precious metal graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.17.00#Composite graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.18.00#Nickel alloy metal graphite mold machined castings#31.12.19.00.00
+unspsc7#31.12.19.19.00#Non metallic graphite mold machined castings#31.12.19.00.00
+unspsc7#31.13.00.00.00#Forgings#31.00.00.00.00
+unspsc7#31.13.15.00.00#Open die forgings#31.13.00.00.00
+unspsc7#31.13.15.01.00#Non ferrous alloy open die forgings#31.13.15.00.00
+unspsc7#31.13.15.02.00#Ferrous alloy open die forgings#31.13.15.00.00
+unspsc7#31.13.15.03.00#Steel open die forgings#31.13.15.00.00
+unspsc7#31.13.15.04.00#Stainless steel open die forgings#31.13.15.00.00
+unspsc7#31.13.15.05.00#Iron open die forgings#31.13.15.00.00
+unspsc7#31.13.15.06.00#Aluminum open die forgings#31.13.15.00.00
+unspsc7#31.13.15.07.00#Magnesium open die forgings#31.13.15.00.00
+unspsc7#31.13.15.08.00#Titanium open die forgings#31.13.15.00.00
+unspsc7#31.13.15.09.00#Beryllium open die forgings#31.13.15.00.00
+unspsc7#31.13.15.10.00#Copper open die forgings#31.13.15.00.00
+unspsc7#31.13.15.11.00#Brass open die forgings#31.13.15.00.00
+unspsc7#31.13.15.12.00#Bronze open die forgings#31.13.15.00.00
+unspsc7#31.13.15.13.00#Zinc open die forgings#31.13.15.00.00
+unspsc7#31.13.15.14.00#Tin open die forgings#31.13.15.00.00
+unspsc7#31.13.15.15.00#Lead open die forgings#31.13.15.00.00
+unspsc7#31.13.15.16.00#Precious metal open die forgings#31.13.15.00.00
+unspsc7#31.13.16.00.00#Closed die forgings#31.13.00.00.00
+unspsc7#31.13.16.01.00#Non ferrous alloy closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.02.00#Ferrous alloy closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.03.00#Steel closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.04.00#Stainless steel closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.05.00#Iron closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.06.00#Aluminum closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.07.00#Magnesium closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.08.00#Titanium closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.09.00#Beryllium closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.10.00#Copper closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.11.00#Brass closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.12.00#Bronze closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.13.00#Zinc closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.14.00#Tin closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.15.00#Lead closed die forgings#31.13.16.00.00
+unspsc7#31.13.16.16.00#Precious metal closed die forgings#31.13.16.00.00
+unspsc7#31.13.17.00.00#Impression die forgings#31.13.00.00.00
+unspsc7#31.13.17.01.00#Non ferrous alloy impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.02.00#Ferrous alloy impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.03.00#Steel impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.04.00#Stainless steel impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.05.00#Iron impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.06.00#Aluminum impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.07.00#Magnesium impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.08.00#Titanium impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.09.00#Beryllium impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.10.00#Copper impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.11.00#Brass impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.12.00#Bronze impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.13.00#Zinc impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.14.00#Tin impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.15.00#Lead impression die forgings#31.13.17.00.00
+unspsc7#31.13.17.16.00#Precious metal impression die forgings#31.13.17.00.00
+unspsc7#31.13.18.00.00#Drop forgings#31.13.00.00.00
+unspsc7#31.13.18.01.00#Non ferrous alloy drop forgings#31.13.18.00.00
+unspsc7#31.13.18.02.00#Zinc drop forgings#31.13.18.00.00
+unspsc7#31.13.18.03.00#Ferrous alloy drop forgings#31.13.18.00.00
+unspsc7#31.13.18.04.00#Tin drop forgings#31.13.18.00.00
+unspsc7#31.13.18.05.00#Lead drop forgings#31.13.18.00.00
+unspsc7#31.13.18.06.00#Steel drop forgings#31.13.18.00.00
+unspsc7#31.13.18.07.00#Precious metal drop forgings#31.13.18.00.00
+unspsc7#31.13.18.08.00#Stainless steel drop forgings#31.13.18.00.00
+unspsc7#31.13.18.09.00#Iron drop forgings#31.13.18.00.00
+unspsc7#31.13.18.10.00#Aluminum drop forgings#31.13.18.00.00
+unspsc7#31.13.18.11.00#Magnesium drop forgings#31.13.18.00.00
+unspsc7#31.13.18.12.00#Titanium drop forgings#31.13.18.00.00
+unspsc7#31.13.18.13.00#Beryllium drop forgings#31.13.18.00.00
+unspsc7#31.13.18.14.00#Copper drop forgings#31.13.18.00.00
+unspsc7#31.13.18.15.00#Brass drop forgings#31.13.18.00.00
+unspsc7#31.13.18.16.00#Bronze drop forgings#31.13.18.00.00
+unspsc7#31.13.18.17.00#Cold steel drop forgings#31.13.18.00.00
+unspsc7#31.13.18.18.00#Semi finished drop forgings#31.13.18.00.00
+unspsc7#31.13.19.00.00#Rolled ring forgings#31.13.00.00.00
+unspsc7#31.13.19.01.00#Aluminum rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.02.00#Beryllium rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.03.00#Brass rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.04.00#Bronze rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.05.00#Copper rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.06.00#Iron rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.07.00#Lead rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.08.00#Magnesium rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.09.00#Precious metal rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.10.00#Stainless steel rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.11.00#Tin rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.12.00#Titanium rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.13.00#Zinc rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.14.00#Non ferrous alloy rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.15.00#Ferrous alloy rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.19.16.00#Steel rolled ring forgings#31.13.19.00.00
+unspsc7#31.13.20.00.00#Powdered metal components#31.13.00.00.00
+unspsc7#31.13.20.01.00#Ferrous powdered metal components#31.13.20.00.00
+unspsc7#31.13.20.02.00#Non ferrous powdered metal parts#31.13.20.00.00
+unspsc7#31.14.00.00.00#Moldings#31.00.00.00.00
+unspsc7#31.14.15.00.00#Injection moldings#31.14.00.00.00
+unspsc7#31.14.15.01.00#Plastic injection moldings#31.14.15.00.00
+unspsc7#31.14.15.02.00#Rubber injection moldings#31.14.15.00.00
+unspsc7#31.14.15.03.00#Glass injection moldings#31.14.15.00.00
+unspsc7#31.14.16.00.00#Vacuum moldings#31.14.00.00.00
+unspsc7#31.14.16.01.00#Plastic vacuum moldings#31.14.16.00.00
+unspsc7#31.14.16.02.00#Rubber vacuum moldings#31.14.16.00.00
+unspsc7#31.14.16.03.00#Glass vacuum moldings#31.14.16.00.00
+unspsc7#31.14.17.00.00#Blow moldings#31.14.00.00.00
+unspsc7#31.14.17.01.00#Plastic blow moldings#31.14.17.00.00
+unspsc7#31.14.17.02.00#Rubber blow moldings#31.14.17.00.00
+unspsc7#31.14.18.00.00#Reaction injection moldings (RIM)#31.14.00.00.00
+unspsc7#31.14.18.01.00#Plastic reaction injection moldings#31.14.18.00.00
+unspsc7#31.14.18.02.00#Rubber reaction injection moldings#31.14.18.00.00
+unspsc7#31.15.00.00.00#Rope and chain and cable and wire and strap#31.00.00.00.00
+unspsc7#31.15.15.00.00#Ropes#31.15.00.00.00
+unspsc7#31.15.15.01.00#Cotton rope#31.15.15.00.00
+unspsc7#31.15.15.02.00#Polyester rope#31.15.15.00.00
+unspsc7#31.15.15.03.00#Polypropylene rope#31.15.15.00.00
+unspsc7#31.15.15.04.00#Nylon rope#31.15.15.00.00
+unspsc7#31.15.15.05.00#Wire rope#31.15.15.00.00
+unspsc7#31.15.15.06.00#Hemp rope#31.15.15.00.00
+unspsc7#31.15.15.07.00#String or twine#31.15.15.00.00
+unspsc7#31.15.15.08.00#Sisal rope#31.15.15.00.00
+unspsc7#31.15.16.00.00#Chains#31.15.00.00.00
+unspsc7#31.15.16.01.00#Safety chains#31.15.16.00.00
+unspsc7#31.15.16.02.00#Skid chains#31.15.16.00.00
+unspsc7#31.15.16.03.00#Roller chains#31.15.16.00.00
+unspsc7#31.15.16.04.00#Proof coil chains#31.15.16.00.00
+unspsc7#31.15.16.05.00#Sash chain#31.15.16.00.00
+unspsc7#31.15.16.06.00#Jack chains#31.15.16.00.00
+unspsc7#31.15.16.07.00#Coil chains#31.15.16.00.00
+unspsc7#31.15.16.08.00#Ball chains#31.15.16.00.00
+unspsc7#31.15.16.09.00#Chain links#31.15.16.00.00
+unspsc7#31.15.17.00.00#Mechanical cable#31.15.00.00.00
+unspsc7#31.15.17.01.00#Mechanical cables#31.15.17.00.00
+unspsc7#31.15.17.02.00#Non electric control cables#31.15.17.00.00
+unspsc7#31.15.17.03.00#Lifting cables#31.15.17.00.00
+unspsc7#31.15.17.04.00#Track cables#31.15.17.00.00
+unspsc7#31.15.17.05.00#Non electrical steel cables#31.15.17.00.00
+unspsc7#31.15.17.06.00#Non electrical copper cables#31.15.17.00.00
+unspsc7#31.15.17.07.00#Non electrical aluminum cables#31.15.17.00.00
+unspsc7#31.15.18.00.00#Mechanical wire#31.15.00.00.00
+unspsc7#31.15.18.01.00#Mechanical wire#31.15.18.00.00
+unspsc7#31.15.18.02.00#Barbed wire#31.15.18.00.00
+unspsc7#31.15.18.03.00#Piano steel wire#31.15.18.00.00
+unspsc7#31.15.19.00.00#Straps#31.15.00.00.00
+unspsc7#31.15.19.01.00#Metal straps#31.15.19.00.00
+unspsc7#31.15.19.02.00#Leather straps#31.15.19.00.00
+unspsc7#31.15.19.03.00#Fiber straps#31.15.19.00.00
+unspsc7#31.15.19.04.00#Plastic straps#31.15.19.00.00
+unspsc7#31.15.20.00.00#Security wire#31.15.00.00.00
+unspsc7#31.15.20.01.00#Razor wire#31.15.20.00.00
+unspsc7#31.15.20.02.00#Barbed wire#31.15.20.00.00
+unspsc7#31.15.21.00.00#Electrical wire#31.15.00.00.00
+unspsc7#31.15.21.01.00#Wire assembly#31.15.21.00.00
+unspsc7#31.16.00.00.00#Hardware#31.00.00.00.00
+unspsc7#31.16.15.00.00#Screws#31.16.00.00.00
+unspsc7#31.16.15.01.00#Cap screws#31.16.15.00.00
+unspsc7#31.16.15.02.00#Anchor screws#31.16.15.00.00
+unspsc7#31.16.15.03.00#Drive screws#31.16.15.00.00
+unspsc7#31.16.15.04.00#Machine screws#31.16.15.00.00
+unspsc7#31.16.15.05.00#Set screws#31.16.15.00.00
+unspsc7#31.16.15.06.00#Sheet metal screws#31.16.15.00.00
+unspsc7#31.16.15.07.00#Tapping screws#31.16.15.00.00
+unspsc7#31.16.15.08.00#Wood screws#31.16.15.00.00
+unspsc7#31.16.15.09.00#Drywall screws#31.16.15.00.00
+unspsc7#31.16.15.10.00#Captive screw#31.16.15.00.00
+unspsc7#31.16.15.11.00#Locking screws#31.16.15.00.00
+unspsc7#31.16.15.12.00#Thread rolling screws#31.16.15.00.00
+unspsc7#31.16.15.13.00#Flathead screws#31.16.15.00.00
+unspsc7#31.16.15.14.00#Weld screws#31.16.15.00.00
+unspsc7#31.16.15.15.00#Flat head screws#31.16.15.00.00
+unspsc7#31.16.15.16.00#Thumb screws#31.16.15.00.00
+unspsc7#31.16.15.17.00#Shoulder screws#31.16.15.00.00
+unspsc7#31.16.16.00.00#Bolts#31.16.00.00.00
+unspsc7#31.16.16.01.00#Anchor bolts#31.16.16.00.00
+unspsc7#31.16.16.02.00#Blind bolts#31.16.16.00.00
+unspsc7#31.16.16.03.00#Carriage bolts#31.16.16.00.00
+unspsc7#31.16.16.04.00#Clevis bolts#31.16.16.00.00
+unspsc7#31.16.16.05.00#Cylinder bolts#31.16.16.00.00
+unspsc7#31.16.16.06.00#Door bolts#31.16.16.00.00
+unspsc7#31.16.16.07.00#Expansion bolts#31.16.16.00.00
+unspsc7#31.16.16.08.00#Lag bolts#31.16.16.00.00
+unspsc7#31.16.16.09.00#Toggle bolts#31.16.16.00.00
+unspsc7#31.16.16.10.00#Eye bolts#31.16.16.00.00
+unspsc7#31.16.16.11.00#Locking bolts#31.16.16.00.00
+unspsc7#31.16.16.12.00#Pin or collar bolts#31.16.16.00.00
+unspsc7#31.16.16.13.00#Tension bolts#31.16.16.00.00
+unspsc7#31.16.16.14.00#Structural bolts#31.16.16.00.00
+unspsc7#31.16.16.15.00#Torque bolts#31.16.16.00.00
+unspsc7#31.16.16.16.00#U bolts#31.16.16.00.00
+unspsc7#31.16.16.17.00#Wing bolts#31.16.16.00.00
+unspsc7#31.16.16.18.00#Threaded rod#31.16.16.00.00
+unspsc7#31.16.16.19.00#Stud bolts#31.16.16.00.00
+unspsc7#31.16.16.20.00#Hexagonal bolts#31.16.16.00.00
+unspsc7#31.16.17.00.00#Nuts#31.16.00.00.00
+unspsc7#31.16.17.01.00#Anchor nuts#31.16.17.00.00
+unspsc7#31.16.17.02.00#Bearing nuts#31.16.17.00.00
+unspsc7#31.16.17.03.00#Blind nuts#31.16.17.00.00
+unspsc7#31.16.17.04.00#Barrel nuts#31.16.17.00.00
+unspsc7#31.16.17.05.00#Cap nuts#31.16.17.00.00
+unspsc7#31.16.17.06.00#Captive nuts#31.16.17.00.00
+unspsc7#31.16.17.07.00#Castle nuts#31.16.17.00.00
+unspsc7#31.16.17.08.00#Channel nuts#31.16.17.00.00
+unspsc7#31.16.17.09.00#Clamping nuts#31.16.17.00.00
+unspsc7#31.16.17.10.00#Expansion nuts#31.16.17.00.00
+unspsc7#31.16.17.11.00#Eye nuts#31.16.17.00.00
+unspsc7#31.16.17.12.00#Flange nuts#31.16.17.00.00
+unspsc7#31.16.17.13.00#Hose nuts#31.16.17.00.00
+unspsc7#31.16.17.14.00#Insert nuts#31.16.17.00.00
+unspsc7#31.16.17.15.00#Self locking nuts#31.16.17.00.00
+unspsc7#31.16.17.16.00#Locknuts#31.16.17.00.00
+unspsc7#31.16.17.17.00#Wing nuts#31.16.17.00.00
+unspsc7#31.16.17.18.00#Toggle nuts#31.16.17.00.00
+unspsc7#31.16.17.19.00#Swivel nuts#31.16.17.00.00
+unspsc7#31.16.17.20.00#Stop nuts#31.16.17.00.00
+unspsc7#31.16.17.21.00#Spring nuts#31.16.17.00.00
+unspsc7#31.16.17.22.00#Union nuts#31.16.17.00.00
+unspsc7#31.16.17.23.00#Nutplate nuts#31.16.17.00.00
+unspsc7#31.16.17.24.00#Press nuts#31.16.17.00.00
+unspsc7#31.16.17.25.00#Clip nuts#31.16.17.00.00
+unspsc7#31.16.17.26.00#Dome nuts#31.16.17.00.00
+unspsc7#31.16.17.27.00#Hexagonal nuts#31.16.17.00.00
+unspsc7#31.16.17.28.00#Coupling nuts#31.16.17.00.00
+unspsc7#31.16.17.29.00#Knurled nuts#31.16.17.00.00
+unspsc7#31.16.18.00.00#Washers#31.16.00.00.00
+unspsc7#31.16.18.01.00#Locking washers#31.16.18.00.00
+unspsc7#31.16.18.02.00#Bevel washers#31.16.18.00.00
+unspsc7#31.16.18.03.00#Binding washers#31.16.18.00.00
+unspsc7#31.16.18.04.00#Curved washers#31.16.18.00.00
+unspsc7#31.16.18.05.00#Electrical insulating washers#31.16.18.00.00
+unspsc7#31.16.18.06.00#Finishing washers#31.16.18.00.00
+unspsc7#31.16.18.07.00#Flat washers#31.16.18.00.00
+unspsc7#31.16.18.08.00#Open washers#31.16.18.00.00
+unspsc7#31.16.18.09.00#Reducing washers#31.16.18.00.00
+unspsc7#31.16.18.10.00#Shim washers#31.16.18.00.00
+unspsc7#31.16.18.11.00#Spring washers#31.16.18.00.00
+unspsc7#31.16.18.12.00#Square washers#31.16.18.00.00
+unspsc7#31.16.18.13.00#Swivel washers#31.16.18.00.00
+unspsc7#31.16.18.14.00#Thrust washers#31.16.18.00.00
+unspsc7#31.16.18.15.00#Shoulder washers#31.16.18.00.00
+unspsc7#31.16.18.16.00#Spacers or standoffs#31.16.18.00.00
+unspsc7#31.16.18.17.00#Conical washers#31.16.18.00.00
+unspsc7#31.16.19.00.00#Springs#31.16.00.00.00
+unspsc7#31.16.19.01.00#Helical springs#31.16.19.00.00
+unspsc7#31.16.19.02.00#Leaf springs#31.16.19.00.00
+unspsc7#31.16.19.03.00#Spiral springs#31.16.19.00.00
+unspsc7#31.16.19.04.00#Compression springs#31.16.19.00.00
+unspsc7#31.16.19.05.00#Die springs#31.16.19.00.00
+unspsc7#31.16.19.06.00#Disk springs#31.16.19.00.00
+unspsc7#31.16.19.07.00#Extension springs#31.16.19.00.00
+unspsc7#31.16.19.08.00#Torsion springs#31.16.19.00.00
+unspsc7#31.16.20.00.00#Nails#31.16.00.00.00
+unspsc7#31.16.20.01.00#Brads#31.16.20.00.00
+unspsc7#31.16.20.02.00#Cap nails#31.16.20.00.00
+unspsc7#31.16.20.03.00#Finishing nails#31.16.20.00.00
+unspsc7#31.16.20.04.00#Masonry nails#31.16.20.00.00
+unspsc7#31.16.20.05.00#Roofing nails#31.16.20.00.00
+unspsc7#31.16.20.06.00#Wire nails#31.16.20.00.00
+unspsc7#31.16.20.07.00#Upholstery nails#31.16.20.00.00
+unspsc7#31.16.20.08.00#Drive pins#31.16.20.00.00
+unspsc7#31.16.21.00.00#Anchors#31.16.00.00.00
+unspsc7#31.16.21.01.00#Concrete anchors#31.16.21.00.00
+unspsc7#31.16.21.02.00#Wedge anchors#31.16.21.00.00
+unspsc7#31.16.21.03.00#Wall anchors#31.16.21.00.00
+unspsc7#31.16.21.04.00#Screw anchors#31.16.21.00.00
+unspsc7#31.16.21.05.00#Resin anchors#31.16.21.00.00
+unspsc7#31.16.21.06.00#Pipe anchors#31.16.21.00.00
+unspsc7#31.16.21.07.00#Nail expansion anchors#31.16.21.00.00
+unspsc7#31.16.21.08.00#Tie down anchors#31.16.21.00.00
+unspsc7#31.16.22.00.00#Rivets#31.16.00.00.00
+unspsc7#31.16.22.01.00#Blind rivets#31.16.22.00.00
+unspsc7#31.16.22.02.00#Crownhead rivets#31.16.22.00.00
+unspsc7#31.16.22.03.00#Flat head rivets#31.16.22.00.00
+unspsc7#31.16.22.04.00#Full rivets#31.16.22.00.00
+unspsc7#31.16.22.05.00#Ratchet rivets#31.16.22.00.00
+unspsc7#31.16.22.06.00#Tinners rivets#31.16.22.00.00
+unspsc7#31.16.22.07.00#Compression rivets#31.16.22.00.00
+unspsc7#31.16.22.08.00#Coopers rivets#31.16.22.00.00
+unspsc7#31.16.22.09.00#Button head rivets#31.16.22.00.00
+unspsc7#31.16.23.00.00#Mounting hardware#31.16.00.00.00
+unspsc7#31.16.23.01.00#Mounting profiles#31.16.23.00.00
+unspsc7#31.16.23.03.00#Mounting bars#31.16.23.00.00
+unspsc7#31.16.23.04.00#Mounting strips#31.16.23.00.00
+unspsc7#31.16.23.05.00#Mounting clips#31.16.23.00.00
+unspsc7#31.16.23.06.00#Mounting hangers#31.16.23.00.00
+unspsc7#31.16.23.07.00#Mounting plates#31.16.23.00.00
+unspsc7#31.16.23.08.00#Mounting panels#31.16.23.00.00
+unspsc7#31.16.23.09.00#Mounting racks#31.16.23.00.00
+unspsc7#31.16.23.10.00#Mounting straps#31.16.23.00.00
+unspsc7#31.16.23.11.00#Wall bushings#31.16.23.00.00
+unspsc7#31.16.24.00.00#Miscellaneous fasteners#31.16.00.00.00
+unspsc7#31.16.24.01.00#Grommets#31.16.24.00.00
+unspsc7#31.16.24.02.00#Hasps#31.16.24.00.00
+unspsc7#31.16.24.03.00#Hinges#31.16.24.00.00
+unspsc7#31.16.24.04.00#Hardware staples#31.16.24.00.00
+unspsc7#31.16.24.05.00#Turnbuckles#31.16.24.00.00
+unspsc7#31.16.24.06.00#Strapping or banding buckles#31.16.24.00.00
+unspsc7#31.16.24.07.00#Latch#31.16.24.00.00
+unspsc7#31.16.24.08.00#Cotter pins#31.16.24.00.00
+unspsc7#31.16.25.00.00#Brackets and braces#31.16.00.00.00
+unspsc7#31.16.25.01.00#Shelf brackets#31.16.25.00.00
+unspsc7#31.16.25.02.00#Angle brackets#31.16.25.00.00
+unspsc7#31.16.25.03.00#Braces#31.16.25.00.00
+unspsc7#31.16.25.04.00#Electrical fixture brackets#31.16.25.00.00
+unspsc7#31.16.25.05.00#Magnetic mounting brackets#31.16.25.00.00
+unspsc7#31.16.26.00.00#Hooks#31.16.00.00.00
+unspsc7#31.16.26.01.00#Swivel hooks#31.16.26.00.00
+unspsc7#31.16.26.02.00#Spring hooks#31.16.26.00.00
+unspsc7#31.16.26.03.00#S hooks#31.16.26.00.00
+unspsc7#31.16.26.04.00#Safety hooks#31.16.26.00.00
+unspsc7#31.16.26.05.00#Lifting hooks#31.16.26.00.00
+unspsc7#31.16.26.06.00#J hooks#31.16.26.00.00
+unspsc7#31.16.26.07.00#Guy wire hooks#31.16.26.00.00
+unspsc7#31.16.26.08.00#Grab hooks#31.16.26.00.00
+unspsc7#31.16.26.09.00#Screw hooks#31.16.26.00.00
+unspsc7#31.16.26.10.00#Peg board hooks#31.16.26.00.00
+unspsc7#31.16.26.11.00#Slip hooks#31.16.26.00.00
+unspsc7#31.16.27.00.00#Rolling hardware#31.16.00.00.00
+unspsc7#31.16.27.01.00#Casters#31.16.27.00.00
+unspsc7#31.16.27.02.00#Wheels#31.16.27.00.00
+unspsc7#31.16.27.03.00#Sliders#31.16.27.00.00
+unspsc7#31.16.28.00.00#Miscellaneous hardware#31.16.00.00.00
+unspsc7#31.16.28.01.00#Handles or knobs#31.16.28.00.00
+unspsc7#31.16.28.02.00#Inserts#31.16.28.00.00
+unspsc7#31.16.28.03.00#Shackles#31.16.28.00.00
+unspsc7#31.16.28.04.00#Door stops#31.16.28.00.00
+unspsc7#31.16.28.05.00#Cable thimble#31.16.28.00.00
+unspsc7#31.16.28.06.00#Screw covers#31.16.28.00.00
+unspsc7#31.16.28.07.00#Levers#31.16.28.00.00
+unspsc7#31.16.28.08.00#Panic bars#31.16.28.00.00
+unspsc7#31.16.29.00.00#Clamps#31.16.00.00.00
+unspsc7#31.16.29.01.00#Ear clamps#31.16.29.00.00
+unspsc7#31.16.29.02.00#Spring clamps#31.16.29.00.00
+unspsc7#31.16.29.03.00#Screw clamps#31.16.29.00.00
+unspsc7#31.16.29.04.00#Wire rope clamps#31.16.29.00.00
+unspsc7#31.16.29.05.00#Beam clamps#31.16.29.00.00
+unspsc7#31.16.30.00.00#Couplings#31.16.00.00.00
+unspsc7#31.16.30.01.00#Elastomeric couplings#31.16.30.00.00
+unspsc7#31.16.30.02.00#Gear couplings#31.16.30.00.00
+unspsc7#31.16.30.03.00#Metallic couplings#31.16.30.00.00
+unspsc7#31.16.30.04.00#Miniature couplings#31.16.30.00.00
+unspsc7#31.16.31.00.00#Connectors#31.16.00.00.00
+unspsc7#31.16.31.01.00#Quick disconnects#31.16.31.00.00
+unspsc7#31.16.31.02.00#Ferrule#31.16.31.00.00
+unspsc7#31.16.31.03.00#Trailer Connector#31.16.31.00.00
+unspsc7#31.16.32.00.00#Retaining hardware#31.16.00.00.00
+unspsc7#31.16.32.01.00#Spring pins#31.16.32.00.00
+unspsc7#31.16.32.02.00#Retaining rings#31.16.32.00.00
+unspsc7#31.16.32.03.00#Dowel pin#31.16.32.00.00
+unspsc7#31.16.32.04.00#Cotter pin#31.16.32.00.00
+unspsc7#31.16.32.05.00#Taper pins#31.16.32.00.00
+unspsc7#31.16.32.06.00#Grooved pins#31.16.32.00.00
+unspsc7#31.16.32.07.00#Shaft or woodruff keys#31.16.32.00.00
+unspsc7#31.16.32.08.00#Keystock#31.16.32.00.00
+unspsc7#31.16.32.09.00#Bearing holders or retainers#31.16.32.00.00
+unspsc7#31.16.32.10.00#Retaining collars#31.16.32.00.00
+unspsc7#31.16.33.00.00#Spacer#31.16.00.00.00
+unspsc7#31.16.33.01.00#Shim#31.16.33.00.00
+unspsc7#31.17.00.00.00#Bearings and bushings and wheels and gears#31.00.00.00.00
+unspsc7#31.17.15.00.00#Bearings#31.17.00.00.00
+unspsc7#31.17.15.01.00#Flanged bearings#31.17.15.00.00
+unspsc7#31.17.15.02.00#Radial bearings#31.17.15.00.00
+unspsc7#31.17.15.03.00#Wheel bearings#31.17.15.00.00
+unspsc7#31.17.15.04.00#Ball bearings#31.17.15.00.00
+unspsc7#31.17.15.05.00#Roller bearings#31.17.15.00.00
+unspsc7#31.17.15.06.00#Linear bearings#31.17.15.00.00
+unspsc7#31.17.15.07.00#Thrust bearings#31.17.15.00.00
+unspsc7#31.17.15.08.00#Rod end bearings#31.17.15.00.00
+unspsc7#31.17.15.09.00#Sleeve bearings#31.17.15.00.00
+unspsc7#31.17.15.10.00#Spherical bearings#31.17.15.00.00
+unspsc7#31.17.15.11.00#Pillow block bearings#31.17.15.00.00
+unspsc7#31.17.15.12.00#Needle bearings#31.17.15.00.00
+unspsc7#31.17.15.13.00#Hanger bearings#31.17.15.00.00
+unspsc7#31.17.15.14.00#Door closers#31.17.15.00.00
+unspsc7#31.17.15.15.00#Plain bearings#31.17.15.00.00
+unspsc7#31.17.15.16.00#Tapered bearings#31.17.15.00.00
+unspsc7#31.17.15.17.00#Needle bearings#31.17.15.00.00
+unspsc7#31.17.15.18.00#Bearing Cage#31.17.15.00.00
+unspsc7#31.17.15.19.00#Bearing blocks or housings#31.17.15.00.00
+unspsc7#31.17.15.20.00#Bearing journals#31.17.15.00.00
+unspsc7#31.17.15.21.00#Bearing rollers or balls#31.17.15.00.00
+unspsc7#31.17.16.00.00#Bushings#31.17.00.00.00
+unspsc7#31.17.16.01.00#Transformer bushings#31.17.16.00.00
+unspsc7#31.17.16.02.00#Wall bushings#31.17.16.00.00
+unspsc7#31.17.16.03.00#Drill bushings#31.17.16.00.00
+unspsc7#31.17.16.04.00#Pilot bushings#31.17.16.00.00
+unspsc7#31.17.16.05.00#Shaft bushings#31.17.16.00.00
+unspsc7#31.17.17.00.00#Gears#31.17.00.00.00
+unspsc7#31.17.17.01.00#Gear boxes#31.17.17.00.00
+unspsc7#31.17.17.02.00#Rack or pinion gears#31.17.17.00.00
+unspsc7#31.17.17.03.00#Differential gears#31.17.17.00.00
+unspsc7#31.17.17.04.00#Friction gears#31.17.17.00.00
+unspsc7#31.17.17.05.00#Helical gears#31.17.17.00.00
+unspsc7#31.17.17.06.00#Conical gears#31.17.17.00.00
+unspsc7#31.17.17.07.00#Spur gears#31.17.17.00.00
+unspsc7#31.17.17.08.00#Bevel gears#31.17.17.00.00
+unspsc7#31.17.17.09.00#Rack gears#31.17.17.00.00
+unspsc7#31.17.17.10.00#Pinion gears#31.17.17.00.00
+unspsc7#31.17.17.11.00#Ring gears#31.17.17.00.00
+unspsc7#31.17.17.12.00#Worm gears#31.17.17.00.00
+unspsc7#31.17.17.13.00#Side Gears#31.17.17.00.00
+unspsc7#31.17.17.14.00#Helical gears#31.17.17.00.00
+unspsc7#31.17.18.00.00#Industrial wheels#31.17.00.00.00
+unspsc7#31.17.18.01.00#Cog wheels#31.17.18.00.00
+unspsc7#31.17.18.02.00#Impeller wheels#31.17.18.00.00
+unspsc7#31.17.18.03.00#Flywheels#31.17.18.00.00
+unspsc7#31.17.18.04.00#Sheaves#31.17.18.00.00
+unspsc7#31.17.18.05.00#Wheel brushes#31.17.18.00.00
+unspsc7#31.17.19.00.00#Sprockets#31.17.00.00.00
+unspsc7#31.17.19.01.00#Roller chain sprockets#31.17.19.00.00
+unspsc7#31.17.19.02.00#Split sprockets#31.17.19.00.00
+unspsc7#31.18.00.00.00#Gaskets and seals#31.00.00.00.00
+unspsc7#31.18.15.00.00#Gaskets#31.18.00.00.00
+unspsc7#31.18.15.01.00#Plastic gaskets#31.18.15.00.00
+unspsc7#31.18.15.02.00#Rubber gaskets#31.18.15.00.00
+unspsc7#31.18.15.03.00#Metal gaskets#31.18.15.00.00
+unspsc7#31.18.15.04.00#Textile gaskets#31.18.15.00.00
+unspsc7#31.18.15.05.00#Cork gaskets#31.18.15.00.00
+unspsc7#31.18.15.06.00#O ring gaskets#31.18.15.00.00
+unspsc7#31.18.15.07.00#Electromagnetic interference (EMI) gaskets#31.18.15.00.00
+unspsc7#31.18.15.08.00#Bolted gaskets#31.18.15.00.00
+unspsc7#31.18.15.09.00#Gasket kits#31.18.15.00.00
+unspsc7#31.18.15.10.00#Silicone gaskets#31.18.15.00.00
+unspsc7#31.18.15.11.00#Liquid gaskets#31.18.15.00.00
+unspsc7#31.18.16.00.00#Seals#31.18.00.00.00
+unspsc7#31.18.16.01.00#Plastic seals#31.18.16.00.00
+unspsc7#31.18.16.02.00#Rubber seals#31.18.16.00.00
+unspsc7#31.18.16.03.00#Metallic seals#31.18.16.00.00
+unspsc7#31.18.16.04.00#Seal mechanical#31.18.16.00.00
+unspsc7#31.18.17.00.00#Packings and glands#31.18.00.00.00
+unspsc7#31.18.17.01.00#Packings#31.18.17.00.00
+unspsc7#31.18.17.02.00#Glands#31.18.17.00.00
+unspsc7#31.19.00.00.00#Grinding and polishing and smoothing materials#31.00.00.00.00
+unspsc7#31.19.15.00.00#Abrasives and abrasive media#31.19.00.00.00
+unspsc7#31.19.15.01.00#Abrasive papers#31.19.15.00.00
+unspsc7#31.19.15.02.00#Buffs#31.19.15.00.00
+unspsc7#31.19.15.03.00#Abrasive wheels#31.19.15.00.00
+unspsc7#31.19.15.04.00#Abrasive cloth#31.19.15.00.00
+unspsc7#31.19.15.05.00#Abrasive pads#31.19.15.00.00
+unspsc7#31.19.15.06.00#Abrasive discs#31.19.15.00.00
+unspsc7#31.19.15.07.00#Abrasive belts#31.19.15.00.00
+unspsc7#31.19.15.08.00#Bort#31.19.15.00.00
+unspsc7#31.19.15.09.00#Abrasive polishers#31.19.15.00.00
+unspsc7#31.19.15.10.00#Abrasive stones#31.19.15.00.00
+unspsc7#31.19.15.11.00#Steel wool#31.19.15.00.00
+unspsc7#31.19.15.12.00#Shot blast#31.19.15.00.00
+unspsc7#31.19.15.13.00#Glass bead#31.19.15.00.00
+unspsc7#31.19.15.14.00#Tumble media#31.19.15.00.00
+unspsc7#31.19.15.15.00#Abrasive mesh#31.19.15.00.00
+unspsc7#31.19.15.16.00#Abrasive cartridge rolls#31.19.15.00.00
+unspsc7#31.19.15.17.00#Emery boards#31.19.15.00.00
+unspsc7#31.19.16.00.00#Abrasive wheels#31.19.00.00.00
+unspsc7#31.19.16.01.00#Abrasive cubic borozon nitrate wheels#31.19.16.00.00
+unspsc7#31.19.16.02.00#Abrasive diamond wheels#31.19.16.00.00
+unspsc7#31.19.16.03.00#Tungsten carbide abrasive wheels#31.19.16.00.00
+unspsc7#31.20.00.00.00#Adhesives and sealants#31.00.00.00.00
+unspsc7#31.20.15.00.00#Tape#31.20.00.00.00
+unspsc7#31.20.15.01.00#Duct tape#31.20.15.00.00
+unspsc7#31.20.15.02.00#Electrical insulating tape#31.20.15.00.00
+unspsc7#31.20.15.03.00#Masking tape#31.20.15.00.00
+unspsc7#31.20.15.04.00#Carpet tape#31.20.15.00.00
+unspsc7#31.20.15.05.00#Double sided tape#31.20.15.00.00
+unspsc7#31.20.15.06.00#Bismalemide tape#31.20.15.00.00
+unspsc7#31.20.15.07.00#Fiberglass tape#31.20.15.00.00
+unspsc7#31.20.15.08.00#Graphite tape#31.20.15.00.00
+unspsc7#31.20.15.09.00#Nylon tape#31.20.15.00.00
+unspsc7#31.20.15.10.00#Resin impregnated tape#31.20.15.00.00
+unspsc7#31.20.15.11.00#Wire mesh tape#31.20.15.00.00
+unspsc7#31.20.15.12.00#Transparent tape#31.20.15.00.00
+unspsc7#31.20.15.13.00#Non skid safety tapes#31.20.15.00.00
+unspsc7#31.20.15.14.00#Polytetrafluoroethylene (PTFE) thread sealing tape#31.20.15.00.00
+unspsc7#31.20.15.15.00#Paper tapes#31.20.15.00.00
+unspsc7#31.20.15.16.00#Reflective tape#31.20.15.00.00
+unspsc7#31.20.15.17.00#Packaging tape#31.20.15.00.00
+unspsc7#31.20.15.18.00#Electrically conductive tape#31.20.15.00.00
+unspsc7#31.20.15.19.00#Pipe or hose repair tape#31.20.15.00.00
+unspsc7#31.20.15.20.00#Aisle marking tape#31.20.15.00.00
+unspsc7#31.20.15.21.00#Foil tape#31.20.15.00.00
+unspsc7#31.20.15.22.00#Adhesive transfer tape#31.20.15.00.00
+unspsc7#31.20.15.23.00#Cloth tape#31.20.15.00.00
+unspsc7#31.20.15.24.00#Color coding tape#31.20.15.00.00
+unspsc7#31.20.15.25.00#Vinyl tape#31.20.15.00.00
+unspsc7#31.20.15.26.00#Magnetic tape#31.20.15.00.00
+unspsc7#31.20.16.00.00#Other adhesives and sealants#31.20.00.00.00
+unspsc7#31.20.16.01.00#Chemical adhesives#31.20.16.00.00
+unspsc7#31.20.16.02.00#Pastes#31.20.16.00.00
+unspsc7#31.20.16.03.00#Gums#31.20.16.00.00
+unspsc7#31.20.16.04.00#Rubber cements#31.20.16.00.00
+unspsc7#31.20.16.05.00#Putties#31.20.16.00.00
+unspsc7#31.20.16.06.00#Caulks#31.20.16.00.00
+unspsc7#31.20.16.07.00#Epoxy bond#31.20.16.00.00
+unspsc7#31.20.16.08.00#Foam adhesives#31.20.16.00.00
+unspsc7#31.20.16.09.00#Hot melt adhesives#31.20.16.00.00
+unspsc7#31.20.16.10.00#Glues#31.20.16.00.00
+unspsc7#31.20.16.11.00#Film adhesives#31.20.16.00.00
+unspsc7#31.20.16.12.00#Thread sealants#31.20.16.00.00
+unspsc7#31.20.16.13.00#Re usable adhesive#31.20.16.00.00
+unspsc7#31.20.16.14.00#Sealing waxes#31.20.16.00.00
+unspsc7#31.21.00.00.00#Paints and primers and finishes#31.00.00.00.00
+unspsc7#31.21.15.00.00#Paints and primers#31.21.00.00.00
+unspsc7#31.21.15.01.00#Enamel paints#31.21.15.00.00
+unspsc7#31.21.15.02.00#Water based paints#31.21.15.00.00
+unspsc7#31.21.15.03.00#Pigment paints#31.21.15.00.00
+unspsc7#31.21.15.04.00#Coating paints#31.21.15.00.00
+unspsc7#31.21.15.05.00#Oil based paints#31.21.15.00.00
+unspsc7#31.21.15.06.00#Latex paints#31.21.15.00.00
+unspsc7#31.21.15.07.00#Spray paints#31.21.15.00.00
+unspsc7#31.21.15.08.00#Acrylic paints#31.21.15.00.00
+unspsc7#31.21.15.09.00#Enamel primers#31.21.15.00.00
+unspsc7#31.21.15.10.00#Polyurethane primers#31.21.15.00.00
+unspsc7#31.21.15.11.00#Urethane primers#31.21.15.00.00
+unspsc7#31.21.15.12.00#Latex primers#31.21.15.00.00
+unspsc7#31.21.16.00.00#Paint additives#31.21.00.00.00
+unspsc7#31.21.16.01.00#Calcimines#31.21.16.00.00
+unspsc7#31.21.16.02.00#Texturing materials#31.21.16.00.00
+unspsc7#31.21.16.03.00#Paint driers#31.21.16.00.00
+unspsc7#31.21.16.04.00#Paint extenders#31.21.16.00.00
+unspsc7#31.21.16.05.00#Anti slip agents#31.21.16.00.00
+unspsc7#31.21.16.06.00#Leveling agents#31.21.16.00.00
+unspsc7#31.21.16.07.00#Anti foaming agents#31.21.16.00.00
+unspsc7#31.21.17.00.00#Miscellaneous finishes#31.21.00.00.00
+unspsc7#31.21.17.01.00#Glazes#31.21.17.00.00
+unspsc7#31.21.17.02.00#Lusters#31.21.17.00.00
+unspsc7#31.21.17.03.00#Lacquers#31.21.17.00.00
+unspsc7#31.21.17.04.00#Sealers#31.21.17.00.00
+unspsc7#31.21.17.05.00#Shellacs#31.21.17.00.00
+unspsc7#31.21.17.06.00#Stains#31.21.17.00.00
+unspsc7#31.21.17.07.00#Varnishes#31.21.17.00.00
+unspsc7#31.21.17.08.00#Powder coat#31.21.17.00.00
+unspsc7#31.21.18.00.00#Paint solvents and thinners#31.21.00.00.00
+unspsc7#31.21.18.01.00#Paint or varnish removers#31.21.18.00.00
+unspsc7#31.21.18.02.00#Paint or varnish strippers#31.21.18.00.00
+unspsc7#31.21.18.03.00#Paint or varnish thinners#31.21.18.00.00
+unspsc7#31.21.19.00.00#Paint applicators and painting accessories#31.21.00.00.00
+unspsc7#31.21.19.01.00#Drop cloths#31.21.19.00.00
+unspsc7#31.21.19.02.00#Edging tools#31.21.19.00.00
+unspsc7#31.21.19.03.00#Masking equipment#31.21.19.00.00
+unspsc7#31.21.19.04.00#Paint brushes#31.21.19.00.00
+unspsc7#31.21.19.05.00#Paint mixers#31.21.19.00.00
+unspsc7#31.21.19.06.00#Paint rollers#31.21.19.00.00
+unspsc7#31.21.19.08.00#Paint sprayers#31.21.19.00.00
+unspsc7#31.21.19.09.00#Paint trays#31.21.19.00.00
+unspsc7#31.21.19.10.00#Paint mitts#31.21.19.00.00
+unspsc7#31.21.19.12.00#Telescoping poles#31.21.19.00.00
+unspsc7#31.21.19.13.00#Paint nozzles#31.21.19.00.00
+unspsc7#31.21.19.14.00#Air brushes#31.21.19.00.00
+unspsc7#31.21.19.15.00#Paint strainers#31.21.19.00.00
+unspsc7#31.22.00.00.00#Dyeing and tanning extracts#31.00.00.00.00
+unspsc7#31.22.15.00.00#Dyeing products#31.22.00.00.00
+unspsc7#31.22.15.01.00#Inorganic dyes#31.22.15.00.00
+unspsc7#31.22.15.02.00#Organic dyes of animal origin#31.22.15.00.00
+unspsc7#31.22.15.03.00#Organic dyes of vegetable origin#31.22.15.00.00
+unspsc7#31.22.16.00.00#Tanning products#31.22.00.00.00
+unspsc7#31.22.16.01.00#Inorganic tanning extracts#31.22.16.00.00
+unspsc7#31.22.16.02.00#Organic tanning extracts of animal origin#31.22.16.00.00
+unspsc7#31.22.16.03.00#Organic tanning extracts of vegetable origin#31.22.16.00.00
+unspsc7#31.23.00.00.00#Machined raw stock#31.00.00.00.00
+unspsc7#31.23.11.00.00#Machined bar stock#31.23.00.00.00
+unspsc7#31.23.11.01.00#Aluminum machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.02.00#Beryllium machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.03.00#Brass machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.04.00#Bronze machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.05.00#Copper machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.06.00#Iron machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.07.00#Lead machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.08.00#Magnesium machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.09.00#Precious metal machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.10.00#Stainless steel machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.11.00#Tin machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.12.00#Titanium machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.13.00#Zinc machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.14.00#Non ferrous alloy machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.15.00#Ferrous alloy machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.16.00#Steel machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.17.00#Composite machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.18.00#Nickel alloy machined bar stock#31.23.11.00.00
+unspsc7#31.23.11.19.00#Non metallic machined bar stock#31.23.11.00.00
+unspsc7#31.23.12.00.00#Machined plate stock#31.23.00.00.00
+unspsc7#31.23.12.01.00#Aluminum machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.02.00#Beryllium machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.03.00#Brass machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.04.00#Bronze machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.05.00#Copper machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.06.00#Iron machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.07.00#Lead machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.08.00#Magnesium machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.09.00#Precious metal machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.10.00#Stainless steel machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.11.00#Tin machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.12.00#Titanium machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.13.00#Zinc machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.14.00#Non ferrous alloy machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.15.00#Ferrous alloy machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.16.00#Steel machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.17.00#Composite machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.18.00#Nickel alloy machined plate stock#31.23.12.00.00
+unspsc7#31.23.12.19.00#Non metallic machined plate stock#31.23.12.00.00
+unspsc7#31.23.13.00.00#Shim stock#31.23.00.00.00
+unspsc7#31.23.13.01.00#Brass shim stock#31.23.13.00.00
+unspsc7#31.23.13.02.00#Steel shim stock#31.23.13.00.00
+unspsc7#31.23.13.03.00#Stainless steel shim stock#31.23.13.00.00
+unspsc7#31.23.13.04.00#Aluminum shim stock#31.23.13.00.00
+unspsc7#31.23.13.05.00#Copper shim stock#31.23.13.00.00
+unspsc7#31.24.00.00.00#Industrial optics#31.00.00.00.00
+unspsc7#31.24.15.00.00#Lenses and prisms#31.24.00.00.00
+unspsc7#31.24.15.01.00#Lenses#31.24.15.00.00
+unspsc7#31.24.15.02.00#Prisms#31.24.15.00.00
+unspsc7#31.24.16.00.00#Optical blanks#31.24.00.00.00
+unspsc7#31.24.16.01.00#Filter blanks#31.24.16.00.00
+unspsc7#31.24.16.02.00#Glass disks#31.24.16.00.00
+unspsc7#31.24.16.03.00#Molded glass#31.24.16.00.00
+unspsc7#31.24.16.04.00#Prism blanks#31.24.16.00.00
+unspsc7#31.24.16.05.00#Silicon blanks#31.24.16.00.00
+unspsc7#31.24.16.06.00#Germanium blanks#31.24.16.00.00
+unspsc7#31.24.16.07.00#Round bar stock#31.24.16.00.00
+unspsc7#31.24.16.08.00#Square bar stock#31.24.16.00.00
+unspsc7#31.24.16.09.00#Witness sample blanks#31.24.16.00.00
+unspsc7#31.24.16.10.00#Infrared optical material blanks#31.24.16.00.00
+unspsc7#31.24.17.00.00#Mirrors#31.24.00.00.00
+unspsc7#31.24.17.01.00#Diamond turned mirrors#31.24.17.00.00
+unspsc7#31.24.17.02.00#Metallic mirrors#31.24.17.00.00
+unspsc7#31.24.17.03.00#Parabolic mirrors#31.24.17.00.00
+unspsc7#31.24.17.04.00#Uncoated mirrors#31.24.17.00.00
+unspsc7#31.24.18.00.00#Optical filters#31.24.00.00.00
+unspsc7#31.24.18.01.00#Broad band filters#31.24.18.00.00
+unspsc7#31.24.18.02.00#Gradient filters#31.24.18.00.00
+unspsc7#31.24.18.03.00#Infrared filters#31.24.18.00.00
+unspsc7#31.24.18.04.00#Laser filters#31.24.18.00.00
+unspsc7#31.24.18.05.00#Narrow band filters#31.24.18.00.00
+unspsc7#31.24.18.06.00#Pelicle filters#31.24.18.00.00
+unspsc7#31.24.18.07.00#Visual filters#31.24.18.00.00
+unspsc7#31.24.19.00.00#Optical domes#31.24.00.00.00
+unspsc7#31.24.19.01.00#Specialty domes#31.24.19.00.00
+unspsc7#31.24.19.02.00#Diamond turned domes#31.24.19.00.00
+unspsc7#31.24.19.03.00#Metallic domes#31.24.19.00.00
+unspsc7#31.24.19.04.00#Molded glass domes#31.24.19.00.00
+unspsc7#31.24.19.05.00#Molded polycarbonate domes#31.24.19.00.00
+unspsc7#31.24.19.06.00#Replicated domes#31.24.19.00.00
+unspsc7#31.24.19.07.00#Shaped domes#31.24.19.00.00
+unspsc7#31.24.19.08.00#Frangible domes#31.24.19.00.00
+unspsc7#31.24.20.00.00#Lens and laser windows#31.24.00.00.00
+unspsc7#31.24.20.01.00#External lens or laser windows#31.24.20.00.00
+unspsc7#31.24.20.02.00#Infrared lens or laser windows#31.24.20.00.00
+unspsc7#31.24.20.03.00#Visual lens or laser windows#31.24.20.00.00
+unspsc7#31.24.21.00.00#Optical device accessories#31.24.00.00.00
+unspsc7#31.24.21.01.00#Prism holders#31.24.21.00.00
+unspsc7#31.24.21.02.00#Lens holders#31.24.21.00.00
+unspsc7#31.24.21.03.00#Optical slits#31.24.21.00.00
+unspsc7#31.25.00.00.00#Pneumatic and hydraulic and electric control systems#31.00.00.00.00
+unspsc7#31.25.15.00.00#Actuators#31.25.00.00.00
+unspsc7#31.25.15.01.00#Electric actuators#31.25.15.00.00
+unspsc7#31.25.15.02.00#Electronic actuators#31.25.15.00.00
+unspsc7#31.25.15.03.00#Hydraulic actuators#31.25.15.00.00
+unspsc7#31.25.15.04.00#Pneumatic actuators#31.25.15.00.00
+unspsc7#31.25.15.05.00#Valve actuators#31.25.15.00.00
+unspsc7#31.25.15.06.00#Gear actuators#31.25.15.00.00
+unspsc7#31.25.15.07.00#Rotary actuators#31.25.15.00.00
+unspsc7#31.25.15.08.00#Photoelectric actuators#31.25.15.00.00
+unspsc7#31.25.15.09.00#Electromagnetic actuators#31.25.15.00.00
+unspsc7#31.25.15.10.00#Solenoids#31.25.15.00.00
+unspsc7#31.25.15.11.00#Linear actuators#31.25.15.00.00
+unspsc7#31.26.00.00.00#Housings and cabinets and casings#31.00.00.00.00
+unspsc7#31.26.15.00.00#Housings and cabinets#31.26.00.00.00
+unspsc7#31.26.15.01.00#Plastic housings or cabinets#31.26.15.00.00
+unspsc7#31.26.15.02.00#Metal housings or cabinets#31.26.15.00.00
+unspsc7#31.26.15.03.00#Steel housings or cabinets#31.26.15.00.00
+unspsc7#31.26.15.04.00#Gear boxes or housings#31.26.15.00.00
+unspsc7#31.26.16.00.00#Shells and casings#31.26.00.00.00
+unspsc7#31.26.16.01.00#Plastic shells or casings#31.26.16.00.00
+unspsc7#31.26.16.02.00#Metal shells or casings#31.26.16.00.00
+unspsc7#31.26.16.03.00#Steel shells or casings#31.26.16.00.00
+unspsc7#31.27.00.00.00#Machine made parts#31.00.00.00.00
+unspsc7#31.27.15.00.00#General machine made parts#31.27.00.00.00
+unspsc7#31.27.15.01.00#Metal general machine made parts#31.27.15.00.00
+unspsc7#31.27.15.02.00#Non metal general machine made parts#31.27.15.00.00
+unspsc7#31.27.16.00.00#Screw machine made parts#31.27.00.00.00
+unspsc7#31.27.16.01.00#Metal screw machine made parts#31.27.16.00.00
+unspsc7#31.27.16.02.00#Non metal screw machine made parts#31.27.16.00.00
+unspsc7#31.28.00.00.00#Stampings and sheet components#31.00.00.00.00
+unspsc7#31.28.15.00.00#Stamped components#31.28.00.00.00
+unspsc7#31.28.15.01.00#Stamped metal components#31.28.15.00.00
+unspsc7#31.28.15.02.00#Aluminum stamped components#31.28.15.00.00
+unspsc7#31.28.15.03.00#Ferrous alloy stamped components#31.28.15.00.00
+unspsc7#31.28.15.04.00#Iron stamped components#31.28.15.00.00
+unspsc7#31.28.15.05.00#Non ferrous alloy stamped components#31.28.15.00.00
+unspsc7#31.28.15.06.00#Stainless steel stamped components#31.28.15.00.00
+unspsc7#31.28.15.07.00#Carbon Steel stamped components#31.28.15.00.00
+unspsc7#31.28.15.08.00#Magnesium stamped components#31.28.15.00.00
+unspsc7#31.28.15.09.00#Zinc stamped components#31.28.15.00.00
+unspsc7#31.28.15.10.00#Tin stamped components#31.28.15.00.00
+unspsc7#31.28.15.11.00#Titanium stamped components#31.28.15.00.00
+unspsc7#31.28.15.12.00#Beryllium stamped components#31.28.15.00.00
+unspsc7#31.28.15.13.00#Precious metal stamped components#31.28.15.00.00
+unspsc7#31.28.15.14.00#Copper stamped components#31.28.15.00.00
+unspsc7#31.28.15.15.00#Lead stamped components#31.28.15.00.00
+unspsc7#31.28.15.16.00#Brass stamped components#31.28.15.00.00
+unspsc7#31.28.15.17.00#Bronze stamped components#31.28.15.00.00
+unspsc7#31.28.15.18.00#Composite stamped components#31.28.15.00.00
+unspsc7#31.28.15.19.00#Nickel alloy stamped components#31.28.15.00.00
+unspsc7#31.28.15.20.00#Non metallic stamped components#31.28.15.00.00
+unspsc7#31.28.15.21.00#Coated Stampings#31.28.15.00.00
+unspsc7#31.28.16.00.00#Formed components#31.28.00.00.00
+unspsc7#31.28.16.01.00#Formed metal components#31.28.16.00.00
+unspsc7#31.28.17.00.00#Welded components#31.28.00.00.00
+unspsc7#31.28.17.01.00#Welded metal components#31.28.17.00.00
+unspsc7#31.28.18.00.00#Punched components#31.28.00.00.00
+unspsc7#31.28.18.01.00#Aluminum punched components#31.28.18.00.00
+unspsc7#31.28.18.02.00#Ferrous alloy punched components#31.28.18.00.00
+unspsc7#31.28.18.03.00#Iron punched components#31.28.18.00.00
+unspsc7#31.28.18.04.00#Non ferrous alloy punched components#31.28.18.00.00
+unspsc7#31.28.18.05.00#Stainless steel punched components#31.28.18.00.00
+unspsc7#31.28.18.06.00#Carbon Steel punched components#31.28.18.00.00
+unspsc7#31.28.18.07.00#Composite punched components#31.28.18.00.00
+unspsc7#31.28.18.08.00#Nickel alloy punched components#31.28.18.00.00
+unspsc7#31.28.18.09.00#Non metallic punched components#31.28.18.00.00
+unspsc7#31.28.18.10.00#Titanium punched components#31.28.18.00.00
+unspsc7#31.28.18.11.00#Beryllium punched components#31.28.18.00.00
+unspsc7#31.28.18.12.00#Precious metal punched components#31.28.18.00.00
+unspsc7#31.28.18.13.00#Copper punched components#31.28.18.00.00
+unspsc7#31.28.18.14.00#Lead punched components#31.28.18.00.00
+unspsc7#31.28.18.15.00#Brass punched components#31.28.18.00.00
+unspsc7#31.28.18.16.00#Bronze punched components#31.28.18.00.00
+unspsc7#31.28.18.17.00#Magnesium punched components#31.28.18.00.00
+unspsc7#31.28.18.18.00#Zinc punched components#31.28.18.00.00
+unspsc7#31.28.18.19.00#Tin punched components#31.28.18.00.00
+unspsc7#31.28.19.00.00#Draw formed components#31.28.00.00.00
+unspsc7#31.28.19.01.00#Aluminum draw formed components#31.28.19.00.00
+unspsc7#31.28.19.02.00#Beryllium draw formed components#31.28.19.00.00
+unspsc7#31.28.19.03.00#Brass draw formed components#31.28.19.00.00
+unspsc7#31.28.19.04.00#Bronze draw formed components#31.28.19.00.00
+unspsc7#31.28.19.05.00#Composite draw formed components#31.28.19.00.00
+unspsc7#31.28.19.06.00#Copper draw formed components#31.28.19.00.00
+unspsc7#31.28.19.07.00#Ferrous alloy draw formed components#31.28.19.00.00
+unspsc7#31.28.19.08.00#Iron draw formed components#31.28.19.00.00
+unspsc7#31.28.19.09.00#Lead draw formed components#31.28.19.00.00
+unspsc7#31.28.19.10.00#Magnesium draw formed components#31.28.19.00.00
+unspsc7#31.28.19.11.00#Nickel alloy draw formed components#31.28.19.00.00
+unspsc7#31.28.19.12.00#Non ferrous alloy draw formed components#31.28.19.00.00
+unspsc7#31.28.19.13.00#Non metallic draw formed components#31.28.19.00.00
+unspsc7#31.28.19.14.00#Precious metal draw formed components#31.28.19.00.00
+unspsc7#31.28.19.15.00#Stainless steel draw formed components#31.28.19.00.00
+unspsc7#31.28.19.16.00#Steel draw formed components#31.28.19.00.00
+unspsc7#31.28.19.17.00#Tin draw formed components#31.28.19.00.00
+unspsc7#31.28.19.18.00#Titanium draw formed components#31.28.19.00.00
+unspsc7#31.28.19.19.00#Zinc draw formed components#31.28.19.00.00
+unspsc7#31.28.20.00.00#Hydro formed components#31.28.00.00.00
+unspsc7#31.28.20.01.00#Aluminum hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.02.00#Beryllium hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.03.00#Brass hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.04.00#Bronze hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.05.00#Composite hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.06.00#Copper hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.07.00#Ferrous alloy hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.08.00#Iron hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.09.00#Lead hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.10.00#Magnesium hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.11.00#Nickel alloy hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.12.00#Non ferrous alloy hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.13.00#Non metallic hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.14.00#Precious metal hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.15.00#Stainless steel hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.16.00#Steel hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.17.00#Tin hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.18.00#Titanium hydro formed components#31.28.20.00.00
+unspsc7#31.28.20.19.00#Zinc hydro formed components#31.28.20.00.00
+unspsc7#31.28.21.00.00#Spin formed components#31.28.00.00.00
+unspsc7#31.28.21.01.00#Aluminum spin formed components#31.28.21.00.00
+unspsc7#31.28.21.02.00#Beryllium spin formed components#31.28.21.00.00
+unspsc7#31.28.21.03.00#Brass spin formed components#31.28.21.00.00
+unspsc7#31.28.21.04.00#Bronze spin formed components#31.28.21.00.00
+unspsc7#31.28.21.05.00#Composite spin formed components#31.28.21.00.00
+unspsc7#31.28.21.06.00#Copper spin formed components#31.28.21.00.00
+unspsc7#31.28.21.07.00#Ferrous alloy spin formed components#31.28.21.00.00
+unspsc7#31.28.21.08.00#Iron spin formed components#31.28.21.00.00
+unspsc7#31.28.21.09.00#Lead spin formed components#31.28.21.00.00
+unspsc7#31.28.21.10.00#Magnesium spin formed components#31.28.21.00.00
+unspsc7#31.28.21.11.00#Nickel alloy spin formed components#31.28.21.00.00
+unspsc7#31.28.21.12.00#Non ferrous alloy spin formed components#31.28.21.00.00
+unspsc7#31.28.21.13.00#Non metallic spin formed components#31.28.21.00.00
+unspsc7#31.28.21.14.00#Precious metal spin formed components#31.28.21.00.00
+unspsc7#31.28.21.15.00#Stainless steel spin formed components#31.28.21.00.00
+unspsc7#31.28.21.16.00#Steel spin formed components#31.28.21.00.00
+unspsc7#31.28.21.17.00#Tin spin formed components#31.28.21.00.00
+unspsc7#31.28.21.18.00#Titanium spin formed components#31.28.21.00.00
+unspsc7#31.28.21.19.00#Zinc spin formed components#31.28.21.00.00
+unspsc7#31.28.22.00.00#Roll formed components#31.28.00.00.00
+unspsc7#31.28.22.01.00#Aluminum roll formed components#31.28.22.00.00
+unspsc7#31.28.22.02.00#Beryllium roll formed components#31.28.22.00.00
+unspsc7#31.28.22.03.00#Brass roll formed components#31.28.22.00.00
+unspsc7#31.28.22.04.00#Bronze roll formed components#31.28.22.00.00
+unspsc7#31.28.22.05.00#Composite roll formed components#31.28.22.00.00
+unspsc7#31.28.22.06.00#Copper roll formed components#31.28.22.00.00
+unspsc7#31.28.22.07.00#Ferrous alloy roll formed components#31.28.22.00.00
+unspsc7#31.28.22.08.00#Iron roll formed components#31.28.22.00.00
+unspsc7#31.28.22.09.00#Lead roll formed components#31.28.22.00.00
+unspsc7#31.28.22.10.00#Magnesium roll formed components#31.28.22.00.00
+unspsc7#31.28.22.11.00#Nickel alloy roll formed components#31.28.22.00.00
+unspsc7#31.28.22.12.00#Non ferrous alloy roll formed components#31.28.22.00.00
+unspsc7#31.28.22.13.00#Non metallic roll formed components#31.28.22.00.00
+unspsc7#31.28.22.14.00#Precious metal roll formed components#31.28.22.00.00
+unspsc7#31.28.22.15.00#Stainless steel roll formed components#31.28.22.00.00
+unspsc7#31.28.22.16.00#Steel roll formed components#31.28.22.00.00
+unspsc7#31.28.22.17.00#Tin roll formed components#31.28.22.00.00
+unspsc7#31.28.22.18.00#Titanium roll formed components#31.28.22.00.00
+unspsc7#31.28.22.19.00#Zinc roll formed components#31.28.22.00.00
+unspsc7#31.28.23.00.00#Stretch formed components#31.28.00.00.00
+unspsc7#31.28.23.01.00#Aluminum stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.02.00#Beryllium stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.03.00#Brass stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.04.00#Bronze stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.05.00#Composite stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.06.00#Copper stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.07.00#Ferrous alloy stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.08.00#Iron stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.09.00#Lead stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.10.00#Magnesium stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.11.00#Nickel alloy stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.12.00#Non ferrous alloy stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.13.00#Non metallic stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.14.00#Precious metal stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.15.00#Stainless steel stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.16.00#Steel stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.17.00#Tin stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.18.00#Titanium stretch formed components#31.28.23.00.00
+unspsc7#31.28.23.19.00#Zinc stretch formed components#31.28.23.00.00
+unspsc7#31.28.24.00.00#Explosive formed components#31.28.00.00.00
+unspsc7#31.28.24.01.00#Aluminum explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.02.00#Beryllium explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.03.00#Brass explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.04.00#Bronze explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.05.00#Composite explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.06.00#Copper explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.07.00#Ferrous alloy explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.08.00#Iron explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.09.00#Lead explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.10.00#Magnesium explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.11.00#Nickel alloy explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.12.00#Non ferrous alloy explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.13.00#Non metallic explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.14.00#Precious metal explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.15.00#Stainless steel explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.16.00#Steel explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.17.00#Tin explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.18.00#Titanium explosive formed components#31.28.24.00.00
+unspsc7#31.28.24.19.00#Zinc explosive formed components#31.28.24.00.00
+unspsc7#31.29.00.00.00#Machined extrusions#31.00.00.00.00
+unspsc7#31.29.11.00.00#Machined hydro static extrusions#31.29.00.00.00
+unspsc7#31.29.11.01.00#Aluminum machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.02.00#Beryllium machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.03.00#Brass machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.04.00#Bronze machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.05.00#Copper machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.06.00#Ferrous alloy machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.07.00#Lead machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.08.00#Magnesium machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.09.00#Non ferrous alloy machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.10.00#Plastic machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.11.00#Precious metal machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.12.00#Rubber machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.13.00#Stainless steel machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.14.00#Steel machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.15.00#Tin machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.16.00#Titanium machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.17.00#Zinc machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.18.00#Composite machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.19.00#Nickel alloy machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.11.20.00#Non metallic machined hydro static extrusions#31.29.11.00.00
+unspsc7#31.29.12.00.00#Machined impact extrusions#31.29.00.00.00
+unspsc7#31.29.12.01.00#Aluminum machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.02.00#Beryllium machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.03.00#Brass machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.04.00#Bronze machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.05.00#Copper machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.06.00#Ferrous alloy machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.07.00#Lead machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.08.00#Magnesium machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.09.00#Non ferrous alloy machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.10.00#Plastic machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.11.00#Precious metal machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.12.00#Rubber machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.13.00#Stainless steel machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.14.00#Steel machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.15.00#Tin machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.16.00#Titanium machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.17.00#Zinc machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.18.00#Composite machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.19.00#Nickel alloy machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.12.20.00#Non metallic machined impact extrusions#31.29.12.00.00
+unspsc7#31.29.13.00.00#Machined cold extrusions#31.29.00.00.00
+unspsc7#31.29.13.01.00#Aluminum machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.02.00#Beryllium machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.03.00#Brass machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.04.00#Bronze machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.05.00#Copper machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.06.00#Ferrous alloy machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.07.00#Lead machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.08.00#Magnesium machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.09.00#Non ferrous alloy machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.10.00#Plastic machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.11.00#Precious metal machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.12.00#Rubber machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.13.00#Stainless steel machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.14.00#Steel machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.15.00#Tin machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.16.00#Titanium machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.17.00#Zinc machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.18.00#Composite machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.19.00#Nickel alloy machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.13.20.00#Non metallic machined cold extrusions#31.29.13.00.00
+unspsc7#31.29.14.00.00#Machined hot extrusions#31.29.00.00.00
+unspsc7#31.29.14.01.00#Aluminum machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.02.00#Beryllium machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.03.00#Brass machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.04.00#Bronze machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.05.00#Copper machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.06.00#Ferrous alloy machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.07.00#Lead machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.08.00#Magnesium machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.09.00#Non ferrous alloy machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.10.00#Plastic machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.11.00#Precious metal machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.12.00#Rubber machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.13.00#Stainless steel machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.14.00#Steel machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.15.00#Tin machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.16.00#Titanium machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.17.00#Zinc machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.18.00#Composite machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.19.00#Nickel alloy machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.14.20.00#Non metallic machined hot extrusions#31.29.14.00.00
+unspsc7#31.29.15.00.00#Machined impact extrusions#31.29.00.00.00
+unspsc7#31.29.16.00.00#Machined cold extrusions#31.29.00.00.00
+unspsc7#31.29.17.00.00#Machined hot extrusions#31.29.00.00.00
+unspsc7#31.29.18.00.00#Machined hydro static extrusions#31.29.00.00.00
+unspsc7#31.30.00.00.00#Machined forgings#31.00.00.00.00
+unspsc7#31.30.10.00.00#Machined rolled ring forgings#31.30.00.00.00
+unspsc7#31.30.11.00.00#Machined open die forgings#31.30.00.00.00
+unspsc7#31.30.11.01.00#Non ferrous alloy open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.02.00#Ferrous alloy open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.03.00#Steel open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.04.00#Stainless steel open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.05.00#Iron open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.06.00#Aluminum open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.07.00#Magnesium open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.08.00#Titanium open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.09.00#Beryllium open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.10.00#Copper open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.11.00#Brass open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.12.00#Bronze open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.13.00#Zinc open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.14.00#Tin open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.15.00#Lead open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.16.00#Precious metal open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.17.00#Composite open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.18.00#Nickel alloy open die machined forgings#31.30.11.00.00
+unspsc7#31.30.11.19.00#Non metallic open die machined forgings#31.30.11.00.00
+unspsc7#31.30.12.00.00#Machined closed die forgings#31.30.00.00.00
+unspsc7#31.30.12.01.00#Non ferrous alloy closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.02.00#Ferrous alloy closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.03.00#Steel closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.04.00#Stainless steel closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.05.00#Iron closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.06.00#Aluminum closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.07.00#Magnesium closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.08.00#Titanium closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.09.00#Beryllium closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.10.00#Copper closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.11.00#Brass closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.12.00#Bronze closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.13.00#Zinc closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.14.00#Tin closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.15.00#Lead closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.16.00#Precious metal closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.17.00#Composite closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.18.00#Nickel alloy closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.12.19.00#Non metallic closed die machined forgings#31.30.12.00.00
+unspsc7#31.30.13.00.00#Machined impression die forgings#31.30.00.00.00
+unspsc7#31.30.13.01.00#Non ferrous alloy impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.02.00#Ferrous alloy impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.03.00#Steel impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.04.00#Stainless steel impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.05.00#Iron impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.06.00#Aluminum impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.07.00#Magnesium impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.08.00#Titanium impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.09.00#Beryllium impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.10.00#Copper impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.11.00#Brass impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.12.00#Bronze impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.13.00#Zinc impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.14.00#Tin impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.15.00#Lead impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.16.00#Precious metal impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.17.00#Composite impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.18.00#Nickel alloy impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.13.19.00#Non metallic impression die machined forgings#31.30.13.00.00
+unspsc7#31.30.14.00.00#Machined drop forgings#31.30.00.00.00
+unspsc7#31.30.14.01.00#Non ferrous alloy drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.02.00#Zinc drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.03.00#Ferrous alloy drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.04.00#Tin drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.05.00#Lead drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.06.00#Steel drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.07.00#Precious metal drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.08.00#Stainless steel drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.09.00#Iron drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.10.00#Aluminum drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.11.00#Magnesium drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.12.00#Titanium drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.13.00#Beryllium drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.14.00#Copper drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.15.00#Brass drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.16.00#Bronze drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.17.00#Composite drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.18.00#Nickel alloy drop machined forgings#31.30.14.00.00
+unspsc7#31.30.14.19.00#Non metallic drop machined forgings#31.30.14.00.00
+unspsc7#31.30.15.00.00#Machined rolled ring forgings#31.30.00.00.00
+unspsc7#31.30.15.01.00#Aluminum rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.02.00#Beryllium rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.03.00#Brass rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.04.00#Bronze rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.05.00#Copper rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.06.00#Iron rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.07.00#Lead rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.08.00#Magnesium rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.09.00#Precious metal rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.10.00#Stainless steel rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.11.00#Tin rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.12.00#Titanium rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.13.00#Zinc rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.14.00#Non ferrous alloy rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.15.00#Ferrous alloy rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.16.00#Steel rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.17.00#Composite rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.18.00#Nickel alloy rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.15.19.00#Non metallic rolled ring machined forgings#31.30.15.00.00
+unspsc7#31.30.16.00.00#Machined open die forgings#31.30.00.00.00
+unspsc7#31.30.17.00.00#Machined closed die forgings#31.30.00.00.00
+unspsc7#31.30.18.00.00#Machined impression die forgings#31.30.00.00.00
+unspsc7#31.30.19.00.00#Machined drop forgings#31.30.00.00.00
+unspsc7#31.31.00.00.00#Fabricated pipe assemblies#31.00.00.00.00
+unspsc7#31.31.11.00.00#Solvent welded pipe assemblies#31.31.00.00.00
+unspsc7#31.31.11.01.00#Aluminum solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.02.00#Carbon steel solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.03.00#Hastalloy X solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.04.00#Inconel solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.05.00#Low alloy steel solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.06.00#Non metallic solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.07.00#Other ferrous solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.08.00#Other non ferrous solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.09.00#Stainless steel solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.10.00#Titanium solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.11.00#Waspalloy solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.12.00#Copper solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.11.13.00#Brass solvent welded pipe assemblies#31.31.11.00.00
+unspsc7#31.31.12.00.00#Riveted pipe assemblies#31.31.00.00.00
+unspsc7#31.31.12.01.00#Aluminum riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.02.00#Carbon steel riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.03.00#Hastalloy X riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.04.00#Inconel riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.05.00#Low alloy steel riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.06.00#Non metallic riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.07.00#Other ferrous riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.08.00#Other non ferrous riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.09.00#Stainless steel riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.10.00#Titanium riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.11.00#Waspalloy riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.12.00#Copper riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.12.13.00#Brass riveted pipe assemblies#31.31.12.00.00
+unspsc7#31.31.13.00.00#Bolted pipe assemblies#31.31.00.00.00
+unspsc7#31.31.13.01.00#Aluminum bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.02.00#Carbon steel bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.03.00#Hastalloy X bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.04.00#Inconel bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.05.00#Low alloy steel bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.06.00#Non metallic bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.07.00#Other ferrous bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.08.00#Other non ferrous bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.09.00#Stainless steel bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.10.00#Titanium bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.11.00#Waspalloy bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.12.00#Copper bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.13.13.00#Brass bolted pipe assemblies#31.31.13.00.00
+unspsc7#31.31.14.00.00#Ultra violet welded (UV) pipe assemblies#31.31.00.00.00
+unspsc7#31.31.14.01.00#Aluminum ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.02.00#Carbon steel ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.03.00#Hastalloy X ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.04.00#Inconel ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.05.00#Low alloy steel ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.06.00#Non metallic ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.07.00#Other ferrous ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.08.00#Other non ferrous ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.09.00#Stainless steel ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.10.00#Titanium ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.11.00#Waspalloy ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.12.00#Copper ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.14.13.00#Brass ultra violet welded pipe assemblies#31.31.14.00.00
+unspsc7#31.31.15.00.00#Welded or brazed pipe assemblies#31.31.00.00.00
+unspsc7#31.31.15.01.00#Aluminum welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.02.00#Carbon steel welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.03.00#Hastalloy X welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.04.00#Inconel welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.05.00#Low alloy steel welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.06.00#Non metallic welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.07.00#Other ferrous welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.08.00#Other non ferrous welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.09.00#Stainless steel welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.10.00#Titanium welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.11.00#Waspalloy welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.12.00#Copper welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.15.13.00#Brass welded or brazed pipe assemblies#31.31.15.00.00
+unspsc7#31.31.16.00.00#Sonic welded pipe assemblies#31.31.00.00.00
+unspsc7#31.31.16.01.00#Aluminum sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.02.00#Carbon steel sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.03.00#Hastalloy X sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.04.00#Inconel sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.05.00#Low alloy steel sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.06.00#Non metallic sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.07.00#Other ferrous sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.08.00#Other non ferrous sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.09.00#Stainless steel sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.10.00#Titanium sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.11.00#Waspalloy sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.12.00#Copper sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.16.13.00#Brass sonic welded pipe assemblies#31.31.16.00.00
+unspsc7#31.31.17.00.00#Bonded pipe assemblies#31.31.00.00.00
+unspsc7#31.31.17.01.00#Aluminum bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.02.00#Carbon steel bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.03.00#Hastalloy X bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.04.00#Inconel bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.05.00#Low alloy steel bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.06.00#Non metallic bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.07.00#Other ferrous bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.08.00#Other non ferrous bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.09.00#Stainless steel bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.10.00#Titanium bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.11.00#Waspalloy bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.12.00#Copper bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.31.17.13.00#Brass bonded pipe assemblies#31.31.17.00.00
+unspsc7#31.32.00.00.00#Fabricated bar stock assemblies#31.00.00.00.00
+unspsc7#31.32.11.00.00#Bonded bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.11.01.00#Aluminum bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.02.00#Carbon steel bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.03.00#Hastalloy X bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.04.00#Inconel bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.05.00#Low alloy steel bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.06.00#Non metallic bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.07.00#Other ferrous bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.08.00#Other non ferrous bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.09.00#Stainless steel bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.10.00#Titanium bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.11.00#Waspalloy bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.12.00#Copper bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.11.13.00#Brass bonded bar stock assemblies#31.32.11.00.00
+unspsc7#31.32.12.00.00#Solvent welded bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.12.01.00#Aluminum solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.02.00#Carbon steel solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.03.00#Hastalloy X solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.04.00#Inconel solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.05.00#Low alloy steel solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.06.00#Non metallic solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.07.00#Other ferrous solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.08.00#Other non ferrous solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.09.00#Stainless steel solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.10.00#Titanium solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.11.00#Waspalloy solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.12.00#Copper solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.12.13.00#Brass solvent welded bar stock assemblies#31.32.12.00.00
+unspsc7#31.32.13.00.00#Riveted bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.13.01.00#Aluminum riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.02.00#Carbon steel riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.03.00#Hastalloy X riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.04.00#Inconel riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.05.00#Low alloy steel riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.06.00#Non metallic riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.07.00#Other ferrous riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.08.00#Other non ferrous riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.09.00#Stainless steel riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.10.00#Titanium riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.11.00#Waspalloy riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.12.00#Copper riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.13.13.00#Brass riveted bar stock assemblies#31.32.13.00.00
+unspsc7#31.32.14.00.00#Welded or brazed bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.14.01.00#Aluminum welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.02.00#Carbon steel welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.03.00#Hastalloy X welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.04.00#Inconel welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.05.00#Low alloy steel welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.06.00#Non metallic welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.07.00#Other ferrous welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.08.00#Other non ferrous welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.09.00#Stainless steel welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.10.00#Titanium welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.11.00#Waspalloy welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.12.00#Copper welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.14.13.00#Brass welded or brazed bar stock assemblies#31.32.14.00.00
+unspsc7#31.32.15.00.00#Ultra violet welded (UV) bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.15.01.00#Aluminum ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.02.00#Carbon steel ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.03.00#Hastalloy X ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.04.00#Inconel ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.05.00#Low alloy steel ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.06.00#Non metallic ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.07.00#Other ferrous ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.08.00#Other non ferrous ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.09.00#Stainless steel ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.10.00#Titanium ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.11.00#Waspalloy ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.12.00#Copper ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.15.13.00#Brass ultra violet welded bar stock assemblies#31.32.15.00.00
+unspsc7#31.32.16.00.00#Sonic welded bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.16.01.00#Aluminum sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.02.00#Carbon steel sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.03.00#Hastalloy X sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.04.00#Inconel sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.05.00#Low alloy steel sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.06.00#Non metallic sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.07.00#Other ferrous sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.08.00#Other non ferrous sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.09.00#Stainless steel sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.10.00#Titanium sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.11.00#Waspalloy sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.12.00#Copper sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.16.13.00#Brass sonic welded bar stock assemblies#31.32.16.00.00
+unspsc7#31.32.17.00.00#Bolted bar stock assemblies#31.32.00.00.00
+unspsc7#31.32.17.01.00#Aluminum bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.02.00#Carbon steel bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.03.00#Hastalloy X bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.04.00#Inconel bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.05.00#Low alloy steel bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.06.00#Non metallic bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.07.00#Other ferrous bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.08.00#Other non ferrous bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.09.00#Stainless steel bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.10.00#Titanium bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.11.00#Waspalloy bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.12.00#Copper bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.32.17.13.00#Brass bolted bar stock assemblies#31.32.17.00.00
+unspsc7#31.33.00.00.00#Fabricated structural assemblies#31.00.00.00.00
+unspsc7#31.33.11.00.00#Bonded structural assemblies#31.33.00.00.00
+unspsc7#31.33.11.01.00#Aluminum bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.02.00#Carbon steel bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.03.00#Hastalloy X bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.04.00#Inconel bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.05.00#Low alloy steel bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.06.00#Non metallic bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.07.00#Other ferrous bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.08.00#Other non ferrous bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.09.00#Stainless steel bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.10.00#Titanium bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.11.00#Waspalloy bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.12.00#Copper bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.11.13.00#Brass bonded structural assemblies#31.33.11.00.00
+unspsc7#31.33.12.00.00#Bolted structural assemblies#31.33.00.00.00
+unspsc7#31.33.12.01.00#Aluminum bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.02.00#Carbon steel bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.03.00#Hastalloy X bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.04.00#Inconel bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.05.00#Low alloy steel bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.06.00#Non metallic bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.07.00#Other ferrous bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.08.00#Other non ferrous bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.09.00#Stainless steel bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.10.00#Titanium bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.11.00#Waspalloy bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.12.00#Copper bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.12.13.00#Brass bolted structural assemblies#31.33.12.00.00
+unspsc7#31.33.13.00.00#Sonic welded structural assemblies#31.33.00.00.00
+unspsc7#31.33.13.01.00#Aluminum sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.02.00#Carbon steel sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.03.00#Hastalloy X sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.04.00#Inconel sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.05.00#Low alloy steel sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.06.00#Non metallic sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.07.00#Other ferrous sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.08.00#Other non ferrous sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.09.00#Stainless steel sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.10.00#Titanium sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.11.00#Waspalloy sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.12.00#Copper sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.13.13.00#Brass sonic welded structural assemblies#31.33.13.00.00
+unspsc7#31.33.14.00.00#Ultra violet welded (UV) structural assemblies#31.33.00.00.00
+unspsc7#31.33.14.01.00#Aluminum ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.02.00#Carbon steel ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.03.00#Hastalloy X ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.04.00#Inconel ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.05.00#Low alloy steel ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.06.00#Non metallic ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.07.00#Other ferrous ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.08.00#Other non ferrous ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.09.00#Stainless steel ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.10.00#Titanium ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.11.00#Waspalloy ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.12.00#Copper ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.14.13.00#Brass ultra violet welded structural assemblies#31.33.14.00.00
+unspsc7#31.33.15.00.00#Solvent welded structural assemblies#31.33.00.00.00
+unspsc7#31.33.15.01.00#Aluminum solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.02.00#Carbon steel solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.03.00#Hastalloy X solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.04.00#Inconel solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.05.00#Low alloy steel solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.06.00#Non metallic solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.07.00#Other ferrous solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.08.00#Other non ferrous solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.09.00#Stainless steel solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.10.00#Titanium solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.11.00#Waspalloy solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.12.00#Copper solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.15.13.00#Brass solvent welded structural assemblies#31.33.15.00.00
+unspsc7#31.33.16.00.00#Welded or brazed structural assemblies#31.33.00.00.00
+unspsc7#31.33.16.01.00#Aluminum welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.02.00#Carbon steel welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.03.00#Hastalloy X welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.04.00#Inconel welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.05.00#Low alloy steel welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.06.00#Non metallic welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.07.00#Other ferrous welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.08.00#Other non ferrous welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.09.00#Stainless steel welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.10.00#Titanium welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.11.00#Waspalloy welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.12.00#Copper welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.16.13.00#Brass welded or brazed structural assemblies#31.33.16.00.00
+unspsc7#31.33.17.00.00#Riveted structural assemblies#31.33.00.00.00
+unspsc7#31.33.17.01.00#Aluminum riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.02.00#Carbon steel riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.03.00#Hastalloy X riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.04.00#Inconel riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.05.00#Low alloy steel riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.06.00#Non metallic riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.07.00#Other ferrous riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.08.00#Other non ferrous riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.09.00#Stainless steel riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.10.00#Titanium riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.11.00#Waspalloy riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.12.00#Copper riveted structural assemblies#31.33.17.00.00
+unspsc7#31.33.17.13.00#Brass riveted structural assemblies#31.33.17.00.00
+unspsc7#31.34.00.00.00#Fabricated sheet assemblies#31.00.00.00.00
+unspsc7#31.34.11.00.00#Welded or brazed sheet assemblies#31.34.00.00.00
+unspsc7#31.34.11.01.00#Aluminum welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.02.00#Carbon steel welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.03.00#Hastalloy X welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.04.00#Inconel welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.05.00#Low alloy steel welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.06.00#Non metallic welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.07.00#Other ferrous welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.08.00#Other non ferrous welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.09.00#Stainless steel welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.10.00#Titanium welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.11.00#Waspalloy welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.12.00#Copper welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.11.13.00#Brass welded or brazed sheet assemblies#31.34.11.00.00
+unspsc7#31.34.12.00.00#Riveted sheet assemblies#31.34.00.00.00
+unspsc7#31.34.12.01.00#Aluminum riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.02.00#Carbon steel riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.03.00#Hastalloy X riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.04.00#Inconel riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.05.00#Low alloy steel riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.06.00#Non metallic riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.07.00#Other ferrous riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.08.00#Other non ferrous riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.09.00#Stainless steel riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.10.00#Titanium riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.11.00#Waspalloy riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.12.00#Copper riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.12.13.00#Brass riveted sheet assemblies#31.34.12.00.00
+unspsc7#31.34.13.00.00#Ultra violet welded (UV) sheet assemblies#31.34.00.00.00
+unspsc7#31.34.13.01.00#Aluminum ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.02.00#Carbon steel ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.03.00#Hastalloy X ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.04.00#Inconel ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.05.00#Low alloy steel ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.06.00#Non metallic ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.07.00#Other ferrous ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.08.00#Other non ferrous ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.09.00#Stainless steel ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.10.00#Titanium ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.11.00#Waspalloy ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.12.00#Copper ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.13.13.00#Brass ultra violet welded sheet assemblies#31.34.13.00.00
+unspsc7#31.34.14.00.00#Sonic welded sheet assemblies#31.34.00.00.00
+unspsc7#31.34.14.01.00#Aluminum sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.02.00#Carbon steel sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.03.00#Hastalloy X sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.04.00#Inconel sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.05.00#Low alloy steel sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.06.00#Non metallic sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.07.00#Other ferrous sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.08.00#Other non ferrous sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.09.00#Stainless steel sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.10.00#Titanium sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.11.00#Waspalloy sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.12.00#Copper sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.14.13.00#Brass sonic welded sheet assemblies#31.34.14.00.00
+unspsc7#31.34.15.00.00#Solvent welded sheet assemblies#31.34.00.00.00
+unspsc7#31.34.15.01.00#Aluminum solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.02.00#Carbon steel solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.03.00#Hastalloy X solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.04.00#Inconel solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.05.00#Low alloy steel solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.06.00#Non metallic solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.07.00#Other ferrous solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.08.00#Other non ferrous solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.09.00#Stainless steel solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.10.00#Titanium solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.11.00#Waspalloy solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.12.00#Copper solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.15.13.00#Brass solvent welded sheet assemblies#31.34.15.00.00
+unspsc7#31.34.16.00.00#Bonded sheet assemblies#31.34.00.00.00
+unspsc7#31.34.16.01.00#Aluminum bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.02.00#Carbon steel bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.03.00#Hastalloy X bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.04.00#Inconel bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.05.00#Low alloy steel bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.06.00#Non metallic bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.07.00#Other ferrous bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.08.00#Other non ferrous bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.09.00#Stainless steel bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.10.00#Titanium bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.11.00#Waspalloy bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.12.00#Copper bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.16.13.00#Brass bonded sheet assemblies#31.34.16.00.00
+unspsc7#31.34.17.00.00#Bolted sheet assemblies#31.34.00.00.00
+unspsc7#31.34.17.01.00#Aluminum bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.02.00#Carbon steel bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.03.00#Hastalloy X bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.04.00#Inconel bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.05.00#Low alloy steel bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.06.00#Non metallic bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.07.00#Other ferrous bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.08.00#Other non ferrous bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.09.00#Stainless steel bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.10.00#Titanium bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.11.00#Waspalloy bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.12.00#Copper bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.34.17.13.00#Brass bolted sheet assemblies#31.34.17.00.00
+unspsc7#31.35.00.00.00#Fabricated tube assemblies#31.00.00.00.00
+unspsc7#31.35.11.00.00#Ultra violet welded (UV) tube assemblies#31.35.00.00.00
+unspsc7#31.35.11.01.00#Aluminum ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.02.00#Carbon steel ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.03.00#Hastalloy X ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.04.00#Inconel ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.05.00#Low alloy steel ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.06.00#Non metallic ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.07.00#Other ferrous ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.08.00#Other non ferrous ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.09.00#Stainless steel ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.10.00#Titanium ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.11.00#Waspalloy ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.12.00#Copper ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.11.13.00#Brass ultra violet welded tube assemblies#31.35.11.00.00
+unspsc7#31.35.12.00.00#Welded or brazed tube assemblies#31.35.00.00.00
+unspsc7#31.35.12.01.00#Aluminum welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.02.00#Carbon steel welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.03.00#Hastalloy X welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.04.00#Inconel welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.05.00#Low alloy steel welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.06.00#Non metallic welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.07.00#Other ferrous welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.08.00#Other non ferrous welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.09.00#Stainless steel welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.10.00#Titanium welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.11.00#Waspalloy welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.12.00#Copper welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.12.13.00#Brass welded or brazed tube assemblies#31.35.12.00.00
+unspsc7#31.35.13.00.00#Riveted tube assemblies#31.35.00.00.00
+unspsc7#31.35.13.01.00#Aluminum riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.02.00#Carbon steel riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.03.00#Hastalloy X riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.04.00#Inconel riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.05.00#Low alloy steel riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.06.00#Non metallic riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.07.00#Other ferrous riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.08.00#Other non ferrous riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.09.00#Stainless steel riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.10.00#Titanium riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.11.00#Waspalloy riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.12.00#Copper riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.13.13.00#Brass riveted tube assemblies#31.35.13.00.00
+unspsc7#31.35.14.00.00#Bonded tube assemblies#31.35.00.00.00
+unspsc7#31.35.14.01.00#Aluminum bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.02.00#Carbon steel bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.03.00#Hastalloy X bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.04.00#Inconel bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.05.00#Low alloy steel bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.06.00#Non metallic bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.07.00#Other ferrous bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.08.00#Other non ferrous bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.09.00#Stainless steel bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.10.00#Titanium bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.11.00#Waspalloy bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.12.00#Copper bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.14.13.00#Brass bonded tube assemblies#31.35.14.00.00
+unspsc7#31.35.15.00.00#Bolted tube assemblies#31.35.00.00.00
+unspsc7#31.35.15.01.00#Aluminum bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.02.00#Carbon steel bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.03.00#Hastalloy X bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.04.00#Inconel bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.05.00#Low alloy steel bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.06.00#Non metallic bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.07.00#Other ferrous bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.08.00#Other non ferrous bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.09.00#Stainless steel bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.10.00#Titanium bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.11.00#Waspalloy bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.12.00#Copper bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.15.13.00#Brass bolted tube assemblies#31.35.15.00.00
+unspsc7#31.35.16.00.00#Solvent welded tube assemblies#31.35.00.00.00
+unspsc7#31.35.16.01.00#Aluminum solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.02.00#Carbon steel solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.03.00#Hastalloy X solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.04.00#Inconel solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.05.00#Low alloy steel solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.06.00#Non metallic solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.07.00#Other ferrous solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.08.00#Other non ferrous solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.09.00#Stainless steel solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.10.00#Titanium solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.11.00#Waspalloy solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.12.00#Copper solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.16.13.00#Brass solvent welded tube assemblies#31.35.16.00.00
+unspsc7#31.35.17.00.00#Sonic welded tube assemblies#31.35.00.00.00
+unspsc7#31.35.17.01.00#Aluminum sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.02.00#Carbon steel sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.03.00#Hastalloy X sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.04.00#Inconel sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.05.00#Low alloy steel sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.06.00#Non metallic sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.07.00#Other ferrous sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.08.00#Other non ferrous sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.09.00#Stainless steel sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.10.00#Titanium sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.11.00#Waspalloy sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.12.00#Copper sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.35.17.13.00#Brass sonic welded tube assemblies#31.35.17.00.00
+unspsc7#31.36.00.00.00#Fabricated plate assemblies#31.00.00.00.00
+unspsc7#31.36.11.00.00#Bonded plate assemblies#31.36.00.00.00
+unspsc7#31.36.11.01.00#Aluminum bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.02.00#Carbon steel bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.03.00#Hastalloy X bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.04.00#Inconel bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.05.00#Low alloy steel bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.06.00#Non metallic bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.07.00#Other ferrous bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.08.00#Other non ferrous bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.09.00#Stainless steel bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.10.00#Titanium bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.11.00#Waspalloy bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.12.00#Copper bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.11.13.00#Brass bonded plate assemblies#31.36.11.00.00
+unspsc7#31.36.12.00.00#Bolted plate assemblies#31.36.00.00.00
+unspsc7#31.36.12.01.00#Aluminum bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.02.00#Carbon steel bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.03.00#Hastalloy X bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.04.00#Inconel bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.05.00#Low alloy steel bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.06.00#Non metallic bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.07.00#Other ferrous bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.08.00#Other non ferrous bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.09.00#Stainless steel bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.10.00#Titanium bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.11.00#Waspalloy bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.12.00#Copper bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.12.13.00#Brass bolted plate assemblies#31.36.12.00.00
+unspsc7#31.36.13.00.00#Solvent welded plate assemblies#31.36.00.00.00
+unspsc7#31.36.13.01.00#Aluminum solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.02.00#Carbon steel solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.03.00#Hastalloy X solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.04.00#Inconel solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.05.00#Low alloy steel solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.06.00#Non metallic solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.07.00#Other ferrous solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.08.00#Other non ferrous solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.09.00#Stainless steel solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.10.00#Titanium solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.11.00#Waspalloy solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.12.00#Copper solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.13.13.00#Brass solvent welded plate assemblies#31.36.13.00.00
+unspsc7#31.36.14.00.00#Welded or brazed plate assemblies#31.36.00.00.00
+unspsc7#31.36.14.01.00#Aluminum welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.02.00#Carbon steel welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.03.00#Hastalloy X welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.04.00#Inconel welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.05.00#Low alloy steel welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.06.00#Non metallic welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.07.00#Other ferrous welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.08.00#Other non ferrous welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.09.00#Stainless steel welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.10.00#Titanium welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.11.00#Waspalloy welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.12.00#Copper welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.14.13.00#Brass welded or brazed plate assemblies#31.36.14.00.00
+unspsc7#31.36.15.00.00#Ultra violet welded (UV) plate assemblies#31.36.00.00.00
+unspsc7#31.36.15.01.00#Aluminum ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.02.00#Carbon steel ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.03.00#Hastalloy X ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.04.00#Inconel ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.05.00#Low alloy steel ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.06.00#Non metallic ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.07.00#Other ferrous ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.08.00#Other non ferrous ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.09.00#Stainless steel ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.10.00#Titanium ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.11.00#Waspalloy ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.12.00#Copper ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.15.13.00#Brass ultra violet welded plate assemblies#31.36.15.00.00
+unspsc7#31.36.16.00.00#Sonic welded plate assemblies#31.36.00.00.00
+unspsc7#31.36.16.01.00#Aluminum sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.02.00#Carbon steel sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.03.00#Hastalloy X sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.04.00#Inconel sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.05.00#Low alloy steel sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.06.00#Non metallic sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.07.00#Other ferrous sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.08.00#Other non ferrous sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.09.00#Stainless steel sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.10.00#Titanium sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.11.00#Waspalloy sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.12.00#Copper sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.16.13.00#Brass sonic welded plate assemblies#31.36.16.00.00
+unspsc7#31.36.17.00.00#Riveted plate assemblies#31.36.00.00.00
+unspsc7#31.36.17.01.00#Aluminum riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.02.00#Carbon steel riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.03.00#Hastalloy X riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.04.00#Inconel riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.05.00#Low alloy steel riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.06.00#Non metallic riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.07.00#Other ferrous riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.08.00#Other non ferrous riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.09.00#Stainless steel riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.10.00#Titanium riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.11.00#Waspalloy riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.12.00#Copper riveted plate assemblies#31.36.17.00.00
+unspsc7#31.36.17.13.00#Brass riveted plate assemblies#31.36.17.00.00
+unspsc7#31.37.00.00.00#Refractories#31.00.00.00.00
+unspsc7#31.37.10.00.00#Ceramic fibre products#31.37.00.00.00
+unspsc7#31.37.10.01.00#Insulation boards#31.37.10.00.00
+unspsc7#31.37.10.02.00#Insulating wool#31.37.10.00.00
+unspsc7#31.37.11.00.00#Refractory bricks#31.37.00.00.00
+unspsc7#31.37.11.01.00#Mullite bricks#31.37.11.00.00
+unspsc7#31.37.11.02.00#Sillimanite bricks#31.37.11.00.00
+unspsc7#31.37.11.03.00#Acid resistant bricks#31.37.11.00.00
+unspsc7#31.37.11.04.00#Silica bricks#31.37.11.00.00
+unspsc7#31.37.11.05.00#High alumina bricks#31.37.11.00.00
+unspsc7#31.37.11.06.00#Calcium silicate blocks#31.37.11.00.00
+unspsc7#31.37.11.07.00#Shaped bricks#31.37.11.00.00
+unspsc7#31.37.12.00.00#Castables#31.37.00.00.00
+unspsc7#31.37.12.01.00#Dense castables#31.37.12.00.00
+unspsc7#31.37.12.02.00#Insulating castables#31.37.12.00.00
+unspsc7#31.37.12.03.00#Low cement castables#31.37.12.00.00
+unspsc7#31.37.12.04.00#Acid or alkali resistant castable#31.37.12.00.00
+unspsc7#31.37.12.05.00#Abrasion resistant castable#31.37.12.00.00
+unspsc7#31.37.12.06.00#Sic castable#31.37.12.00.00
+unspsc7#31.37.12.07.00#Self flow castable#31.37.12.00.00
+unspsc7#31.37.12.08.00#Tabular alumina castable#31.37.12.00.00
+unspsc7#31.37.12.09.00#Erosion resistant castable#31.37.12.00.00
+unspsc7#31.37.13.00.00#Shaped refractories#31.37.00.00.00
+unspsc7#31.37.13.01.00#Porous blocks#31.37.13.00.00
+unspsc7#31.37.13.02.00#Zircon nozzles#31.37.13.00.00
+unspsc7#31.38.00.00.00#Magnets and magnetic materials#31.00.00.00.00
+unspsc7#31.38.10.00.00#Permanent magnets#31.38.00.00.00
+unspsc7#31.38.10.01.00#Lode stone#31.38.10.00.00
+unspsc7#31.38.10.02.00#Alnico magnets#31.38.10.00.00
+unspsc7#32.00.00.00.00#Electronic Components and Supplies#32.00.00.00.00
+unspsc7#32.10.00.00.00#Printed circuits and integrated circuits and microassemblies#32.00.00.00.00
+unspsc7#32.10.15.00.00#Printed circuits and circuit card assemblies#32.10.00.00.00
+unspsc7#32.10.15.01.00#Bare printed circuit boards#32.10.15.00.00
+unspsc7#32.10.15.02.00#Printed circuit assemblies (PCAs)#32.10.15.00.00
+unspsc7#32.10.15.03.00#Mixed circuit assemblies#32.10.15.00.00
+unspsc7#32.10.15.04.00#Surface mount circuit assemblies#32.10.15.00.00
+unspsc7#32.10.15.05.00#Plated through circuit assemblies#32.10.15.00.00
+unspsc7#32.10.15.06.00#Double sided circuit cards#32.10.15.00.00
+unspsc7#32.10.15.07.00#Backplane circuit cards#32.10.15.00.00
+unspsc7#32.10.15.08.00#Multilayer circuit cards#32.10.15.00.00
+unspsc7#32.10.15.09.00#Single sided circuit cards#32.10.15.00.00
+unspsc7#32.10.15.10.00#Printed wire boards#32.10.15.00.00
+unspsc7#32.10.16.00.00#Electronic components for memory or smart cards#32.10.00.00.00
+unspsc7#32.10.16.01.00#Random access memory (RAM)#32.10.16.00.00
+unspsc7#32.10.16.02.00#Dynamic random access memory (DRAM)#32.10.16.00.00
+unspsc7#32.10.16.03.00#Static random access memory (SRAM)#32.10.16.00.00
+unspsc7#32.10.16.04.00#Programmable read only memory (PROM)#32.10.16.00.00
+unspsc7#32.10.16.05.00#Eraseable programmable read only memory (EPROM)#32.10.16.00.00
+unspsc7#32.10.16.06.00#Electronically eraseable programmable read only memory (EEPROM)#32.10.16.00.00
+unspsc7#32.10.16.07.00#Monolitihc memory integrated circuits (MMIC)#32.10.16.00.00
+unspsc7#32.10.16.08.00#Read only memory (ROM)#32.10.16.00.00
+unspsc7#32.10.16.09.00#Application specific integrated circuits (ASIC)#32.10.16.00.00
+unspsc7#32.10.16.10.00#Thin quad flat pack (TQFP)#32.10.16.00.00
+unspsc7#32.10.16.11.00#Programmable array logic (PAL)#32.10.16.00.00
+unspsc7#32.10.16.12.00#Gate array logic (GAL)#32.10.16.00.00
+unspsc7#32.10.16.13.00#Transistor transistor logic (TTL)#32.10.16.00.00
+unspsc7#32.10.16.14.00#Emitter coupled logic (ECL)#32.10.16.00.00
+unspsc7#32.10.16.15.00#Bipolar or metal oxide semiconductor technology (BIMOS)#32.10.16.00.00
+unspsc7#32.10.16.16.00#Bipolar complementary metal oxide semiconductor technology (BICMOS)#32.10.16.00.00
+unspsc7#32.10.16.17.00#Smart cards#32.10.16.00.00
+unspsc7#32.10.16.18.00#Upscreened integrated circuits#32.10.16.00.00
+unspsc7#32.10.16.19.00#Linear integrated circuits#32.10.16.00.00
+unspsc7#32.10.16.20.00#Digital integrated circuits#32.10.16.00.00
+unspsc7#32.10.16.21.00#Synchronous dynamic random access memory (SDRAM)#32.10.16.00.00
+unspsc7#32.10.16.22.00#Flash memory#32.10.16.00.00
+unspsc7#32.10.16.23.00#Rambus dynamic random access memoryRDRAM#32.10.16.00.00
+unspsc7#32.10.16.24.00#Synchronous graphic random access memory SGRAM#32.10.16.00.00
+unspsc7#32.10.17.00.00#Hybrid integrated circuits#32.10.00.00.00
+unspsc7#32.10.17.01.00#Microprocessors#32.10.17.00.00
+unspsc7#32.10.17.02.00#Clock oscillators#32.10.17.00.00
+unspsc7#32.10.17.03.00#Microcontrollers#32.10.17.00.00
+unspsc7#32.10.18.00.00#Unmounted integrated circuits#32.10.00.00.00
+unspsc7#32.10.18.01.00#Unmounted dies#32.10.18.00.00
+unspsc7#32.10.18.02.00#Unmounted wafers#32.10.18.00.00
+unspsc7#32.10.18.03.00#Unmounted chips#32.10.18.00.00
+unspsc7#32.11.00.00.00#Diodes and transistors and semiconductor devices#32.00.00.00.00
+unspsc7#32.11.15.00.00#Diodes#32.11.00.00.00
+unspsc7#32.11.15.01.00#Microwave diodes#32.11.15.00.00
+unspsc7#32.11.15.02.00#Zener diodes#32.11.15.00.00
+unspsc7#32.11.15.03.00#Light emitting diodes (LEDs)#32.11.15.00.00
+unspsc7#32.11.15.04.00#Schottky diodes#32.11.15.00.00
+unspsc7#32.11.15.05.00#Tunnel diodes#32.11.15.00.00
+unspsc7#32.11.15.06.00#Photosensitive diodes#32.11.15.00.00
+unspsc7#32.11.15.07.00#Variable capacitance diodes#32.11.15.00.00
+unspsc7#32.11.15.08.00#Solar diodes#32.11.15.00.00
+unspsc7#32.11.15.09.00#Power diodes#32.11.15.00.00
+unspsc7#32.11.15.10.00#Radio frequency (RF) diodes#32.11.15.00.00
+unspsc7#32.11.15.11.00#Small signal diodes#32.11.15.00.00
+unspsc7#32.11.16.00.00#Transistors#32.11.00.00.00
+unspsc7#32.11.16.01.00#Photo sensitive transistors#32.11.16.00.00
+unspsc7#32.11.16.02.00#Field effect transistors (FET)#32.11.16.00.00
+unspsc7#32.11.16.03.00#Metal oxide silicone field effect transistors (MOSFET)#32.11.16.00.00
+unspsc7#32.11.16.04.00#Transistor chips#32.11.16.00.00
+unspsc7#32.11.16.05.00#Transistor dies#32.11.16.00.00
+unspsc7#32.11.16.06.00#Transistor wafers#32.11.16.00.00
+unspsc7#32.11.16.07.00#Bipolar darlington or radio frequency (RF) transistors#32.11.16.00.00
+unspsc7#32.11.16.08.00#Unijunction transistors#32.11.16.00.00
+unspsc7#32.11.16.09.00#Insulated gate bipolar transistors (IGBT)#32.11.16.00.00
+unspsc7#32.11.16.10.00#Junction field effect transistors (JFET)#32.11.16.00.00
+unspsc7#32.11.17.00.00#Semiconductor devices#32.11.00.00.00
+unspsc7#32.11.17.01.00#Photovoltaic cells#32.11.17.00.00
+unspsc7#32.11.17.02.00#Thyristors#32.11.17.00.00
+unspsc7#32.11.17.03.00#Diacs#32.11.17.00.00
+unspsc7#32.11.17.04.00#Triacs#32.11.17.00.00
+unspsc7#32.11.17.05.00#Optical coupled isolators#32.11.17.00.00
+unspsc7#32.11.17.06.00#Crystal oscillators#32.11.17.00.00
+unspsc7#32.11.18.00.00#Integrated circuit components#32.11.00.00.00
+unspsc7#32.11.18.01.00#Intergrated circuit lids#32.11.18.00.00
+unspsc7#32.11.18.02.00#Integrated circuit packages#32.11.18.00.00
+unspsc7#32.11.18.03.00#Substrates#32.11.18.00.00
+unspsc7#32.11.19.00.00#Radio frequency (RF) components#32.11.00.00.00
+unspsc7#32.11.19.01.00#Amplifiers#32.11.19.00.00
+unspsc7#32.11.19.02.00#Attenuators#32.11.19.00.00
+unspsc7#32.11.19.03.00#Circulators#32.11.19.00.00
+unspsc7#32.11.19.04.00#Couplers#32.11.19.00.00
+unspsc7#32.11.19.05.00#Delay lines#32.11.19.00.00
+unspsc7#32.11.19.06.00#Detectors#32.11.19.00.00
+unspsc7#32.11.19.07.00#Dummy loads#32.11.19.00.00
+unspsc7#32.11.19.08.00#Radio frequency (RF) filters#32.11.19.00.00
+unspsc7#32.11.19.09.00#Isolators#32.11.19.00.00
+unspsc7#32.11.19.10.00#Mixers#32.11.19.00.00
+unspsc7#32.11.19.11.00#Phase shifters#32.11.19.00.00
+unspsc7#32.11.19.12.00#Power dividers#32.11.19.00.00
+unspsc7#32.11.19.13.00#Wave tube amplifiers#32.11.19.00.00
+unspsc7#32.11.19.14.00#Terminations#32.11.19.00.00
+unspsc7#32.11.19.15.00#Modulators#32.11.19.00.00
+unspsc7#32.12.00.00.00#Printed components#32.00.00.00.00
+unspsc7#32.12.15.00.00#Capacitors#32.12.00.00.00
+unspsc7#32.12.15.01.00#Fixed capacitors#32.12.15.00.00
+unspsc7#32.12.15.02.00#Variable capacitors or varactors#32.12.15.00.00
+unspsc7#32.12.15.03.00#Adjustable pre set capacitors#32.12.15.00.00
+unspsc7#32.12.15.04.00#Capacitor networks#32.12.15.00.00
+unspsc7#32.12.16.00.00#Resistors#32.12.00.00.00
+unspsc7#32.12.16.01.00#Thermistors#32.12.16.00.00
+unspsc7#32.12.16.02.00#Fusistors#32.12.16.00.00
+unspsc7#32.12.16.03.00#Variable resistors or varistors#32.12.16.00.00
+unspsc7#32.12.16.04.00#Fixed carbon resistors#32.12.16.00.00
+unspsc7#32.12.16.05.00#Fixed thick film resistors#32.12.16.00.00
+unspsc7#32.12.16.06.00#Fixed thin film resistors#32.12.16.00.00
+unspsc7#32.12.16.07.00#Resistor networks#32.12.16.00.00
+unspsc7#32.12.16.08.00#Wire wound resistors#32.12.16.00.00
+unspsc7#32.12.17.00.00#Discrete components#32.12.00.00.00
+unspsc7#32.12.17.01.00#Rectifiers#32.12.17.00.00
+unspsc7#32.12.17.02.00#Inductors#32.12.17.00.00
+unspsc7#32.12.17.03.00#Ferrites#32.12.17.00.00
+unspsc7#32.12.17.04.00#Static converters#32.12.17.00.00
+unspsc7#32.12.17.05.00#Inverters#32.12.17.00.00
+unspsc7#32.12.17.06.00#Resistor or capacitor (R/C) networks#32.12.17.00.00
+unspsc7#32.13.00.00.00#Passive components#32.00.00.00.00
+unspsc7#32.13.10.00.00#Temperature controls#32.13.00.00.00
+unspsc7#32.13.10.01.00#Heat sinks#32.13.10.00.00
+unspsc7#39.00.00.00.00#Lighting and Electrical Accessories and Supplies#39.00.00.00.00
+unspsc7#39.10.00.00.00#Lamps and lightbulbs and lamp components#39.00.00.00.00
+unspsc7#39.10.16.00.00#Lamps#39.10.00.00.00
+unspsc7#39.10.16.01.00#Halogen lamps#39.10.16.00.00
+unspsc7#39.10.16.02.00#Medical lamps#39.10.16.00.00
+unspsc7#39.10.16.03.00#Solar lamps#39.10.16.00.00
+unspsc7#39.10.16.04.00#Alcohol lamps#39.10.16.00.00
+unspsc7#39.10.16.05.00#Fluorescent lamps#39.10.16.00.00
+unspsc7#39.10.16.06.00#Arc lamps#39.10.16.00.00
+unspsc7#39.10.16.08.00#Shadowless or scialytic operation light#39.10.16.00.00
+unspsc7#39.10.16.09.00#Stage or studio lamps#39.10.16.00.00
+unspsc7#39.10.16.10.00#Filament lamps#39.10.16.00.00
+unspsc7#39.10.16.11.00#High intensity discharge (HID) lamps#39.10.16.00.00
+unspsc7#39.10.16.12.00#Incandescent lamps#39.10.16.00.00
+unspsc7#39.10.16.13.00#Infrared lamps#39.10.16.00.00
+unspsc7#39.10.16.14.00#Metal halide lamps#39.10.16.00.00
+unspsc7#39.10.16.15.00#Vapor lamps#39.10.16.00.00
+unspsc7#39.10.16.16.00#Ultraviolet (UV) lamps#39.10.16.00.00
+unspsc7#39.10.16.17.00#High pressure sodium lamps#39.10.16.00.00
+unspsc7#39.10.17.00.00#Bulb glass#39.10.00.00.00
+unspsc7#39.10.17.01.00#Fluorescent tubes#39.10.17.00.00
+unspsc7#39.10.18.00.00#Lamp components#39.10.00.00.00
+unspsc7#39.10.18.01.00#Lamp filament#39.10.18.00.00
+unspsc7#39.10.19.00.00#Mobile and fixed floodlighting#39.10.00.00.00
+unspsc7#39.10.19.01.00#Light tower#39.10.19.00.00
+unspsc7#39.10.19.02.00#Light cart#39.10.19.00.00
+unspsc7#39.10.19.03.00#Light stand#39.10.19.00.00
+unspsc7#39.11.00.00.00#Lighting and fixtures and accessories#39.00.00.00.00
+unspsc7#39.11.15.00.00#Interior lighting and fixtures#39.11.00.00.00
+unspsc7#39.11.15.01.00#Fluorescent fixtures#39.11.15.00.00
+unspsc7#39.11.15.02.00#Vanity lighting#39.11.15.00.00
+unspsc7#39.11.15.03.00#Wall fixtures#39.11.15.00.00
+unspsc7#39.11.15.04.00#Stage or studio lighting systems#39.11.15.00.00
+unspsc7#39.11.15.05.00#Recessed lighting#39.11.15.00.00
+unspsc7#39.11.15.06.00#Chandeliers#39.11.15.00.00
+unspsc7#39.11.15.07.00#Desk fixtures#39.11.15.00.00
+unspsc7#39.11.15.08.00#Track lighting#39.11.15.00.00
+unspsc7#39.11.15.09.00#Floor torchiere#39.11.15.00.00
+unspsc7#39.11.15.10.00#Table lamps#39.11.15.00.00
+unspsc7#39.11.15.11.00#Decorative lighting#39.11.15.00.00
+unspsc7#39.11.15.12.00#Laboratory bench lights#39.11.15.00.00
+unspsc7#39.11.15.13.00#Interior solar lighting#39.11.15.00.00
+unspsc7#39.11.15.14.00#Tree lights#39.11.15.00.00
+unspsc7#39.11.15.15.00#Downlighting fixtures#39.11.15.00.00
+unspsc7#39.11.15.16.00#Task lighting fixtures#39.11.15.00.00
+unspsc7#39.11.15.17.00#Wax candles#39.11.15.00.00
+unspsc7#39.11.15.18.00#Hand or extension light#39.11.15.00.00
+unspsc7#39.11.15.19.00#Candle holders#39.11.15.00.00
+unspsc7#39.11.15.20.00#Halogen lighting fixtures#39.11.15.00.00
+unspsc7#39.11.16.00.00#Exterior lighting and fixtures#39.11.00.00.00
+unspsc7#39.11.16.03.00#Roadway or highway lighting#39.11.16.00.00
+unspsc7#39.11.16.05.00#Landscape or area lighting#39.11.16.00.00
+unspsc7#39.11.16.06.00#Underwater lighting#39.11.16.00.00
+unspsc7#39.11.16.08.00#Residential street lights#39.11.16.00.00
+unspsc7#39.11.16.09.00#Kerosene or propane or butane lanterns#39.11.16.00.00
+unspsc7#39.11.17.00.00#Emergency lighting#39.11.00.00.00
+unspsc7#39.11.17.02.00#Flashlights#39.11.17.00.00
+unspsc7#39.11.17.03.00#Storm lights#39.11.17.00.00
+unspsc7#39.11.17.04.00#Flood lights#39.11.17.00.00
+unspsc7#39.11.17.05.00#Light sticks#39.11.17.00.00
+unspsc7#39.11.18.00.00#Lighting accessories#39.11.00.00.00
+unspsc7#39.11.18.01.00#Lamp ballasts#39.11.18.00.00
+unspsc7#39.11.18.02.00#Lamp housings#39.11.18.00.00
+unspsc7#39.11.18.03.00#Lamp sockets#39.11.18.00.00
+unspsc7#39.11.18.04.00#Lamp bases#39.11.18.00.00
+unspsc7#39.11.18.05.00#Lamp brackets#39.11.18.00.00
+unspsc7#39.11.18.06.00#Light boxes#39.11.18.00.00
+unspsc7#39.11.18.08.00#Grilles#39.11.18.00.00
+unspsc7#39.11.18.09.00#Light conditioner filters#39.11.18.00.00
+unspsc7#39.11.18.10.00#Lamp starter#39.11.18.00.00
+unspsc7#39.11.18.11.00#Electrified tracks#39.11.18.00.00
+unspsc7#39.11.18.12.00#Lamp covers#39.11.18.00.00
+unspsc7#39.11.19.00.00#Hazardous location lighting and fixtures#39.11.00.00.00
+unspsc7#39.11.19.01.00#Hazardous location flourescent fixtures#39.11.19.00.00
+unspsc7#39.11.19.02.00#Hazardous location incandescent fixtures#39.11.19.00.00
+unspsc7#40.00.00.00.00#Distribution and Conditioning Systems and Equipment and Components#40.00.00.00.00
+unspsc7#40.10.00.00.00#Heating and ventilation and air circulation#40.00.00.00.00
+unspsc7#40.10.15.00.00#Ventilation#40.10.00.00.00
+unspsc7#40.10.15.01.00#Air collectors#40.10.15.00.00
+unspsc7#40.10.15.02.00#Air exhausters#40.10.15.00.00
+unspsc7#40.10.15.03.00#Vents#40.10.15.00.00
+unspsc7#40.10.15.04.00#Ventilation dampers#40.10.15.00.00
+unspsc7#40.10.15.05.00#Air diffusers#40.10.15.00.00
+unspsc7#40.10.15.06.00#Ventilation pipes#40.10.15.00.00
+unspsc7#40.10.16.00.00#Air circulation#40.10.00.00.00
+unspsc7#40.10.16.01.00#Blowers#40.10.16.00.00
+unspsc7#40.10.16.02.00#Air circulators#40.10.16.00.00
+unspsc7#40.10.16.03.00#Impellers#40.10.16.00.00
+unspsc7#40.10.16.04.00#Fans#40.10.16.00.00
+unspsc7#40.10.17.00.00#Cooling#40.10.00.00.00
+unspsc7#40.10.17.01.00#Air conditioners#40.10.17.00.00
+unspsc7#40.10.17.02.00#Cooling exchangers#40.10.17.00.00
+unspsc7#40.10.17.03.00#Evaporative coolers#40.10.17.00.00
+unspsc7#40.10.17.04.00#Condensing units#40.10.17.00.00
+unspsc7#40.10.18.00.00#Heating equipment#40.10.00.00.00
+unspsc7#40.10.18.01.00#Radiators#40.10.18.00.00
+unspsc7#40.10.18.02.00#Heat exchangers#40.10.18.00.00
+unspsc7#40.10.18.03.00#Fireplaces#40.10.18.00.00
+unspsc7#40.10.18.04.00#Heaters#40.10.18.00.00
+unspsc7#40.10.18.05.00#Furnaces#40.10.18.00.00
+unspsc7#40.10.18.06.00#Heat pumps#40.10.18.00.00
+unspsc7#40.10.18.07.00#Solar heating units#40.10.18.00.00
+unspsc7#40.10.18.08.00#Heating stoves#40.10.18.00.00
+unspsc7#40.10.18.09.00#Circulation heaters#40.10.18.00.00
+unspsc7#40.10.18.10.00#Coil duct heaters#40.10.18.00.00
+unspsc7#40.10.18.11.00#Convection heaters#40.10.18.00.00
+unspsc7#40.10.18.12.00#Divided exchangers#40.10.18.00.00
+unspsc7#40.10.18.13.00#Double split exchangers#40.10.18.00.00
+unspsc7#40.10.18.14.00#Finned tubular heaters#40.10.18.00.00
+unspsc7#40.10.18.15.00#Immersion heaters#40.10.18.00.00
+unspsc7#40.10.18.16.00#Kettle exchangers#40.10.18.00.00
+unspsc7#40.10.18.17.00#One pass exchangers#40.10.18.00.00
+unspsc7#40.10.18.18.00#Process air heaters#40.10.18.00.00
+unspsc7#40.10.18.19.00#Space heaters#40.10.18.00.00
+unspsc7#40.10.18.20.00#Split exchangers#40.10.18.00.00
+unspsc7#40.10.18.21.00#Strip heaters#40.10.18.00.00
+unspsc7#40.10.18.22.00#Tubular heaters#40.10.18.00.00
+unspsc7#40.10.18.23.00#Two pass exchangers#40.10.18.00.00
+unspsc7#40.10.18.24.00#Quartz heater#40.10.18.00.00
+unspsc7#40.10.18.25.00#Domestic water heaters#40.10.18.00.00
+unspsc7#40.10.18.26.00#Commercial water heaters#40.10.18.00.00
+unspsc7#40.10.19.00.00#Humidity control#40.10.00.00.00
+unspsc7#40.10.19.01.00#Vaporizers#40.10.19.00.00
+unspsc7#40.10.19.02.00#Dehumidifiers#40.10.19.00.00
+unspsc7#40.10.19.03.00#Humidifiers#40.10.19.00.00
+unspsc7#40.10.20.00.00#Boilers#40.10.00.00.00
+unspsc7#40.10.20.01.00#Fire tube boilers#40.10.20.00.00
+unspsc7#40.10.20.02.00#Water tube boiler#40.10.20.00.00
+unspsc7#40.10.20.03.00#Electric boilers#40.10.20.00.00
+unspsc7#40.14.00.00.00#Fluid and gas distribution#40.00.00.00.00
+unspsc7#40.14.15.00.00#Fluid and gas conduits#40.14.00.00.00
+unspsc7#40.14.15.02.00#Ducts#40.14.15.00.00
+unspsc7#40.14.15.04.00#Hoses#40.14.15.00.00
+unspsc7#40.14.16.00.00#Valves#40.14.00.00.00
+unspsc7#40.14.16.01.00#Check valves#40.14.16.00.00
+unspsc7#40.14.16.02.00#Needle valves#40.14.16.00.00
+unspsc7#40.14.16.03.00#Pneumatic valves#40.14.16.00.00
+unspsc7#40.14.16.04.00#Safety valves#40.14.16.00.00
+unspsc7#40.14.16.05.00#Solenoid valves#40.14.16.00.00
+unspsc7#40.14.16.06.00#Relief valves#40.14.16.00.00
+unspsc7#40.14.16.07.00#Ball valves#40.14.16.00.00
+unspsc7#40.14.16.08.00#Hydraulic valves#40.14.16.00.00
+unspsc7#40.14.16.09.00#Control valves#40.14.16.00.00
+unspsc7#40.14.16.10.00#Float valves#40.14.16.00.00
+unspsc7#40.14.16.11.00#Globe valves#40.14.16.00.00
+unspsc7#40.14.16.12.00#Expansion valves#40.14.16.00.00
+unspsc7#40.14.16.13.00#Gate valves#40.14.16.00.00
+unspsc7#40.14.16.14.00#Butterfly valves#40.14.16.00.00
+unspsc7#40.14.16.15.00#Flap valves#40.14.16.00.00
+unspsc7#40.14.16.16.00#Valve parts and accessories#40.14.16.00.00
+unspsc7#40.14.16.17.00#Angle globe valves#40.14.16.00.00
+unspsc7#40.14.16.18.00#Ball check valves#40.14.16.00.00
+unspsc7#40.14.16.19.00#Butterfly lug pattern valves#40.14.16.00.00
+unspsc7#40.14.16.20.00#Butterfly wafer pattern valves#40.14.16.00.00
+unspsc7#40.14.16.21.00#Diaphragm valves#40.14.16.00.00
+unspsc7#40.14.16.22.00#Inline check valves#40.14.16.00.00
+unspsc7#40.14.16.23.00#Knife gate valves#40.14.16.00.00
+unspsc7#40.14.16.24.00#Lubricated plug valves#40.14.16.00.00
+unspsc7#40.14.16.25.00#Mud or slush valves#40.14.16.00.00
+unspsc7#40.14.16.26.00#Nonlubricated plug valves#40.14.16.00.00
+unspsc7#40.14.16.27.00#Orifice valves#40.14.16.00.00
+unspsc7#40.14.16.28.00#Pilot valves#40.14.16.00.00
+unspsc7#40.14.16.29.00#Pinch valves#40.14.16.00.00
+unspsc7#40.14.16.30.00#Piston check valves#40.14.16.00.00
+unspsc7#40.14.16.31.00#Pump valves#40.14.16.00.00
+unspsc7#40.14.16.32.00#Sentinel valves#40.14.16.00.00
+unspsc7#40.14.16.33.00#Slider valves#40.14.16.00.00
+unspsc7#40.14.16.34.00#Swing check valves#40.14.16.00.00
+unspsc7#40.14.16.35.00#Turbine valves#40.14.16.00.00
+unspsc7#40.14.16.36.00#Valve kits#40.14.16.00.00
+unspsc7#40.14.16.37.00#Wafer check valves#40.14.16.00.00
+unspsc7#40.14.17.00.00#Hardware and fittings#40.14.00.00.00
+unspsc7#40.14.17.01.00#Drains#40.14.17.00.00
+unspsc7#40.14.17.02.00#Faucets#40.14.17.00.00
+unspsc7#40.14.17.03.00#Shower heads#40.14.17.00.00
+unspsc7#40.14.17.04.00#Spigots#40.14.17.00.00
+unspsc7#40.14.17.05.00#Spouts#40.14.17.00.00
+unspsc7#40.14.17.06.00#Pipe plugs#40.14.17.00.00
+unspsc7#40.14.17.07.00#Pipe clamps#40.14.17.00.00
+unspsc7#40.14.17.08.00#Liquid traps#40.14.17.00.00
+unspsc7#40.14.17.09.00#Steam traps#40.14.17.00.00
+unspsc7#40.14.17.10.00#Plumbing flanges#40.14.17.00.00
+unspsc7#40.14.17.11.00#Metal or rubber expansion joints#40.14.17.00.00
+unspsc7#40.14.17.12.00#Pipe caps#40.14.17.00.00
+unspsc7#40.14.17.13.00#Plumbing unions#40.14.17.00.00
+unspsc7#40.14.17.14.00#Plumbing crosses#40.14.17.00.00
+unspsc7#40.14.17.15.00#Plumbing nipples#40.14.17.00.00
+unspsc7#40.14.17.16.00#P traps#40.14.17.00.00
+unspsc7#40.14.17.17.00#Pipe bends#40.14.17.00.00
+unspsc7#40.14.17.18.00#Plumbing elbows#40.14.17.00.00
+unspsc7#40.14.17.19.00#Plumbing adapters#40.14.17.00.00
+unspsc7#40.14.17.20.00#Plumbing connectors#40.14.17.00.00
+unspsc7#40.14.17.21.00#Plumbing couplings#40.14.17.00.00
+unspsc7#40.14.17.22.00#Half couplings#40.14.17.00.00
+unspsc7#40.14.17.23.00#Reducing couplings#40.14.17.00.00
+unspsc7#40.14.17.24.00#Plumbing bushings#40.14.17.00.00
+unspsc7#40.14.17.25.00#Plumbing hangers#40.14.17.00.00
+unspsc7#40.14.17.26.00#Hydrants#40.14.17.00.00
+unspsc7#40.14.17.27.00#Plumbing vents#40.14.17.00.00
+unspsc7#40.14.17.28.00#Fluid regulators#40.14.17.00.00
+unspsc7#40.14.17.29.00#Plumbing tees#40.14.17.00.00
+unspsc7#40.14.17.30.00#Strainers#40.14.17.00.00
+unspsc7#40.14.17.31.00#Nozzles#40.14.17.00.00
+unspsc7#40.14.17.32.00#Plumbing spiders#40.14.17.00.00
+unspsc7#40.14.17.33.00#Pipe fitting#40.14.17.00.00
+unspsc7#40.14.17.34.00#Hose fitting#40.14.17.00.00
+unspsc7#40.14.17.35.00#Funnels#40.14.17.00.00
+unspsc7#40.14.17.36.00#Grease fitting#40.14.17.00.00
+unspsc7#40.14.17.37.00#Diaphragms#40.14.17.00.00
+unspsc7#40.14.18.00.00#Tube and tubing#40.14.00.00.00
+unspsc7#40.14.18.01.00#Ferrous alloy tubing#40.14.18.00.00
+unspsc7#40.14.18.02.00#Copper tubing#40.14.18.00.00
+unspsc7#40.14.18.03.00#Titanium tubing#40.14.18.00.00
+unspsc7#40.14.18.04.00#Magnesium tubing#40.14.18.00.00
+unspsc7#40.14.18.05.00#Tin tubing#40.14.18.00.00
+unspsc7#40.14.18.06.00#Brass tubing#40.14.18.00.00
+unspsc7#40.14.18.07.00#Lead tubing#40.14.18.00.00
+unspsc7#40.14.18.08.00#Bronze tubing#40.14.18.00.00
+unspsc7#40.14.18.09.00#Zinc tubing#40.14.18.00.00
+unspsc7#40.14.18.10.00#Steel tubing#40.14.18.00.00
+unspsc7#40.14.18.11.00#Iron tubing#40.14.18.00.00
+unspsc7#40.14.18.12.00#Cement tubing#40.14.18.00.00
+unspsc7#40.14.18.13.00#Plastic tubing#40.14.18.00.00
+unspsc7#40.14.18.14.00#Rubber tubing#40.14.18.00.00
+unspsc7#40.14.18.15.00#Glass tubing#40.14.18.00.00
+unspsc7#40.14.18.16.00#Stone tubing#40.14.18.00.00
+unspsc7#40.14.18.17.00#Non ferrous alloy tubing#40.14.18.00.00
+unspsc7#40.14.18.18.00#Aluminum tubing#40.14.18.00.00
+unspsc7#40.14.18.19.00#Stainless steel tubing#40.14.18.00.00
+unspsc7#40.14.18.20.00#Precious metal tubing#40.14.18.00.00
+unspsc7#40.14.18.21.00#Nylon tubing#40.14.18.00.00
+unspsc7#40.14.19.00.00#Ducts#40.14.00.00.00
+unspsc7#40.14.19.01.00#Flexible ducts#40.14.19.00.00
+unspsc7#40.14.19.02.00#Rigid ducts#40.14.19.00.00
+unspsc7#40.14.20.00.00#Hoses#40.14.00.00.00
+unspsc7#40.14.20.01.00#Acid hoses#40.14.20.00.00
+unspsc7#40.14.20.02.00#Air hoses#40.14.20.00.00
+unspsc7#40.14.20.03.00#Drill hoses#40.14.20.00.00
+unspsc7#40.14.20.04.00#Marine hoses#40.14.20.00.00
+unspsc7#40.14.20.05.00#Material handling hoses#40.14.20.00.00
+unspsc7#40.14.20.06.00#Oil hoses#40.14.20.00.00
+unspsc7#40.14.20.07.00#Special hoses#40.14.20.00.00
+unspsc7#40.14.20.08.00#Water hoses#40.14.20.00.00
+unspsc7#40.14.20.09.00#Air water gas multipurpose hoses#40.14.20.00.00
+unspsc7#40.14.20.10.00#Teflon lined hoses#40.14.20.00.00
+unspsc7#40.14.21.00.00#Pipe#40.14.00.00.00
+unspsc7#40.14.21.01.00#Carbon steel pipe#40.14.21.00.00
+unspsc7#40.14.21.02.00#Ductile iron pipe#40.14.21.00.00
+unspsc7#40.14.21.03.00#High nickel alloy pipe#40.14.21.00.00
+unspsc7#40.14.21.04.00#High yield steel pipe#40.14.21.00.00
+unspsc7#40.14.21.05.00#Ferritic alloy pipe#40.14.21.00.00
+unspsc7#40.14.21.06.00#Aluminum pipe#40.14.21.00.00
+unspsc7#40.14.21.07.00#Brass pipe#40.14.21.00.00
+unspsc7#40.14.21.08.00#Bronze pipe#40.14.21.00.00
+unspsc7#40.14.21.09.00#Concrete pipe#40.14.21.00.00
+unspsc7#40.14.21.10.00#Copper pipe#40.14.21.00.00
+unspsc7#40.14.21.11.00#Cast iron pipe#40.14.21.00.00
+unspsc7#40.14.21.12.00#Lead pipe#40.14.21.00.00
+unspsc7#40.14.21.13.00#Magnesium pipe#40.14.21.00.00
+unspsc7#40.14.21.14.00#Non ferrous pipe#40.14.21.00.00
+unspsc7#40.14.21.15.00#Plastic pipe#40.14.21.00.00
+unspsc7#40.14.21.16.00#Rubber pipe#40.14.21.00.00
+unspsc7#40.14.21.17.00#Stainless steel pipe#40.14.21.00.00
+unspsc7#40.14.21.18.00#Tin pipe#40.14.21.00.00
+unspsc7#40.14.21.19.00#Titanium pipe#40.14.21.00.00
+unspsc7#40.14.21.20.00#Zinc pipe#40.14.21.00.00
+unspsc7#40.14.21.21.00#Hose reels#40.14.21.00.00
+unspsc7#40.14.22.00.00#Fluid and gas regulators#40.14.00.00.00
+unspsc7#40.14.22.01.00#Gas regulators#40.14.22.00.00
+unspsc7#40.14.22.02.00#Fluid regulators#40.14.22.00.00
+unspsc7#40.14.23.00.00#Pipe fittings#40.14.00.00.00
+unspsc7#40.14.23.01.00#Pipe angle face rings#40.14.23.00.00
+unspsc7#40.14.23.02.00#Pipe branch outlets#40.14.23.00.00
+unspsc7#40.14.23.03.00#Pipe laterals#40.14.23.00.00
+unspsc7#40.14.23.04.00#Pipe inserts#40.14.23.00.00
+unspsc7#40.14.23.05.00#Pipe reducers#40.14.23.00.00
+unspsc7#40.14.23.06.00#Pipe saddles#40.14.23.00.00
+unspsc7#40.14.23.07.00#Pipe stubends#40.14.23.00.00
+unspsc7#40.14.23.08.00#Pipe wyes#40.14.23.00.00
+unspsc7#40.14.23.09.00#Pipe bends#40.14.23.00.00
+unspsc7#40.14.23.10.00#Pipe caps#40.14.23.00.00
+unspsc7#40.14.23.11.00#Pipe half couplings#40.14.23.00.00
+unspsc7#40.14.23.12.00#Pipe expansion joints#40.14.23.00.00
+unspsc7#40.14.23.13.00#Pipe plugs#40.14.23.00.00
+unspsc7#40.14.23.14.00#Pipe bushings#40.14.23.00.00
+unspsc7#40.14.23.15.00#Pipe couplings#40.14.23.00.00
+unspsc7#40.14.23.16.00#Pipe crosses#40.14.23.00.00
+unspsc7#40.14.23.17.00#Pipe elbows#40.14.23.00.00
+unspsc7#40.14.23.18.00#Pipe nipples#40.14.23.00.00
+unspsc7#40.14.23.19.00#Pipe tees#40.14.23.00.00
+unspsc7#40.14.23.20.00#Pipe unions#40.14.23.00.00
+unspsc7#40.14.23.21.00#Pipe reducing couplings#40.14.23.00.00
+unspsc7#40.14.23.22.00#Pipe repair clamps#40.14.23.00.00
+unspsc7#40.14.23.23.00#Rupture disk#40.14.23.00.00
+unspsc7#40.14.24.00.00#Pipe flanges#40.14.00.00.00
+unspsc7#40.14.24.01.00#Ammonia flanges#40.14.24.00.00
+unspsc7#40.14.24.02.00#Backup flanges#40.14.24.00.00
+unspsc7#40.14.24.03.00#Blind flanges#40.14.24.00.00
+unspsc7#40.14.24.04.00#Lapjoint flanges#40.14.24.00.00
+unspsc7#40.14.24.05.00#Long weldneck flanges#40.14.24.00.00
+unspsc7#40.14.24.06.00#Orifice flanges#40.14.24.00.00
+unspsc7#40.14.24.07.00#Plate flanges#40.14.24.00.00
+unspsc7#40.14.24.08.00#Slipon flanges#40.14.24.00.00
+unspsc7#40.14.24.09.00#Socketweld flanges#40.14.24.00.00
+unspsc7#40.14.24.10.00#Spectacle blind flanges#40.14.24.00.00
+unspsc7#40.14.24.11.00#Threaded flanges#40.14.24.00.00
+unspsc7#40.14.24.12.00#Weldneck flanges#40.14.24.00.00
+unspsc7#40.14.25.00.00#Traps and strainers#40.14.00.00.00
+unspsc7#40.14.25.01.00#Liquid strainers#40.14.25.00.00
+unspsc7#40.14.25.02.00#Liquid traps#40.14.25.00.00
+unspsc7#40.14.25.03.00#Steam traps#40.14.25.00.00
+unspsc7#40.14.25.04.00#Steam strainers#40.14.25.00.00
+unspsc7#40.14.26.00.00#Tube fittings#40.14.00.00.00
+unspsc7#40.14.26.01.00#Brass tube fittings#40.14.26.00.00
+unspsc7#40.14.26.02.00#Carbon steel tube fittings#40.14.26.00.00
+unspsc7#40.14.26.03.00#Stainless steel tube fittings#40.14.26.00.00
+unspsc7#40.15.00.00.00#Industrial pumps and compressors#40.00.00.00.00
+unspsc7#40.15.15.00.00#Pumps#40.15.00.00.00
+unspsc7#40.15.15.01.00#Air pumps#40.15.15.00.00
+unspsc7#40.15.15.02.00#Vacuum pumps#40.15.15.00.00
+unspsc7#40.15.15.03.00#Centrifugal pumps#40.15.15.00.00
+unspsc7#40.15.15.04.00#Circulating pumps#40.15.15.00.00
+unspsc7#40.15.15.05.00#Dosing pumps#40.15.15.00.00
+unspsc7#40.15.15.06.00#Hand pumps#40.15.15.00.00
+unspsc7#40.15.15.07.00#Irrigation pumps#40.15.15.00.00
+unspsc7#40.15.15.08.00#Mud pumps#40.15.15.00.00
+unspsc7#40.15.15.09.00#Reciprocating pumps#40.15.15.00.00
+unspsc7#40.15.15.10.00#Water pumps#40.15.15.00.00
+unspsc7#40.15.15.11.00#Well pumps#40.15.15.00.00
+unspsc7#40.15.15.12.00#Sump pumps#40.15.15.00.00
+unspsc7#40.15.15.13.00#Submersible pumps#40.15.15.00.00
+unspsc7#40.15.15.14.00#Steam pumps#40.15.15.00.00
+unspsc7#40.15.15.15.00#Solenoid pumps#40.15.15.00.00
+unspsc7#40.15.15.16.00#Shear pumps#40.15.15.00.00
+unspsc7#40.15.15.17.00#Sewage pumps#40.15.15.00.00
+unspsc7#40.15.15.18.00#Sealless pumps#40.15.15.00.00
+unspsc7#40.15.15.19.00#Sanitary pumps#40.15.15.00.00
+unspsc7#40.15.15.20.00#Sampling pumps#40.15.15.00.00
+unspsc7#40.15.15.21.00#Rotary pumps#40.15.15.00.00
+unspsc7#40.15.15.22.00#Reverse osmosis pumps#40.15.15.00.00
+unspsc7#40.15.15.23.00#Positive displacement pumps#40.15.15.00.00
+unspsc7#40.15.15.24.00#Oil pumps#40.15.15.00.00
+unspsc7#40.15.15.25.00#Sludge pumps#40.15.15.00.00
+unspsc7#40.15.15.26.00#Turbine pumps#40.15.15.00.00
+unspsc7#40.15.15.27.00#Plunger pumps#40.15.15.00.00
+unspsc7#40.15.15.28.00#Oscillating pumps#40.15.15.00.00
+unspsc7#40.15.15.29.00#Drum pumps#40.15.15.00.00
+unspsc7#40.15.15.30.00#Dredge pumps#40.15.15.00.00
+unspsc7#40.15.15.31.00#Dewatering pumps#40.15.15.00.00
+unspsc7#40.15.15.32.00#Fuel pumps#40.15.15.00.00
+unspsc7#40.15.15.33.00#Hydraulic pumps#40.15.15.00.00
+unspsc7#40.15.15.34.00#Cryogenic pumps#40.15.15.00.00
+unspsc7#40.15.15.35.00#Sludge pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.36.00#Sewage pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.37.00#Submersible pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.38.00#Water pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.39.00#Well pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.40.00#Sump pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.41.00#Dosing pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.42.00#Centrifugal pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.43.00#Circulation pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.44.00#Rotary pump spare parts#40.15.15.00.00
+unspsc7#40.15.15.45.00#Pump parts and accessories#40.15.15.00.00
+unspsc7#40.15.15.46.00#Axial split pumps#40.15.15.00.00
+unspsc7#40.15.15.47.00#Deepwell pumps#40.15.15.00.00
+unspsc7#40.15.15.48.00#Diaphragm pumps#40.15.15.00.00
+unspsc7#40.15.15.49.00#Double diaphragm pumps#40.15.15.00.00
+unspsc7#40.15.15.50.00#Duplex pumps#40.15.15.00.00
+unspsc7#40.15.15.51.00#Gear pumps#40.15.15.00.00
+unspsc7#40.15.15.52.00#Metering or injection or proportioning pumps#40.15.15.00.00
+unspsc7#40.15.15.53.00#Progressive cavity pumps#40.15.15.00.00
+unspsc7#40.15.15.54.00#Ram pumps#40.15.15.00.00
+unspsc7#40.15.15.55.00#Rotary cam pumps#40.15.15.00.00
+unspsc7#40.15.15.56.00#Rotary lobe pumps#40.15.15.00.00
+unspsc7#40.15.15.57.00#Rotating piston pumps#40.15.15.00.00
+unspsc7#40.15.15.58.00#Screw Pumps#40.15.15.00.00
+unspsc7#40.15.15.59.00#Simplex pumps#40.15.15.00.00
+unspsc7#40.15.15.60.00#Sliding vane pumps#40.15.15.00.00
+unspsc7#40.15.15.61.00#Triplex pumps#40.15.15.00.00
+unspsc7#40.15.15.62.00#Worm pumps#40.15.15.00.00
+unspsc7#40.15.16.00.00#Compressors#40.15.00.00.00
+unspsc7#40.15.16.01.00#Air compressors#40.15.16.00.00
+unspsc7#40.15.16.02.00#Axial flow compressors#40.15.16.00.00
+unspsc7#40.15.16.03.00#Diaphragm compressors#40.15.16.00.00
+unspsc7#40.15.16.04.00#Gas compressors#40.15.16.00.00
+unspsc7#40.15.16.05.00#Motor compressors#40.15.16.00.00
+unspsc7#40.15.16.06.00#Reciprocating compressors#40.15.16.00.00
+unspsc7#40.15.16.07.00#Refrigerant compressors#40.15.16.00.00
+unspsc7#40.15.16.08.00#Rotary compressors#40.15.16.00.00
+unspsc7#40.15.16.09.00#Screw compressors#40.15.16.00.00
+unspsc7#40.15.16.10.00#Compressor parts and accessories#40.15.16.00.00
+unspsc7#40.15.16.11.00#Barrel compressors#40.15.16.00.00
+unspsc7#40.15.16.12.00#Centrifugal compressors#40.15.16.00.00
+unspsc7#40.15.16.13.00#Combination compressors#40.15.16.00.00
+unspsc7#40.15.16.14.00#Semi radial compressors#40.15.16.00.00
+unspsc7#40.15.16.15.00#Turbo compressors#40.15.16.00.00
+unspsc7#40.15.16.16.00#Compressor kits#40.15.16.00.00
+unspsc7#40.15.17.00.00#Pump parts and accessories#40.15.00.00.00
+unspsc7#40.15.17.01.00#Pump casings#40.15.17.00.00
+unspsc7#40.15.17.02.00#Pump packings#40.15.17.00.00
+unspsc7#40.16.00.00.00#Industrial filtering and purification#40.00.00.00.00
+unspsc7#40.16.15.00.00#Filters#40.16.00.00.00
+unspsc7#40.16.15.01.00#Vacuum filters#40.16.15.00.00
+unspsc7#40.16.15.02.00#Water filters#40.16.15.00.00
+unspsc7#40.16.15.03.00#Dust collectors#40.16.15.00.00
+unspsc7#40.16.15.04.00#Oil filters#40.16.15.00.00
+unspsc7#40.16.15.05.00#Air filters#40.16.15.00.00
+unspsc7#40.16.15.06.00#Filtering machinery#40.16.15.00.00
+unspsc7#40.16.15.07.00#Filter membranes#40.16.15.00.00
+unspsc7#40.16.15.08.00#Bag filters#40.16.15.00.00
+unspsc7#40.16.15.09.00#Absorption filters#40.16.15.00.00
+unspsc7#40.16.15.10.00#Bag filters#40.16.15.00.00
+unspsc7#40.16.15.11.00#Coalescing filters#40.16.15.00.00
+unspsc7#40.16.15.12.00#Electronic filters#40.16.15.00.00
+unspsc7#40.16.15.13.00#Fuel filters#40.16.15.00.00
+unspsc7#40.16.15.14.00#Gas pipeline filters#40.16.15.00.00
+unspsc7#40.16.15.15.00#Hydraulic filters#40.16.15.00.00
+unspsc7#40.16.15.16.00#In line filters#40.16.15.00.00
+unspsc7#40.16.15.17.00#Light filters#40.16.15.00.00
+unspsc7#40.16.15.18.00#Microfiber filters#40.16.15.00.00
+unspsc7#40.16.15.19.00#Panel filters#40.16.15.00.00
+unspsc7#40.16.15.20.00#Radial fin filters#40.16.15.00.00
+unspsc7#40.16.15.21.00#Filter Base#40.16.15.00.00
+unspsc7#40.16.15.22.00#Filter Fins#40.16.15.00.00
+unspsc7#40.16.15.23.00#Fuel#40.16.15.00.00
+unspsc7#40.16.15.24.00#Paint#40.16.15.00.00
+unspsc7#40.16.16.00.00#Purification#40.16.00.00.00
+unspsc7#40.16.16.01.00#Air scrubbers#40.16.16.00.00
+unspsc7#40.16.16.02.00#Air cleaners#40.16.16.00.00
+unspsc7#40.16.17.00.00#Separators#40.16.00.00.00
+unspsc7#40.16.17.01.00#Centrifuges#40.16.17.00.00
+unspsc7#40.16.17.02.00#Wet scrubbers#40.16.17.00.00
+unspsc7#40.16.17.03.00#Mist eliminators#40.16.17.00.00
+unspsc7#40.16.18.00.00#Filter media#40.16.00.00.00
+unspsc7#40.16.18.01.00#Metal fabric media#40.16.18.00.00
+unspsc7#40.16.18.02.00#Pressed felts#40.16.18.00.00
+unspsc7#40.16.18.03.00#Filter papers#40.16.18.00.00
+unspsc7#40.16.18.05.00#Filter cloth#40.16.18.00.00
+unspsc7#41.00.00.00.00#Laboratory and Measuring and Observing and Testing Equipment#41.00.00.00.00
+unspsc7#41.10.00.00.00#Laboratory and scientific equipment#41.00.00.00.00
+unspsc7#41.10.15.00.00#Laboratory blending and dispersing and homogenizing and mixing and stirring equipment#41.10.00.00.00
+unspsc7#41.10.15.01.00#Mixers or blenders or emulsifiers#41.10.15.00.00
+unspsc7#41.10.15.02.00#Stomachers#41.10.15.00.00
+unspsc7#41.10.15.03.00#Laboratory sprayers#41.10.15.00.00
+unspsc7#41.10.15.04.00#Homogenisers#41.10.15.00.00
+unspsc7#41.10.15.05.00#French pressure cells#41.10.15.00.00
+unspsc7#41.10.15.06.00#Roller mixers#41.10.15.00.00
+unspsc7#41.10.15.07.00#Rotators#41.10.15.00.00
+unspsc7#41.10.15.08.00#Vibrators#41.10.15.00.00
+unspsc7#41.10.15.10.00#Magnetic spin bars or retrievers#41.10.15.00.00
+unspsc7#41.10.15.11.00#Stirring tables#41.10.15.00.00
+unspsc7#41.10.15.12.00#Multi bank or flocculation equipment#41.10.15.00.00
+unspsc7#41.10.15.13.00#Shakers#41.10.15.00.00
+unspsc7#41.10.15.14.00#Laboratory centrifuges#41.10.15.00.00
+unspsc7#41.10.15.15.00#Liquid measuring cans#41.10.15.00.00
+unspsc7#41.10.15.16.00#Liquid dispensers#41.10.15.00.00
+unspsc7#41.10.16.00.00#Laboratory fixtures and accessories#41.10.00.00.00
+unspsc7#41.10.16.03.00#Laboratory stands or clamps or tongs#41.10.16.00.00
+unspsc7#41.10.16.04.00#Slide containers#41.10.16.00.00
+unspsc7#41.10.16.05.00#Slide drying plates#41.10.16.00.00
+unspsc7#41.10.16.07.00#Microslide making equipment#41.10.16.00.00
+unspsc7#41.10.16.08.00#Microslide storage equipment#41.10.16.00.00
+unspsc7#41.10.16.09.00#Static eliminators#41.10.16.00.00
+unspsc7#41.10.16.11.00#Slide warmers#41.10.16.00.00
+unspsc7#41.10.17.00.00#Laboratory boring and grinding and cutting and crushing and pressing equipment#41.10.00.00.00
+unspsc7#41.10.17.01.00#Mills#41.10.17.00.00
+unspsc7#41.10.17.02.00#Pestle or mortars#41.10.17.00.00
+unspsc7#41.10.17.03.00#Tissue grinders#41.10.17.00.00
+unspsc7#41.10.17.04.00#Microtomes#41.10.17.00.00
+unspsc7#41.10.17.05.00#Crushers or pulverisers#41.10.17.00.00
+unspsc7#41.10.17.06.00#Disintegrators#41.10.17.00.00
+unspsc7#41.10.17.07.00#Laboratory presses#41.10.17.00.00
+unspsc7#41.10.18.00.00#Laboratory electron and solid state physics equipment#41.10.00.00.00
+unspsc7#41.10.18.01.00#Electron guns#41.10.18.00.00
+unspsc7#41.10.18.02.00#X ray generators#41.10.18.00.00
+unspsc7#41.10.18.03.00#Coulometers#41.10.18.00.00
+unspsc7#41.10.18.04.00#Electroscopes#41.10.18.00.00
+unspsc7#41.10.18.05.00#Fluxmeters#41.10.18.00.00
+unspsc7#41.10.18.06.00#Magnetometers#41.10.18.00.00
+unspsc7#41.10.18.07.00#Electron diffraction apparatus#41.10.18.00.00
+unspsc7#41.10.18.08.00#Neutron diffraction apparatus#41.10.18.00.00
+unspsc7#41.10.18.09.00#Optical diffraction apparatus#41.10.18.00.00
+unspsc7#41.10.18.10.00#Diffractometers#41.10.18.00.00
+unspsc7#41.10.19.00.00#Laboratory ionic equipment#41.10.00.00.00
+unspsc7#41.10.19.01.00#Ion sources#41.10.19.00.00
+unspsc7#41.10.19.02.00#Ion exchange apparatus#41.10.19.00.00
+unspsc7#41.10.19.03.00#Ion implantation equipment#41.10.19.00.00
+unspsc7#41.10.20.00.00#Sampling and purification equipment#41.10.00.00.00
+unspsc7#41.10.20.01.00#Sample changers#41.10.20.00.00
+unspsc7#41.10.20.02.00#Sample oxidiser#41.10.20.00.00
+unspsc7#41.10.20.03.00#Sample preparation line#41.10.20.00.00
+unspsc7#41.10.20.04.00#Sample preparation bombs#41.10.20.00.00
+unspsc7#41.10.20.05.00#Water samplers#41.10.20.00.00
+unspsc7#41.10.20.06.00#Air samplers or collectors#41.10.20.00.00
+unspsc7#41.10.20.07.00#Reagent kits for use with air samplers#41.10.20.00.00
+unspsc7#41.10.20.08.00#Filters or other spare parts for samplers#41.10.20.00.00
+unspsc7#41.10.20.09.00#Dust fall holders or jars#41.10.20.00.00
+unspsc7#41.10.20.11.00#Sulphur dioxide or smoke samplers#41.10.20.00.00
+unspsc7#41.10.20.12.00#Sample applicators#41.10.20.00.00
+unspsc7#41.10.20.13.00#Plant samples analysis equipment#41.10.20.00.00
+unspsc7#41.10.20.14.00#Air pollutant samplers#41.10.20.00.00
+unspsc7#41.10.20.15.00#Water purification reagents#41.10.20.00.00
+unspsc7#41.10.20.16.00#Deionisation or demineralisation equipment#41.10.20.00.00
+unspsc7#41.10.20.17.00#Base exchange equipment#41.10.20.00.00
+unspsc7#41.10.20.18.00#Reverse osmosis equipment#41.10.20.00.00
+unspsc7#41.10.20.19.00#Ultra violet water purification units#41.10.20.00.00
+unspsc7#41.10.20.20.00#Ultra pure water systems#41.10.20.00.00
+unspsc7#41.10.20.21.00#Water analysis systems#41.10.20.00.00
+unspsc7#41.10.20.22.00#Dehydrators#41.10.20.00.00
+unspsc7#41.10.20.23.00#Deoxiders#41.10.20.00.00
+unspsc7#41.10.20.24.00#Dissolvers#41.10.20.00.00
+unspsc7#41.10.20.25.00#Specimen holders#41.10.20.00.00
+unspsc7#41.10.20.26.00#Specimen collectors#41.10.20.00.00
+unspsc7#41.10.20.27.00#Sample holders#41.10.20.00.00
+unspsc7#41.10.20.28.00#Lubricant samplers#41.10.20.00.00
+unspsc7#41.10.23.00.00#Laboratory fermentation and incubating equipment#41.10.00.00.00
+unspsc7#41.10.23.01.00#Standard fermentation units#41.10.23.00.00
+unspsc7#41.10.23.02.00#Continuous culture apparatus#41.10.23.00.00
+unspsc7#41.10.23.03.00#Anaerobic jars#41.10.23.00.00
+unspsc7#41.10.23.04.00#Digestion systems#41.10.23.00.00
+unspsc7#41.10.23.05.00#Water jacketed incubators#41.10.23.00.00
+unspsc7#41.10.23.06.00#CO2 incubators#41.10.23.00.00
+unspsc7#41.10.23.07.00#Tissue culture incubators#41.10.23.00.00
+unspsc7#41.10.23.08.00#Incubator ovens#41.10.23.00.00
+unspsc7#41.10.23.09.00#Cooled incubators (BOD)#41.10.23.00.00
+unspsc7#41.10.23.10.00#Shaking incubators#41.10.23.00.00
+unspsc7#41.10.23.11.00#Inspissators#41.10.23.00.00
+unspsc7#41.10.23.12.00#Plate incubators#41.10.23.00.00
+unspsc7#41.10.23.13.00#In vitro culture equipment#41.10.23.00.00
+unspsc7#41.10.23.14.00#Bacteria equipment#41.10.23.00.00
+unspsc7#41.10.24.00.00#Laboratory heating and drying equipment#41.10.00.00.00
+unspsc7#41.10.24.01.00#Gas burners#41.10.24.00.00
+unspsc7#41.10.24.02.00#Spirit burners#41.10.24.00.00
+unspsc7#41.10.24.03.00#Laboratory incinerators#41.10.24.00.00
+unspsc7#41.10.24.04.00#Laboratory heaters#41.10.24.00.00
+unspsc7#41.10.24.05.00#Mantles or tapes#41.10.24.00.00
+unspsc7#41.10.24.06.00#Hot plates#41.10.24.00.00
+unspsc7#41.10.24.07.00#Warming cabinets#41.10.24.00.00
+unspsc7#41.10.24.08.00#Drying ovens#41.10.24.00.00
+unspsc7#41.10.24.09.00#Induction dryers#41.10.24.00.00
+unspsc7#41.10.24.10.00#Infrared dryers#41.10.24.00.00
+unspsc7#41.10.24.11.00#Spray dryers#41.10.24.00.00
+unspsc7#41.10.24.12.00#Hot air blowers#41.10.24.00.00
+unspsc7#41.10.24.13.00#Drying cabinets#41.10.24.00.00
+unspsc7#41.10.24.14.00#Freeze dryers#41.10.24.00.00
+unspsc7#41.10.24.15.00#Laboratory furnaces#41.10.24.00.00
+unspsc7#41.10.24.16.00#Ageing ovens#41.10.24.00.00
+unspsc7#41.10.24.18.00#Quartz oven pots#41.10.24.00.00
+unspsc7#41.10.24.19.00#Microwave or radiant heat ovens#41.10.24.00.00
+unspsc7#41.10.24.20.00#Desiccators#41.10.24.00.00
+unspsc7#41.10.24.21.00#Temperature cycling chambers#41.10.24.00.00
+unspsc7#41.10.25.00.00#Laboratory entomological equipment and accessories#41.10.00.00.00
+unspsc7#41.10.25.01.00#Insect containers#41.10.25.00.00
+unspsc7#41.10.25.02.00#Rearing facilities for entomology#41.10.25.00.00
+unspsc7#41.10.25.03.00#Fabric or netting for entomology#41.10.25.00.00
+unspsc7#41.10.25.04.00#Entomological pinning equipment#41.10.25.00.00
+unspsc7#41.10.25.05.00#Entomological mounting materials#41.10.25.00.00
+unspsc7#41.10.25.06.00#Entomological trays#41.10.25.00.00
+unspsc7#41.10.25.07.00#Entomological catching equipment#41.10.25.00.00
+unspsc7#41.10.25.08.00#Entomological aspirators#41.10.25.00.00
+unspsc7#41.10.25.09.00#Entomological dippers#41.10.25.00.00
+unspsc7#41.10.25.10.00#Entomological monocups#41.10.25.00.00
+unspsc7#41.10.25.11.00#Entomological sticky traps#41.10.25.00.00
+unspsc7#41.10.25.12.00#Insect test kits#41.10.25.00.00
+unspsc7#41.10.25.13.00#Entomological display units#41.10.25.00.00
+unspsc7#41.10.26.00.00#Animal laboratory equipment and accessories#41.10.00.00.00
+unspsc7#41.10.26.01.00#Cages for small animals#41.10.26.00.00
+unspsc7#41.10.26.02.00#Aquaria equipment#41.10.26.00.00
+unspsc7#41.10.26.03.00#Animal identification supplies#41.10.26.00.00
+unspsc7#41.10.26.04.00#Animal catching devices#41.10.26.00.00
+unspsc7#41.10.26.05.00#Fish aeration systems#41.10.26.00.00
+unspsc7#41.10.26.06.00#Animal feeding needles#41.10.26.00.00
+unspsc7#41.10.27.00.00#Crystallography equipment#41.10.00.00.00
+unspsc7#41.10.27.01.00#Crystal lattice models#41.10.27.00.00
+unspsc7#41.10.27.02.00#Scintillation crystal assemblies#41.10.27.00.00
+unspsc7#41.10.27.03.00#Light scattering equipment#41.10.27.00.00
+unspsc7#41.10.27.04.00#X ray diffraction equipment#41.10.27.00.00
+unspsc7#41.10.27.05.00#Crystallisers#41.10.27.00.00
+unspsc7#41.10.27.06.00#Crystal growing equipment#41.10.27.00.00
+unspsc7#41.10.29.00.00#Histology equipment#41.10.00.00.00
+unspsc7#41.10.29.01.00#Tissue embedding stations#41.10.29.00.00
+unspsc7#41.10.29.02.00#Embedding molds#41.10.29.00.00
+unspsc7#41.10.29.03.00#Embedding capsules#41.10.29.00.00
+unspsc7#41.10.29.04.00#Embedding compounds#41.10.29.00.00
+unspsc7#41.10.29.05.00#Histological staining apparatus#41.10.29.00.00
+unspsc7#41.10.29.09.00#Tissue processors#41.10.29.00.00
+unspsc7#41.10.29.10.00#Tissue culture apparatus#41.10.29.00.00
+unspsc7#41.10.29.11.00#Histological knives or knife holders#41.10.29.00.00
+unspsc7#41.10.29.12.00#Histological glass knife makers#41.10.29.00.00
+unspsc7#41.10.29.13.00#Histological hones or straps or compounds#41.10.29.00.00
+unspsc7#41.10.29.14.00#Ultrasonic disintegrators#41.10.29.00.00
+unspsc7#41.10.30.00.00#Laboratory cooling equipment#41.10.00.00.00
+unspsc7#41.10.30.01.00#Refrigerated cooling plate probes#41.10.30.00.00
+unspsc7#41.10.30.02.00#Freezing spray aerosols#41.10.30.00.00
+unspsc7#41.10.30.03.00#Cryostats#41.10.30.00.00
+unspsc7#41.10.30.04.00#Fan circulated ovens#41.10.30.00.00
+unspsc7#41.10.30.05.00#Ultra cold cabinets#41.10.30.00.00
+unspsc7#41.10.30.06.00#Cryogenic freezers#41.10.30.00.00
+unspsc7#41.10.30.07.00#Chilling units or cold water circulation#41.10.30.00.00
+unspsc7#41.10.30.08.00#Refrigerated cooling modules#41.10.30.00.00
+unspsc7#41.10.30.09.00#Cadaver storage refrigerators#41.10.30.00.00
+unspsc7#41.10.31.00.00#Laboratory supplies#41.10.00.00.00
+unspsc7#41.10.31.01.00#Test tubes#41.10.31.00.00
+unspsc7#41.10.31.03.00#Pipettes or accessories#41.10.31.00.00
+unspsc7#41.10.31.04.00#Flasks#41.10.31.00.00
+unspsc7#41.10.31.05.00#Beakers#41.10.31.00.00
+unspsc7#41.10.31.06.00#Stirring rods#41.10.31.00.00
+unspsc7#41.10.31.07.00#Laboratory or sampling syringes#41.10.31.00.00
+unspsc7#41.10.31.08.00#Desiccants#41.10.31.00.00
+unspsc7#41.10.31.09.00#Watch glasses#41.10.31.00.00
+unspsc7#41.10.31.10.00#Burets#41.10.31.00.00
+unspsc7#41.10.31.11.00#Measuring cylinder#41.10.31.00.00
+unspsc7#41.10.31.12.00#Laboratory dishes#41.10.31.00.00
+unspsc7#41.10.31.13.00#Slides#41.10.31.00.00
+unspsc7#41.10.31.14.00#Stoppers#41.10.31.00.00
+unspsc7#41.10.31.15.00#Tubing connectors#41.10.31.00.00
+unspsc7#41.10.31.16.00#Laboratory cases#41.10.31.00.00
+unspsc7#41.10.31.17.00#Laboratory scoops or spatulas#41.10.31.00.00
+unspsc7#41.10.32.00.00#Laboratory cleaning equipment#41.10.00.00.00
+unspsc7#41.10.32.01.00#Chemical engineering washers#41.10.32.00.00
+unspsc7#41.10.32.02.00#Laboratory washing machines#41.10.32.00.00
+unspsc7#41.10.32.03.00#Pipette washers#41.10.32.00.00
+unspsc7#41.10.32.04.00#Ultrasonic cleaners#41.10.32.00.00
+unspsc7#41.10.33.00.00#Fluid mechanics equipment#41.10.00.00.00
+unspsc7#41.10.33.01.00#Liquid scintillation counters#41.10.33.00.00
+unspsc7#41.10.33.02.00#Battery acid hydrometers#41.10.33.00.00
+unspsc7#41.10.33.03.00#Densitometers#41.10.33.00.00
+unspsc7#41.10.33.04.00#Vacuum ovens#41.10.33.00.00
+unspsc7#41.10.33.05.00#High vacuum equipment#41.10.33.00.00
+unspsc7#41.10.33.06.00#Pneumatic vacuum equipment#41.10.33.00.00
+unspsc7#41.10.33.07.00#Vacuum or mercury vapour equipment#41.10.33.00.00
+unspsc7#41.10.33.08.00#High vacuum combustion apparatus#41.10.33.00.00
+unspsc7#41.10.33.09.00#Flow injection analysis equipment#41.10.33.00.00
+unspsc7#41.10.33.10.00#Gas or vapour concentration measuring instruments#41.10.33.00.00
+unspsc7#41.10.33.11.00#Manometers#41.10.33.00.00
+unspsc7#41.10.33.12.00#Viscosimeters#41.10.33.00.00
+unspsc7#41.10.33.13.00#Depth indicators#41.10.33.00.00
+unspsc7#41.10.33.14.00#Microscopic structure estimation apparatus#41.10.33.00.00
+unspsc7#41.10.33.15.00#Solution strength estimation apparatus#41.10.33.00.00
+unspsc7#41.10.34.00.00#Laboratory environmental conditioning equipment#41.10.00.00.00
+unspsc7#41.10.34.01.00#Contamination control screens#41.10.34.00.00
+unspsc7#41.10.34.02.00#Environmental chambers#41.10.34.00.00
+unspsc7#41.10.34.03.00#Microbiological aircontrol#41.10.34.00.00
+unspsc7#41.10.34.04.00#Growth chambers#41.10.34.00.00
+unspsc7#41.10.34.05.00#Walk in chambers#41.10.34.00.00
+unspsc7#41.10.34.06.00#Glove boxes#41.10.34.00.00
+unspsc7#41.10.35.00.00#Laboratory ventilating equipment#41.10.00.00.00
+unspsc7#41.10.35.01.00#Ebuliometer#41.10.35.00.00
+unspsc7#41.10.35.02.00#Fume hoods#41.10.35.00.00
+unspsc7#41.10.35.03.00#Fume cupboards#41.10.35.00.00
+unspsc7#41.10.35.04.00#Laminar flow cabinets or stations#41.10.35.00.00
+unspsc7#41.10.36.00.00#Laboratory decanting and distilling and evaporating and filtering equipment and supplies#41.10.00.00.00
+unspsc7#41.10.36.01.00#Flask or retort units#41.10.36.00.00
+unspsc7#41.10.36.02.00#Bi distillation units#41.10.36.00.00
+unspsc7#41.10.36.03.00#Evaporators#41.10.36.00.00
+unspsc7#41.10.36.04.00#Vacuum evaporators#41.10.36.00.00
+unspsc7#41.10.36.05.00#Extracting equipment#41.10.36.00.00
+unspsc7#41.10.36.06.00#Line filters#41.10.36.00.00
+unspsc7#41.10.36.07.00#Gel filtration equipment#41.10.36.00.00
+unspsc7#41.10.36.08.00#Ultra filtration equipment#41.10.36.00.00
+unspsc7#41.10.36.09.00#Sintered cell filters#41.10.36.00.00
+unspsc7#41.10.36.10.00#Thin channel filtration equipment#41.10.36.00.00
+unspsc7#41.10.36.11.00#Reverse osmosis filtration equipment#41.10.36.00.00
+unspsc7#41.10.36.12.00#Molecular filtration equipment#41.10.36.00.00
+unspsc7#41.10.36.13.00#Cartridge element filters#41.10.36.00.00
+unspsc7#41.10.36.14.00#Filter holders or cyclones#41.10.36.00.00
+unspsc7#41.10.36.15.00#Multi sheet or press or filter#41.10.36.00.00
+unspsc7#41.10.36.16.00#Air filtration systems#41.10.36.00.00
+unspsc7#41.10.36.17.00#Hepa filters#41.10.36.00.00
+unspsc7#41.10.36.18.00#Fluid presses filter#41.10.36.00.00
+unspsc7#41.10.36.19.00#Sedimentological analyzing unit#41.10.36.00.00
+unspsc7#41.10.36.20.00#Laboratory separators#41.10.36.00.00
+unspsc7#41.10.36.21.00#Laboratory sifting equipment#41.10.36.00.00
+unspsc7#41.10.36.22.00#Test sieves#41.10.36.00.00
+unspsc7#41.10.36.23.00#Laboratory scrubbers#41.10.36.00.00
+unspsc7#41.10.36.24.00#Titration equipment#41.10.36.00.00
+unspsc7#41.10.36.25.00#Laboratory diluters#41.10.36.00.00
+unspsc7#41.10.36.26.00#Fractionation apparatus#41.10.36.00.00
+unspsc7#41.10.36.27.00#Distillation pipings or columns or fittings#41.10.36.00.00
+unspsc7#41.10.36.28.00#Reflux components#41.10.36.00.00
+unspsc7#41.10.36.29.00#Heat exchange condensers#41.10.36.00.00
+unspsc7#41.10.37.00.00#Laboratory baths#41.10.00.00.00
+unspsc7#41.10.37.01.00#Circulating baths#41.10.37.00.00
+unspsc7#41.10.37.02.00#Thermostatic baths#41.10.37.00.00
+unspsc7#41.10.37.03.00#Multiple baths#41.10.37.00.00
+unspsc7#41.10.37.04.00#Biological baths#41.10.37.00.00
+unspsc7#41.10.37.05.00#Organ baths#41.10.37.00.00
+unspsc7#41.10.37.06.00#Water baths#41.10.37.00.00
+unspsc7#41.10.37.07.00#Oil baths#41.10.37.00.00
+unspsc7#41.10.37.08.00#Sand baths#41.10.37.00.00
+unspsc7#41.10.37.09.00#Refrigerated baths#41.10.37.00.00
+unspsc7#41.11.00.00.00#Measuring and observing and testing instruments#41.00.00.00.00
+unspsc7#41.11.15.00.00#Weight measuring instruments#41.11.00.00.00
+unspsc7#41.11.15.01.00#Electronic toploading balances#41.11.15.00.00
+unspsc7#41.11.15.02.00#Laboratory balances#41.11.15.00.00
+unspsc7#41.11.15.03.00#Mechanical balances#41.11.15.00.00
+unspsc7#41.11.15.04.00#Pull spring balances#41.11.15.00.00
+unspsc7#41.11.15.05.00#Calibration weights or weight sets#41.11.15.00.00
+unspsc7#41.11.15.06.00#Animal weighing scales#41.11.15.00.00
+unspsc7#41.11.15.07.00#Bench scales#41.11.15.00.00
+unspsc7#41.11.15.08.00#Bodyweight measuring scales#41.11.15.00.00
+unspsc7#41.11.15.09.00#Floor or platform scales#41.11.15.00.00
+unspsc7#41.11.15.10.00#Postal scales#41.11.15.00.00
+unspsc7#41.11.15.11.00#Truck or rail scales#41.11.15.00.00
+unspsc7#41.11.16.00.00#Length and thickness and distance measuring instruments#41.11.00.00.00
+unspsc7#41.11.16.01.00#Micrometers#41.11.16.00.00
+unspsc7#41.11.16.02.00#Pedometers#41.11.16.00.00
+unspsc7#41.11.16.03.00#Rangefinders#41.11.16.00.00
+unspsc7#41.11.16.04.00#Rulers#41.11.16.00.00
+unspsc7#41.11.16.05.00#Strain gauges#41.11.16.00.00
+unspsc7#41.11.16.06.00#Tellurometers#41.11.16.00.00
+unspsc7#41.11.16.07.00#Thread counters or gauges#41.11.16.00.00
+unspsc7#41.11.16.08.00#Calipers#41.11.16.00.00
+unspsc7#41.11.16.13.00#Distance meters#41.11.16.00.00
+unspsc7#41.11.16.14.00#Height gauges#41.11.16.00.00
+unspsc7#41.11.16.15.00#Laser measuring systems#41.11.16.00.00
+unspsc7#41.11.16.16.00#Measuring wheels for distance#41.11.16.00.00
+unspsc7#41.11.16.17.00#Feeler gauges#41.11.16.00.00
+unspsc7#41.11.16.18.00#Gage block set#41.11.16.00.00
+unspsc7#41.11.16.19.00#Go or no go gauge#41.11.16.00.00
+unspsc7#41.11.16.20.00#Etalon wedge#41.11.16.00.00
+unspsc7#41.11.17.00.00#Viewing and observing instruments and accessories#41.11.00.00.00
+unspsc7#41.11.17.01.00#Ion microscopes#41.11.17.00.00
+unspsc7#41.11.17.02.00#Monocular microscopes#41.11.17.00.00
+unspsc7#41.11.17.03.00#Stereo microscopes#41.11.17.00.00
+unspsc7#41.11.17.04.00#Illuminators for microscopes#41.11.17.00.00
+unspsc7#41.11.17.05.00#Objectives for microscopes#41.11.17.00.00
+unspsc7#41.11.17.06.00#Photo attachments for microscopes#41.11.17.00.00
+unspsc7#41.11.17.07.00#Profile projectors#41.11.17.00.00
+unspsc7#41.11.17.08.00#Video attachments for microscopes#41.11.17.00.00
+unspsc7#41.11.17.09.00#Binocular microscope#41.11.17.00.00
+unspsc7#41.11.17.10.00#Combination electron and light microscopes#41.11.17.00.00
+unspsc7#41.11.17.11.00#Electron microscopes#41.11.17.00.00
+unspsc7#41.11.17.12.00#Inverted microscopes#41.11.17.00.00
+unspsc7#41.11.17.13.00#Magnifiers#41.11.17.00.00
+unspsc7#41.11.17.14.00#Loupes#41.11.17.00.00
+unspsc7#41.11.17.15.00#Telescopes#41.11.17.00.00
+unspsc7#41.11.17.16.00#Borescope inspection equipment#41.11.17.00.00
+unspsc7#41.11.17.17.00#Binoculars#41.11.17.00.00
+unspsc7#41.11.18.00.00#Non destructive examination equipment#41.11.00.00.00
+unspsc7#41.11.18.01.00#Eddy current examination equipment#41.11.18.00.00
+unspsc7#41.11.18.02.00#Liquid penetrant examination equipment#41.11.18.00.00
+unspsc7#41.11.18.03.00#Magnetic particle examination equipment#41.11.18.00.00
+unspsc7#41.11.18.04.00#Ultrasonic examination equipment#41.11.18.00.00
+unspsc7#41.11.18.05.00#CO 60 radiography examination equipment#41.11.18.00.00
+unspsc7#41.11.18.06.00#CS 137 radiography examination equipment#41.11.18.00.00
+unspsc7#41.11.18.07.00#IR 192 radiography examination equipment#41.11.18.00.00
+unspsc7#41.11.18.08.00#X ray radiography examination equipment#41.11.18.00.00
+unspsc7#41.11.19.00.00#Indicating and recording instruments#41.11.00.00.00
+unspsc7#41.11.19.01.00#Counters#41.11.19.00.00
+unspsc7#41.11.19.02.00#Electronic counters#41.11.19.00.00
+unspsc7#41.11.19.03.00#Metal detectors#41.11.19.00.00
+unspsc7#41.11.19.04.00#Electronic columns#41.11.19.00.00
+unspsc7#41.11.19.05.00#Electronic measuring probes#41.11.19.00.00
+unspsc7#41.11.19.06.00#Chart recorders#41.11.19.00.00
+unspsc7#41.11.19.07.00#Digital readout recorders#41.11.19.00.00
+unspsc7#41.11.19.08.00#Graphic recorders#41.11.19.00.00
+unspsc7#41.11.19.09.00#Magnetic tape recorders#41.11.19.00.00
+unspsc7#41.11.19.10.00#Multipen recorders#41.11.19.00.00
+unspsc7#41.11.19.11.00#Oscillographic recorders#41.11.19.00.00
+unspsc7#41.11.19.12.00#Physiological recorders#41.11.19.00.00
+unspsc7#41.11.19.13.00#Point plotting recorders#41.11.19.00.00
+unspsc7#41.11.19.14.00#Servo recorders#41.11.19.00.00
+unspsc7#41.11.19.15.00#Bi metallic sensors#41.11.19.00.00
+unspsc7#41.11.19.16.00#Non contact sensors#41.11.19.00.00
+unspsc7#41.11.19.17.00#Digital testers#41.11.19.00.00
+unspsc7#41.11.19.18.00#Gyroscopic instruments#41.11.19.00.00
+unspsc7#41.11.19.19.00#Detection apparatus for non metalic objects#41.11.19.00.00
+unspsc7#41.11.19.20.00#Coordinate measuring machines (CMM)#41.11.19.00.00
+unspsc7#41.11.19.21.00#Speed sensors#41.11.19.00.00
+unspsc7#41.11.19.22.00#Lamp failure sensor#41.11.19.00.00
+unspsc7#41.11.19.23.00#Pre ignition knock sensor#41.11.19.00.00
+unspsc7#41.11.19.24.00#Oxygen sensors#41.11.19.00.00
+unspsc7#41.11.19.25.00#Speed sensors#41.11.19.00.00
+unspsc7#41.11.19.26.00#Proximity sensors#41.11.19.00.00
+unspsc7#41.11.19.27.00#Pressure sensors#41.11.19.00.00
+unspsc7#41.11.19.28.00#Current sensors#41.11.19.00.00
+unspsc7#41.11.20.00.00#Light and wave and sound generating and measuring equipment#41.11.00.00.00
+unspsc7#41.11.20.01.00#Light absorptionmeters#41.11.20.00.00
+unspsc7#41.11.20.02.00#Acoustic testing rooms#41.11.20.00.00
+unspsc7#41.11.20.03.00#Anechoic chambers#41.11.20.00.00
+unspsc7#41.11.20.04.00#Frequency analyzers#41.11.20.00.00
+unspsc7#41.11.20.05.00#Frequency counters or timer or dividers#41.11.20.00.00
+unspsc7#41.11.20.06.00#Electrical frequency meters#41.11.20.00.00
+unspsc7#41.11.20.07.00#Interferometers#41.11.20.00.00
+unspsc7#41.11.20.08.00#Lasers#41.11.20.00.00
+unspsc7#41.11.20.09.00#Lightmeters#41.11.20.00.00
+unspsc7#41.11.20.10.00#Luxmeters#41.11.20.00.00
+unspsc7#41.11.20.11.00#Optical callibration sets#41.11.20.00.00
+unspsc7#41.11.20.12.00#Photometers#41.11.20.00.00
+unspsc7#41.11.20.13.00#Polarimeters#41.11.20.00.00
+unspsc7#41.11.20.14.00#Polariscopes#41.11.20.00.00
+unspsc7#41.11.20.15.00#Reflectometers#41.11.20.00.00
+unspsc7#41.11.20.16.00#Sonars#41.11.20.00.00
+unspsc7#41.11.20.17.00#Sonometers#41.11.20.00.00
+unspsc7#41.11.20.18.00#Sound measuring apparatus or decibel meter#41.11.20.00.00
+unspsc7#41.11.20.19.00#Spectrofluorimeters#41.11.20.00.00
+unspsc7#41.11.20.20.00#Spectrographs#41.11.20.00.00
+unspsc7#41.11.20.21.00#Spectrometers#41.11.20.00.00
+unspsc7#41.11.20.22.00#Mass spectrometers#41.11.20.00.00
+unspsc7#41.11.20.23.00#Proton spectrometers#41.11.20.00.00
+unspsc7#41.11.20.24.00#Spectrophotometers#41.11.20.00.00
+unspsc7#41.11.20.25.00#Stroboscopes#41.11.20.00.00
+unspsc7#41.11.20.26.00#Sound velocity analyzers#41.11.20.00.00
+unspsc7#41.11.20.27.00#Thickness measuring devices#41.11.20.00.00
+unspsc7#41.11.21.00.00#Transducers#41.11.00.00.00
+unspsc7#41.11.21.01.00#Piezo electric crystals#41.11.21.00.00
+unspsc7#41.11.21.02.00#Strain gauges#41.11.21.00.00
+unspsc7#41.11.21.03.00#Fiber sensors#41.11.21.00.00
+unspsc7#41.11.22.00.00#Temperature and heat measuring instruments#41.11.00.00.00
+unspsc7#41.11.22.01.00#Calorimeters#41.11.22.00.00
+unspsc7#41.11.22.02.00#Heat tracing equipment#41.11.22.00.00
+unspsc7#41.11.22.03.00#Melting point recorders#41.11.22.00.00
+unspsc7#41.11.22.04.00#Pyrometers#41.11.22.00.00
+unspsc7#41.11.22.05.00#Temperature regulators#41.11.22.00.00
+unspsc7#41.11.22.06.00#Thermocouples#41.11.22.00.00
+unspsc7#41.11.22.07.00#Thermographs#41.11.22.00.00
+unspsc7#41.11.22.09.00#Thermostats#41.11.22.00.00
+unspsc7#41.11.22.10.00#Remote reading thermometers#41.11.22.00.00
+unspsc7#41.11.22.11.00#Resistance thermometers#41.11.22.00.00
+unspsc7#41.11.22.12.00#Surface thermometers#41.11.22.00.00
+unspsc7#41.11.22.13.00#Handheld thermometer#41.11.22.00.00
+unspsc7#41.11.23.00.00#Humidity measuring instruments#41.11.00.00.00
+unspsc7#41.11.23.01.00#Hygrometers#41.11.23.00.00
+unspsc7#41.11.23.02.00#Psychrometers#41.11.23.00.00
+unspsc7#41.11.23.03.00#Temperature humidity testers#41.11.23.00.00
+unspsc7#41.11.24.00.00#Pressure measuring and control instruments#41.11.00.00.00
+unspsc7#41.11.24.01.00#Depth gauges#41.11.24.00.00
+unspsc7#41.11.24.02.00#Manostats#41.11.24.00.00
+unspsc7#41.11.24.03.00#Pressure reading indicators#41.11.24.00.00
+unspsc7#41.11.24.04.00#Pressure regulator#41.11.24.00.00
+unspsc7#41.11.24.05.00#Pressure or vacuum recorders#41.11.24.00.00
+unspsc7#41.11.24.06.00#Vacuum gauges#41.11.24.00.00
+unspsc7#41.11.24.07.00#Liquid level controls or instruments#41.11.24.00.00
+unspsc7#41.11.25.00.00#Flow measuring instruments#41.11.00.00.00
+unspsc7#41.11.25.01.00#Flowmeters#41.11.25.00.00
+unspsc7#41.11.25.02.00#Rheometers#41.11.25.00.00
+unspsc7#41.11.25.03.00#Rotameters#41.11.25.00.00
+unspsc7#41.11.25.04.00#Water meters#41.11.25.00.00
+unspsc7#41.11.25.05.00#Water meter spares#41.11.25.00.00
+unspsc7#41.11.25.06.00#Venturis#41.11.25.00.00
+unspsc7#41.11.27.00.00#Seed and feed equipment#41.11.00.00.00
+unspsc7#41.11.27.01.00#Grain analyzers#41.11.27.00.00
+unspsc7#41.11.27.02.00#Seed counters#41.11.27.00.00
+unspsc7#41.11.27.03.00#Fiber apparatus for feed sample analysis#41.11.27.00.00
+unspsc7#41.11.28.00.00#Transportation related equipment and instruments#41.11.00.00.00
+unspsc7#41.11.28.01.00#Speedometers#41.11.28.00.00
+unspsc7#41.11.28.02.00#Tachometers#41.11.28.00.00
+unspsc7#41.11.29.00.00#Navigational equipment and instruments#41.11.00.00.00
+unspsc7#41.11.29.01.00#Direction finding compasses#41.11.29.00.00
+unspsc7#41.11.29.02.00#Radio navigation instruments#41.11.29.00.00
+unspsc7#41.11.29.03.00#Sextants#41.11.29.00.00
+unspsc7#41.11.29.04.00#Complex controlling devices#41.11.29.00.00
+unspsc7#41.11.30.00.00#Chemical evaluation instruments and supplies#41.11.00.00.00
+unspsc7#41.11.30.01.00#Digital analyzer controllers#41.11.30.00.00
+unspsc7#41.11.30.02.00#Chemiluminescence or bioluminescence analyzers#41.11.30.00.00
+unspsc7#41.11.30.03.00#Electrogravimetry analyzers#41.11.30.00.00
+unspsc7#41.11.30.04.00#Flame ionization analyzers#41.11.30.00.00
+unspsc7#41.11.30.05.00#Ion analyzers#41.11.30.00.00
+unspsc7#41.11.30.06.00#Radiometry analyzers#41.11.30.00.00
+unspsc7#41.11.30.07.00#Random access analyzers#41.11.30.00.00
+unspsc7#41.11.30.08.00#Cintigraphic analyzers#41.11.30.00.00
+unspsc7#41.11.30.09.00#Thermal differential analyzers#41.11.30.00.00
+unspsc7#41.11.30.10.00#Thermo gravimetry analyzers#41.11.30.00.00
+unspsc7#41.11.30.11.00#Chromatographic detectors#41.11.30.00.00
+unspsc7#41.11.30.12.00#Chromatographic scanners#41.11.30.00.00
+unspsc7#41.11.30.13.00#Gas chromatographs#41.11.30.00.00
+unspsc7#41.11.30.14.00#Ion chromatographs#41.11.30.00.00
+unspsc7#41.11.30.15.00#Liquid chromatographs#41.11.30.00.00
+unspsc7#41.11.30.16.00#Thinlayer chromatographs#41.11.30.00.00
+unspsc7#41.11.30.18.00#High pressure liquid chromatograph chromatography#41.11.30.00.00
+unspsc7#41.11.30.19.00#High pressure thin layer chromatograph (TLC)#41.11.30.00.00
+unspsc7#41.11.30.20.00#Colorimeters#41.11.30.00.00
+unspsc7#41.11.30.21.00#Conductimetric instruments#41.11.30.00.00
+unspsc7#41.11.30.22.00#Fluorimeters#41.11.30.00.00
+unspsc7#41.11.30.23.00#Gel partition equipment#41.11.30.00.00
+unspsc7#41.11.30.24.00#Hydrometers#41.11.30.00.00
+unspsc7#41.11.30.25.00#Monochromators#41.11.30.00.00
+unspsc7#41.11.30.26.00#Nephelometers#41.11.30.00.00
+unspsc7#41.11.30.27.00#Osmometers#41.11.30.00.00
+unspsc7#41.11.30.28.00#pH meters#41.11.30.00.00
+unspsc7#41.11.30.29.00#Polarographs#41.11.30.00.00
+unspsc7#41.11.30.30.00#Radiochromatographic scanner#41.11.30.00.00
+unspsc7#41.11.30.31.00#Saccharometers#41.11.30.00.00
+unspsc7#41.11.30.32.00#Salinity meter#41.11.30.00.00
+unspsc7#41.11.30.33.00#Volumeters#41.11.30.00.00
+unspsc7#41.11.31.00.00#Gas analyzers#41.11.00.00.00
+unspsc7#41.11.31.01.00#Automotive exhaust emission analyzers#41.11.31.00.00
+unspsc7#41.11.31.02.00#Catalytic combustion analyzers#41.11.31.00.00
+unspsc7#41.11.31.03.00#Chemical absorption gas analyzers#41.11.31.00.00
+unspsc7#41.11.31.04.00#Explosimeters#41.11.31.00.00
+unspsc7#41.11.31.05.00#Hydrocarbons analyzers or detectors#41.11.31.00.00
+unspsc7#41.11.31.06.00#Infra red or ultra violet absorption analyzers#41.11.31.00.00
+unspsc7#41.11.31.07.00#Nitrogen analyzers#41.11.31.00.00
+unspsc7#41.11.31.08.00#Nitrogen oxide analyzers#41.11.31.00.00
+unspsc7#41.11.31.09.00#ORSAT equipment#41.11.31.00.00
+unspsc7#41.11.31.10.00#Oxygen gas analyzers#41.11.31.00.00
+unspsc7#41.11.31.11.00#Ozone analyzers#41.11.31.00.00
+unspsc7#41.11.31.12.00#Paramagnetic susceptibility analyzers#41.11.31.00.00
+unspsc7#41.11.31.13.00#Sulfur dioxide analyzers or detectors#41.11.31.00.00
+unspsc7#41.11.31.14.00#Thermal conductivity analyzers#41.11.31.00.00
+unspsc7#41.11.31.15.00#Radon detectors#41.11.31.00.00
+unspsc7#41.11.31.16.00#Gas detector tubes#41.11.31.00.00
+unspsc7#41.11.33.00.00#Liquid and solid analyzers#41.11.00.00.00
+unspsc7#41.11.33.01.00#Acid or base analyzers#41.11.33.00.00
+unspsc7#41.11.33.02.00#Albuminometers#41.11.33.00.00
+unspsc7#41.11.33.03.00#Amino acid analyzers#41.11.33.00.00
+unspsc7#41.11.33.04.00#Bauxite analyzers#41.11.33.00.00
+unspsc7#41.11.33.05.00#Calcium analyzers#41.11.33.00.00
+unspsc7#41.11.33.06.00#Chloride analyzers#41.11.33.00.00
+unspsc7#41.11.33.07.00#Dissolved oxygen measurement meter#41.11.33.00.00
+unspsc7#41.11.33.08.00#Electrolyte analyzers#41.11.33.00.00
+unspsc7#41.11.33.09.00#Enzyme analyzers#41.11.33.00.00
+unspsc7#41.11.33.10.00#Fatty acid analyzers#41.11.33.00.00
+unspsc7#41.11.33.11.00#Halide detector lamp#41.11.33.00.00
+unspsc7#41.11.33.12.00#Lactate analyzers#41.11.33.00.00
+unspsc7#41.11.33.13.00#Mineral oil testing instruments#41.11.33.00.00
+unspsc7#41.11.33.14.00#Oil content monitors analyzers#41.11.33.00.00
+unspsc7#41.11.33.15.00#Organic carbon analyzers#41.11.33.00.00
+unspsc7#41.11.33.16.00#Petroleum testing equipment#41.11.33.00.00
+unspsc7#41.11.33.17.00#Protein analyzers#41.11.33.00.00
+unspsc7#41.11.33.18.00#Uranium analyzers#41.11.33.00.00
+unspsc7#41.11.33.19.00#Water analyzers#41.11.33.00.00
+unspsc7#41.11.33.20.00#Lubricating oil testing kit#41.11.33.00.00
+unspsc7#41.11.33.21.00#Paint tester#41.11.33.00.00
+unspsc7#41.11.34.00.00#Nuclear evaluation instruments#41.11.00.00.00
+unspsc7#41.11.34.01.00#Alpha counters#41.11.34.00.00
+unspsc7#41.11.34.02.00#Alpha beta counters#41.11.34.00.00
+unspsc7#41.11.34.03.00#Beta counters#41.11.34.00.00
+unspsc7#41.11.34.04.00#Beta gamma counters#41.11.34.00.00
+unspsc7#41.11.34.05.00#Gamma counters#41.11.34.00.00
+unspsc7#41.11.34.06.00#KVP meters#41.11.34.00.00
+unspsc7#41.11.34.07.00#X ray microanalysers#41.11.34.00.00
+unspsc7#41.11.36.00.00#Electrical measuring and testing equipment#41.11.00.00.00
+unspsc7#41.11.36.01.00#Ammeters#41.11.36.00.00
+unspsc7#41.11.36.02.00#Phasemeters#41.11.36.00.00
+unspsc7#41.11.36.03.00#Bridges#41.11.36.00.00
+unspsc7#41.11.36.04.00#Capacitance meters#41.11.36.00.00
+unspsc7#41.11.36.05.00#Thermoanalysis derivatographs#41.11.36.00.00
+unspsc7#41.11.36.06.00#Freeze watch indicators#41.11.36.00.00
+unspsc7#41.11.36.07.00#Heat stress monitors#41.11.36.00.00
+unspsc7#41.11.36.08.00#Coincidence or anticoincidence counters#41.11.36.00.00
+unspsc7#41.11.36.09.00#Conductivity cells#41.11.36.00.00
+unspsc7#41.11.36.10.00#Conductivity meters#41.11.36.00.00
+unspsc7#41.11.36.11.00#Cross talk meters#41.11.36.00.00
+unspsc7#41.11.36.12.00#Earth resistance testers#41.11.36.00.00
+unspsc7#41.11.36.13.00#Electrical value recorders#41.11.36.00.00
+unspsc7#41.11.36.14.00#Electromagnetic field meters#41.11.36.00.00
+unspsc7#41.11.36.15.00#Electrometers#41.11.36.00.00
+unspsc7#41.11.36.16.00#Electronic loads#41.11.36.00.00
+unspsc7#41.11.36.17.00#Field strength measuring equipment#41.11.36.00.00
+unspsc7#41.11.36.18.00#Gain measuring instruments#41.11.36.00.00
+unspsc7#41.11.36.19.00#Galvanometers#41.11.36.00.00
+unspsc7#41.11.36.20.00#High voltage cable detection#41.11.36.00.00
+unspsc7#41.11.36.21.00#Impedance meters#41.11.36.00.00
+unspsc7#41.11.36.22.00#Calibrated inductance coils or boxes#41.11.36.00.00
+unspsc7#41.11.36.23.00#Insulation resistance meters#41.11.36.00.00
+unspsc7#41.11.36.24.00#Insulation testers#41.11.36.00.00
+unspsc7#41.11.36.25.00#Ionization chambers#41.11.36.00.00
+unspsc7#41.11.36.26.00#Ionmeters#41.11.36.00.00
+unspsc7#41.11.36.27.00#Line earth loop testers#41.11.36.00.00
+unspsc7#41.11.36.28.00#Megohmmeters#41.11.36.00.00
+unspsc7#41.11.36.29.00#Microwave leakage meters#41.11.36.00.00
+unspsc7#41.11.36.30.00#Multimeters#41.11.36.00.00
+unspsc7#41.11.36.31.00#Ohmmeters#41.11.36.00.00
+unspsc7#41.11.36.32.00#Oscillographs#41.11.36.00.00
+unspsc7#41.11.36.33.00#Potentiometers#41.11.36.00.00
+unspsc7#41.11.36.34.00#Q meters#41.11.36.00.00
+unspsc7#41.11.36.35.00#Calibrated resistance measuring equipment#41.11.36.00.00
+unspsc7#41.11.36.36.00#Level generators#41.11.36.00.00
+unspsc7#41.11.36.37.00#Voltage or current meters#41.11.36.00.00
+unspsc7#41.11.36.38.00#Oscilloscopes#41.11.36.00.00
+unspsc7#41.11.36.39.00#Accelerometers#41.11.36.00.00
+unspsc7#41.11.36.40.00#Wattmeters#41.11.36.00.00
+unspsc7#41.11.36.41.00#GFI circuit testors#41.11.36.00.00
+unspsc7#41.11.36.42.00#Circuit tester#41.11.36.00.00
+unspsc7#41.11.36.43.00#Demand meters or registers#41.11.36.00.00
+unspsc7#41.11.36.44.00#Circuit tracers#41.11.36.00.00
+unspsc7#41.11.37.00.00#Electronic and communication measuring and testing instruments#41.11.00.00.00
+unspsc7#41.11.37.01.00#Cathode ray tube tester#41.11.37.00.00
+unspsc7#41.11.37.02.00#Comparators#41.11.37.00.00
+unspsc7#41.11.37.03.00#Directional coupler#41.11.37.00.00
+unspsc7#41.11.37.04.00#Integrated circuit testers#41.11.37.00.00
+unspsc7#41.11.37.05.00#Logic state testers#41.11.37.00.00
+unspsc7#41.11.37.06.00#Semiconductor testers#41.11.37.00.00
+unspsc7#41.11.37.07.00#Transistor circuit testers#41.11.37.00.00
+unspsc7#41.11.37.08.00#Power meters#41.11.37.00.00
+unspsc7#41.11.37.09.00#Modulation meters#41.11.37.00.00
+unspsc7#41.11.37.10.00#Level meter#41.11.37.00.00
+unspsc7#41.11.37.11.00#Network analyzers#41.11.37.00.00
+unspsc7#41.11.37.12.00#Tape testers#41.11.37.00.00
+unspsc7#41.11.37.13.00#Tapespeed testers#41.11.37.00.00
+unspsc7#41.11.37.14.00#Differentiator#41.11.37.00.00
+unspsc7#41.11.38.00.00#Geophysical and geotechnical instruments#41.11.00.00.00
+unspsc7#41.11.38.01.00#Geological compasses#41.11.38.00.00
+unspsc7#41.11.38.02.00#Geological prospecting apparatus#41.11.38.00.00
+unspsc7#41.11.38.03.00#Electromagnetic geophysical instruments#41.11.38.00.00
+unspsc7#41.11.38.04.00#Gravity geophysical instruments#41.11.38.00.00
+unspsc7#41.11.38.05.00#Induced polarization (IP) geophysical instruments#41.11.38.00.00
+unspsc7#41.11.38.06.00#Magnetometer geophysical instruments#41.11.38.00.00
+unspsc7#41.11.38.07.00#Resistivity geophysical instruments#41.11.38.00.00
+unspsc7#41.11.38.08.00#Gravimeters#41.11.38.00.00
+unspsc7#41.11.39.00.00#Soil measuring equipment#41.11.00.00.00
+unspsc7#41.11.39.01.00#Bore measuring instruments#41.11.39.00.00
+unspsc7#41.11.39.02.00#Dissolution or disintegration testers#41.11.39.00.00
+unspsc7#41.11.39.03.00#Particle size measuring apparatus#41.11.39.00.00
+unspsc7#41.11.39.04.00#Penetrometers#41.11.39.00.00
+unspsc7#41.11.39.05.00#Permeability testing apparatus#41.11.39.00.00
+unspsc7#41.11.39.06.00#Permeability or porosity estimation apparatus#41.11.39.00.00
+unspsc7#41.11.39.07.00#Porosimeters#41.11.39.00.00
+unspsc7#41.11.39.08.00#Sand testing apparatus#41.11.39.00.00
+unspsc7#41.11.39.09.00#Soil core sampling apparatus#41.11.39.00.00
+unspsc7#41.11.39.10.00#Soil testing kits#41.11.39.00.00
+unspsc7#41.11.40.00.00#Rock and strata measuring equipment#41.11.00.00.00
+unspsc7#41.11.40.01.00#Clinometers#41.11.40.00.00
+unspsc7#41.11.41.00.00#Seismological instruments#41.11.00.00.00
+unspsc7#41.11.41.02.00#Earthquake simulators#41.11.41.00.00
+unspsc7#41.11.41.03.00#Seismic alarm modules#41.11.41.00.00
+unspsc7#41.11.41.04.00#Seismic amplifiers#41.11.41.00.00
+unspsc7#41.11.41.05.00#Portable seismic apparatus#41.11.41.00.00
+unspsc7#41.11.41.06.00#Seismic recorders or seismographs#41.11.41.00.00
+unspsc7#41.11.41.07.00#Seismometers#41.11.41.00.00
+unspsc7#41.11.41.08.00#Vibrometers#41.11.41.00.00
+unspsc7#41.11.42.00.00#Land surveying instruments#41.11.00.00.00
+unspsc7#41.11.42.01.00#Measuring tapes#41.11.42.00.00
+unspsc7#41.11.42.02.00#Measuring rods#41.11.42.00.00
+unspsc7#41.11.42.03.00#Measuring tables#41.11.42.00.00
+unspsc7#41.11.42.04.00#Theodolites#41.11.42.00.00
+unspsc7#41.11.42.05.00#Location stake#41.11.42.00.00
+unspsc7#41.11.42.06.00#Location hub#41.11.42.00.00
+unspsc7#41.11.43.00.00#Hydrological instruments#41.11.00.00.00
+unspsc7#41.11.43.01.00#Open stream current meters#41.11.43.00.00
+unspsc7#41.11.43.02.00#Logging instruments for water wells#41.11.43.00.00
+unspsc7#41.11.43.03.00#Open stream water level recorders#41.11.43.00.00
+unspsc7#41.11.44.00.00#Meteorological instruments#41.11.00.00.00
+unspsc7#41.11.44.01.00#Anemometers#41.11.44.00.00
+unspsc7#41.11.44.02.00#Barometers#41.11.44.00.00
+unspsc7#41.11.44.03.00#Precipitation or evaporation recorders#41.11.44.00.00
+unspsc7#41.11.44.04.00#Radiosonde apparatus#41.11.44.00.00
+unspsc7#41.11.44.05.00#Rainfall recorders#41.11.44.00.00
+unspsc7#41.11.44.06.00#Precipitation or evaporation surface observing apparatus#41.11.44.00.00
+unspsc7#41.11.44.07.00#Solar radiation surface observing apparatus#41.11.44.00.00
+unspsc7#41.11.44.08.00#Temperature or humidity surface observing apparatus#41.11.44.00.00
+unspsc7#41.11.44.09.00#Wind surface observing apparatus#41.11.44.00.00
+unspsc7#41.11.44.10.00#Weather stations#41.11.44.00.00
+unspsc7#41.11.44.11.00#Meteorology instrument accessories#41.11.44.00.00
+unspsc7#41.11.45.00.00#Mechanical instruments#41.11.00.00.00
+unspsc7#41.11.45.01.00#Dynamometers#41.11.45.00.00
+unspsc7#41.11.45.02.00#Elastometers#41.11.45.00.00
+unspsc7#41.11.45.03.00#Extensometers#41.11.45.00.00
+unspsc7#41.11.45.04.00#Pitch measuring instruments#41.11.45.00.00
+unspsc7#41.11.45.05.00#Roundness testing instruments#41.11.45.00.00
+unspsc7#41.11.45.06.00#Spherometers#41.11.45.00.00
+unspsc7#41.11.45.07.00#Spring testing machines#41.11.45.00.00
+unspsc7#41.11.45.08.00#Surface testers#41.11.45.00.00
+unspsc7#41.11.45.09.00#Tensiometers#41.11.45.00.00
+unspsc7#41.11.45.10.00#Torque limiter#41.11.45.00.00
+unspsc7#41.11.46.00.00#Metals and metallurgy and structural materials testing instruments#41.11.00.00.00
+unspsc7#41.11.46.01.00#Abrasion testers#41.11.46.00.00
+unspsc7#41.11.46.02.00#Compression testers#41.11.46.00.00
+unspsc7#41.11.46.03.00#Concrete or cement testing instruments#41.11.46.00.00
+unspsc7#41.11.46.04.00#Corrosion testers#41.11.46.00.00
+unspsc7#41.11.46.05.00#Crack or corrosion detectors#41.11.46.00.00
+unspsc7#41.11.46.06.00#Creep testers#41.11.46.00.00
+unspsc7#41.11.46.07.00#Ductility testing machines#41.11.46.00.00
+unspsc7#41.11.46.08.00#Fatigue testers#41.11.46.00.00
+unspsc7#41.11.46.09.00#Forging testing apparatus#41.11.46.00.00
+unspsc7#41.11.46.10.00#Foundry testing apparatus#41.11.46.00.00
+unspsc7#41.11.46.11.00#Hardness testers#41.11.46.00.00
+unspsc7#41.11.46.12.00#Impact testers#41.11.46.00.00
+unspsc7#41.11.46.13.00#Load frame#41.11.46.00.00
+unspsc7#41.11.46.14.00#Metal testing instruments#41.11.46.00.00
+unspsc7#41.11.46.15.00#Photoelastic testing instruments#41.11.46.00.00
+unspsc7#41.11.46.16.00#Proofstress indicators#41.11.46.00.00
+unspsc7#41.11.46.17.00#Relaxation testers#41.11.46.00.00
+unspsc7#41.11.46.18.00#Roughness measuring instruments#41.11.46.00.00
+unspsc7#41.11.46.19.00#Shear strength testers#41.11.46.00.00
+unspsc7#41.11.46.20.00#Shock testing apparatus#41.11.46.00.00
+unspsc7#41.11.46.21.00#Tension testers#41.11.46.00.00
+unspsc7#41.11.46.22.00#Torsion testers#41.11.46.00.00
+unspsc7#41.11.46.23.00#Flexure or transverse testing machines#41.11.46.00.00
+unspsc7#41.11.46.24.00#Vibration testers#41.11.46.00.00
+unspsc7#41.11.46.25.00#Wear testers#41.11.46.00.00
+unspsc7#41.11.46.26.00#Welding testing apparatus#41.11.46.00.00
+unspsc7#41.11.47.00.00#Paper and wood and textile testing instruments#41.11.00.00.00
+unspsc7#41.11.47.01.00#Cardboard testing instruments#41.11.47.00.00
+unspsc7#41.11.47.02.00#Textiles fastness testers#41.11.47.00.00
+unspsc7#41.11.47.03.00#Leather testing instruments#41.11.47.00.00
+unspsc7#41.11.47.04.00#Paper testing instruments#41.11.47.00.00
+unspsc7#41.11.47.05.00#Textile testing instruments#41.11.47.00.00
+unspsc7#41.11.47.06.00#Wood testing instruments#41.11.47.00.00
+unspsc7#41.11.48.00.00#Ceramics and glass testing instruments#41.11.00.00.00
+unspsc7#41.11.48.01.00#Ceramics testing instruments#41.11.48.00.00
+unspsc7#41.11.48.02.00#Glass testing instruments#41.11.48.00.00
+unspsc7#41.11.48.03.00#Pottery testing instruments#41.11.48.00.00
+unspsc7#41.11.51.00.00#Coal and ore testing instruments#41.11.00.00.00
+unspsc7#41.11.51.01.00#Coal testing instruments#41.11.51.00.00
+unspsc7#41.11.52.00.00#Radar and sonar systems and components#41.11.00.00.00
+unspsc7#41.11.52.01.00#Radarbased surveillance systems#41.11.52.00.00
+unspsc7#41.11.52.02.00#Feed horns#41.11.52.00.00
+unspsc7#42.00.00.00.00#Medical Equipment and Accessories and Supplies#42.00.00.00.00
+unspsc7#42.10.00.00.00#Hospital and medical and dental equipment#42.00.00.00.00
+unspsc7#42.10.15.00.00#Anesthesia equipment and instruments and accessories#42.10.00.00.00
+unspsc7#42.10.15.02.00#Healthcare gas machines#42.10.15.00.00
+unspsc7#42.10.15.03.00#Anesthesia machines#42.10.15.00.00
+unspsc7#42.10.15.04.00#Regional anaesthesia kits or needles#42.10.15.00.00
+unspsc7#42.10.16.00.00#Medical equipment and instruments#42.10.00.00.00
+unspsc7#42.10.16.01.00#Medical thermometers#42.10.16.00.00
+unspsc7#42.10.16.02.00#Speculums#42.10.16.00.00
+unspsc7#42.10.16.03.00#Otoscopes#42.10.16.00.00
+unspsc7#42.10.16.04.00#Audiometers or tympanometers#42.10.16.00.00
+unspsc7#42.10.16.05.00#Stethoscopes#42.10.16.00.00
+unspsc7#42.10.16.06.00#Ergonometers#42.10.16.00.00
+unspsc7#42.10.16.07.00#Electro therapy apparatus#42.10.16.00.00
+unspsc7#42.10.16.08.00#Photo therapy apparatus#42.10.16.00.00
+unspsc7#42.10.16.09.00#Hydrotherapy supplies or accessories#42.10.16.00.00
+unspsc7#42.10.16.10.00#Acupuncture units#42.10.16.00.00
+unspsc7#42.10.16.11.00#Stethographs#42.10.16.00.00
+unspsc7#42.10.16.12.00#Medical pumps#42.10.16.00.00
+unspsc7#42.10.16.13.00#Medical valves#42.10.16.00.00
+unspsc7#42.10.16.14.00#Endoscopes#42.10.16.00.00
+unspsc7#42.10.17.00.00#Medical testing and analyzing and diagnostic equipment#42.10.00.00.00
+unspsc7#42.10.17.01.00#Skin test strips#42.10.17.00.00
+unspsc7#42.10.17.02.00#Blood analyzers#42.10.17.00.00
+unspsc7#42.10.17.03.00#Blood cell counters#42.10.17.00.00
+unspsc7#42.10.17.04.00#Haemoglobinometers#42.10.17.00.00
+unspsc7#42.10.17.05.00#Bilirubin meters#42.10.17.00.00
+unspsc7#42.10.17.06.00#Haemacytometers#42.10.17.00.00
+unspsc7#42.10.17.07.00#Colony counters#42.10.17.00.00
+unspsc7#42.10.17.08.00#Ferritin test kits#42.10.17.00.00
+unspsc7#42.10.17.09.00#Enzyme linked immunosorbent assay (ELISA) test kit#42.10.17.00.00
+unspsc7#42.10.17.10.00#Human immune deficiency (HIV) test kits#42.10.17.00.00
+unspsc7#42.10.17.11.00#Syfacard syphilis tests#42.10.17.00.00
+unspsc7#42.10.17.12.00#Pregnancy test kits#42.10.17.00.00
+unspsc7#42.10.17.13.00#Radio immunoassay (RIA) test kits#42.10.17.00.00
+unspsc7#42.10.17.14.00#Polio case investigation kit#42.10.17.00.00
+unspsc7#42.10.17.15.00#Urine blood test strips#42.10.17.00.00
+unspsc7#42.10.17.16.00#Cell size analyzers#42.10.17.00.00
+unspsc7#42.10.17.17.00#Whole body counters#42.10.17.00.00
+unspsc7#42.10.17.18.00#Biomedical counters#42.10.17.00.00
+unspsc7#42.10.17.19.00#Medical multiprobe system counters#42.10.17.00.00
+unspsc7#42.10.17.20.00#Allergy or diagnostic kits#42.10.17.00.00
+unspsc7#42.10.17.21.00#Urinary test set#42.10.17.00.00
+unspsc7#42.10.17.22.00#Differential cell counters#42.10.17.00.00
+unspsc7#42.10.17.23.00#Plasma viscosity measurement#42.10.17.00.00
+unspsc7#42.10.17.24.00#Platelet analysis#42.10.17.00.00
+unspsc7#42.10.17.25.00#Blood glucose meters#42.10.17.00.00
+unspsc7#42.10.17.26.00#Hemoculture tests#42.10.17.00.00
+unspsc7#42.10.17.27.00#Bodyfat analysers#42.10.17.00.00
+unspsc7#42.10.17.28.00#Sample collection systems#42.10.17.00.00
+unspsc7#42.10.18.00.00#X ray and alpha and beta and gamma radiation apparatus#42.10.00.00.00
+unspsc7#42.10.18.01.00#Diagnostic x ray equipment#42.10.18.00.00
+unspsc7#42.10.18.02.00#Radiotherapy simulator#42.10.18.00.00
+unspsc7#42.10.18.03.00#Calibration equipment#42.10.18.00.00
+unspsc7#42.10.18.04.00#Biomedical research support units#42.10.18.00.00
+unspsc7#42.10.18.05.00#Computed tomography (CT) scanners#42.10.18.00.00
+unspsc7#42.10.18.06.00#Water phantoms#42.10.18.00.00
+unspsc7#42.10.18.07.00#Radiobiological instruments#42.10.18.00.00
+unspsc7#42.10.18.08.00#Gamma scintillators#42.10.18.00.00
+unspsc7#42.10.18.09.00#Gamma cameras#42.10.18.00.00
+unspsc7#42.10.18.10.00#Linear accelerators#42.10.18.00.00
+unspsc7#42.10.18.11.00#Radiotherapy brachytherapy equipment#42.10.18.00.00
+unspsc7#42.10.18.12.00#Radiotherapy teletherapy cobalt 60 machine#42.10.18.00.00
+unspsc7#42.10.18.13.00#Radiotherapy teletherapy superficial x ray machine#42.10.18.00.00
+unspsc7#42.10.18.14.00#Radiotherapy teletherapy orthovoltage x ray machine#42.10.18.00.00
+unspsc7#42.10.18.15.00#Radiotherapy teletherapy linear accelerators#42.10.18.00.00
+unspsc7#42.10.18.16.00#Radioisotope scanners for medical purposes#42.10.18.00.00
+unspsc7#42.10.18.17.00#Dental x ray units#42.10.18.00.00
+unspsc7#42.10.18.18.00#Angiography supplies#42.10.18.00.00
+unspsc7#42.10.18.19.00#Angiography devices#42.10.18.00.00
+unspsc7#42.10.18.20.00#Angioplasty supplies#42.10.18.00.00
+unspsc7#42.10.18.21.00#Angioplasty devices#42.10.18.00.00
+unspsc7#42.10.19.00.00#Oxygen therapy equipment#42.10.00.00.00
+unspsc7#42.10.19.01.00#Inhalation equipment#42.10.19.00.00
+unspsc7#42.10.19.02.00#Medical humidifiers#42.10.19.00.00
+unspsc7#42.10.19.03.00#Resuscitators or respirators#42.10.19.00.00
+unspsc7#42.10.19.04.00#Aspirators#42.10.19.00.00
+unspsc7#42.10.19.05.00#Insufflators#42.10.19.00.00
+unspsc7#42.10.19.06.00#Resuscitation emergency outfits#42.10.19.00.00
+unspsc7#42.10.19.07.00#Nebulizers#42.10.19.00.00
+unspsc7#42.10.19.08.00#Aerosol therapy apparatus#42.10.19.00.00
+unspsc7#42.10.19.09.00#Medical ventilation systems#42.10.19.00.00
+unspsc7#42.10.19.10.00#Masks or breathing bags#42.10.19.00.00
+unspsc7#42.10.19.11.00#Heart lung apparatus#42.10.19.00.00
+unspsc7#42.10.19.12.00#Breathing device with hygienic barrier#42.10.19.00.00
+unspsc7#42.10.19.13.00#Oxygen masks#42.10.19.00.00
+unspsc7#42.10.19.14.00#Mobile suction unit#42.10.19.00.00
+unspsc7#42.10.19.15.00#Hyperbaric treatment chamber#42.10.19.00.00
+unspsc7#42.10.19.16.00#Oxygenators#42.10.19.00.00
+unspsc7#42.10.19.17.00#Air oxygen units#42.10.19.00.00
+unspsc7#42.10.20.00.00#Medical and surgical and laboratory sterilizers#42.10.00.00.00
+unspsc7#42.10.20.01.00#Autoclaves#42.10.20.00.00
+unspsc7#42.10.20.02.00#Steam sterilizers#42.10.20.00.00
+unspsc7#42.10.20.03.00#Boiling disinfectors#42.10.20.00.00
+unspsc7#42.10.20.04.00#Hot air sterilizers#42.10.20.00.00
+unspsc7#42.10.20.05.00#Chemical sterilizers#42.10.20.00.00
+unspsc7#42.10.20.06.00#Laboratory sterilizers#42.10.20.00.00
+unspsc7#42.10.20.07.00#Sterilization ovens#42.10.20.00.00
+unspsc7#42.10.20.08.00#Germicidal lamps#42.10.20.00.00
+unspsc7#42.10.20.09.00#Sterilizing lamps#42.10.20.00.00
+unspsc7#42.10.20.10.00#Decontamination washing equipment#42.10.20.00.00
+unspsc7#42.10.21.00.00#Surgical sets and instruments#42.10.00.00.00
+unspsc7#42.10.21.01.00#Cryo surgery equipment#42.10.21.00.00
+unspsc7#42.10.21.02.00#Autopsy instruments#42.10.21.00.00
+unspsc7#42.10.21.03.00#Suction units or parts#42.10.21.00.00
+unspsc7#42.10.21.04.00#Surgical lasers#42.10.21.00.00
+unspsc7#42.10.21.05.00#Electro cautery surgical equipment#42.10.21.00.00
+unspsc7#42.10.21.06.00#Ear or nose or throat (ENT) surgery instruments#42.10.21.00.00
+unspsc7#42.10.21.07.00#Gynecological surgery instruments#42.10.21.00.00
+unspsc7#42.10.21.08.00#Cardiology surgery instruments#42.10.21.00.00
+unspsc7#42.10.21.09.00#Micro surgery instruments#42.10.21.00.00
+unspsc7#42.10.21.10.00#Orthopedic surgery instruments#42.10.21.00.00
+unspsc7#42.10.21.11.00#Suture clips#42.10.21.00.00
+unspsc7#42.10.21.12.00#Dissecting instruments#42.10.21.00.00
+unspsc7#42.10.21.13.00#Dissecting pins#42.10.21.00.00
+unspsc7#42.10.21.14.00#Implant systems#42.10.21.00.00
+unspsc7#42.10.21.15.00#Blood lancets#42.10.21.00.00
+unspsc7#42.10.21.16.00#Scalpels#42.10.21.00.00
+unspsc7#42.10.21.17.00#Surgical blades#42.10.21.00.00
+unspsc7#42.10.21.18.00#Cranioclasts#42.10.21.00.00
+unspsc7#42.10.21.19.00#Surgical scissors#42.10.21.00.00
+unspsc7#42.10.21.20.00#Surgical shears#42.10.21.00.00
+unspsc7#42.10.21.21.00#Surgical drills#42.10.21.00.00
+unspsc7#42.10.21.22.00#Surgical wire saws#42.10.21.00.00
+unspsc7#42.10.21.23.00#Surgical perforators#42.10.21.00.00
+unspsc7#42.10.21.24.00#Curettes#42.10.21.00.00
+unspsc7#42.10.21.25.00#Surgical clamps#42.10.21.00.00
+unspsc7#42.10.21.26.00#Surgical instrument holders#42.10.21.00.00
+unspsc7#42.10.21.27.00#Surgical elevators#42.10.21.00.00
+unspsc7#42.10.21.28.00#Raspatory instruments#42.10.21.00.00
+unspsc7#42.10.21.29.00#Forceps#42.10.21.00.00
+unspsc7#42.10.21.30.00#Surgical retractors#42.10.21.00.00
+unspsc7#42.10.21.31.00#Surgical spreaders#42.10.21.00.00
+unspsc7#42.10.21.32.00#Uterine sound instruments#42.10.21.00.00
+unspsc7#42.10.21.33.00#Dilators#42.10.21.00.00
+unspsc7#42.10.21.34.00#Surgical dishes or pots#42.10.21.00.00
+unspsc7#42.10.21.35.00#Surgical probes#42.10.21.00.00
+unspsc7#42.10.21.36.00#Surgical mallets#42.10.21.00.00
+unspsc7#42.10.21.37.00#Decapitation hooks#42.10.21.00.00
+unspsc7#42.10.21.38.00#Sutures#42.10.21.00.00
+unspsc7#42.10.21.39.00#Catgut chromic sutures#42.10.21.00.00
+unspsc7#42.10.21.40.00#Laryngoscopes#42.10.21.00.00
+unspsc7#42.10.21.41.00#Surgical shaving kits#42.10.21.00.00
+unspsc7#42.10.22.00.00#Rehabilitation equipment and accessories#42.10.00.00.00
+unspsc7#42.10.22.01.00#Splints#42.10.22.00.00
+unspsc7#42.10.22.02.00#Psychological aptitude testing apparatus#42.10.22.00.00
+unspsc7#42.10.22.03.00#Massage apparatus#42.10.22.00.00
+unspsc7#42.10.22.04.00#Traction pulleys or belts or weights#42.10.22.00.00
+unspsc7#42.10.22.05.00#Physical therapy rehabilitation equipment or accessories#42.10.22.00.00
+unspsc7#42.10.22.06.00#Overbed frames#42.10.22.00.00
+unspsc7#42.10.22.07.00#Rehabilitation stimulators#42.10.22.00.00
+unspsc7#42.10.22.08.00#Patient lifters#42.10.22.00.00
+unspsc7#42.10.22.09.00#Short wave diathermy equipment#42.10.22.00.00
+unspsc7#42.10.22.10.00#Moist heat therapy equipment#42.10.22.00.00
+unspsc7#42.10.22.11.00#Heat or cold packs#42.10.22.00.00
+unspsc7#42.10.22.12.00#Physiological equipment#42.10.22.00.00
+unspsc7#42.10.22.13.00#Stimulators#42.10.22.00.00
+unspsc7#42.10.22.14.00#Rehabilitation supplies for the blind#42.10.22.00.00
+unspsc7#42.10.22.15.00#Electromyograph#42.10.22.00.00
+unspsc7#42.10.22.16.00#Rehabilitation supplies for speech handicapped#42.10.22.00.00
+unspsc7#42.10.22.17.00#Electro sleep apparatus#42.10.22.00.00
+unspsc7#42.10.22.18.00#Visual exercise training aids#42.10.22.00.00
+unspsc7#42.10.22.19.00#Orthopedic cushions#42.10.22.00.00
+unspsc7#42.10.23.00.00#Ophthalmology instruments and appliances#42.10.00.00.00
+unspsc7#42.10.23.01.00#Opthalmological punches#42.10.23.00.00
+unspsc7#42.10.23.02.00#Photocoagulators#42.10.23.00.00
+unspsc7#42.10.23.03.00#Slit lamps#42.10.23.00.00
+unspsc7#42.10.23.04.00#Perimeters#42.10.23.00.00
+unspsc7#42.10.23.05.00#Tonometers#42.10.23.00.00
+unspsc7#42.10.23.06.00#Retinometers#42.10.23.00.00
+unspsc7#42.10.23.07.00#Eyewashers#42.10.23.00.00
+unspsc7#42.10.23.08.00#Ophthalmometers#42.10.23.00.00
+unspsc7#42.10.23.09.00#Ophthalmoscopes#42.10.23.00.00
+unspsc7#42.10.23.10.00#Emergency eye care equipment#42.10.23.00.00
+unspsc7#42.10.23.11.00#Keratometers#42.10.23.00.00
+unspsc7#42.10.23.12.00#Vision testers#42.10.23.00.00
+unspsc7#42.10.23.13.00#Synotoscopes#42.10.23.00.00
+unspsc7#42.10.23.14.00#Ophthalmic operation instruments#42.10.23.00.00
+unspsc7#42.10.24.00.00#Gynecological and obstetrical instruments#42.10.00.00.00
+unspsc7#42.10.24.01.00#Intra uterine device (IUD) insertion kits#42.10.24.00.00
+unspsc7#42.10.24.02.00#Tubal ligation kits#42.10.24.00.00
+unspsc7#42.10.24.03.00#Vasectomy kits#42.10.24.00.00
+unspsc7#42.10.24.04.00#Laparoscopic equipment#42.10.24.00.00
+unspsc7#42.10.24.05.00#Silastic bands#42.10.24.00.00
+unspsc7#42.10.24.06.00#Menstruation regulation kits#42.10.24.00.00
+unspsc7#42.10.24.07.00#Spermokinesemeter#42.10.24.00.00
+unspsc7#42.10.24.08.00#Uterine or gynecological tests#42.10.24.00.00
+unspsc7#42.10.24.09.00#Obstetrical retractors#42.10.24.00.00
+unspsc7#42.10.24.10.00#Umbilical tapes#42.10.24.00.00
+unspsc7#42.10.24.11.00#Breast pumps or accessories#42.10.24.00.00
+unspsc7#42.10.24.12.00#Midwife equipment or kits#42.10.24.00.00
+unspsc7#42.10.24.13.00#Hysteroscopic equipment#42.10.24.00.00
+unspsc7#42.10.24.14.00#Vaginoscope#42.10.24.00.00
+unspsc7#42.10.24.15.00#Urethroscope cysterscope#42.10.24.00.00
+unspsc7#42.10.24.16.00#Umbilical cord clamps#42.10.24.00.00
+unspsc7#42.10.24.17.00#Vacuum extractors#42.10.24.00.00
+unspsc7#42.10.24.18.00#In vitro fertilization equipment or supplies#42.10.24.00.00
+unspsc7#42.10.24.19.00#Endometrial biopsy equipment#42.10.24.00.00
+unspsc7#42.10.24.20.00#Intrauterine insemination catheters#42.10.24.00.00
+unspsc7#42.10.24.21.00#Pelvimeters#42.10.24.00.00
+unspsc7#42.10.25.00.00#Fiber optic examination instruments#42.10.00.00.00
+unspsc7#42.10.25.01.00#Light sources#42.10.25.00.00
+unspsc7#42.10.25.02.00#Endoscopy equipment#42.10.25.00.00
+unspsc7#42.10.25.03.00#Protoscopes#42.10.25.00.00
+unspsc7#42.10.25.04.00#Culdoscopes#42.10.25.00.00
+unspsc7#42.10.25.05.00#Gastroscopes#42.10.25.00.00
+unspsc7#42.10.25.06.00#Esophagoscope#42.10.25.00.00
+unspsc7#42.10.25.07.00#Sigmoidoscope#42.10.25.00.00
+unspsc7#42.10.25.08.00#Bronchoscope#42.10.25.00.00
+unspsc7#42.10.25.09.00#Colonoscope#42.10.25.00.00
+unspsc7#42.10.25.10.00#Arthroscope#42.10.25.00.00
+unspsc7#42.10.26.00.00#Electro diagnostic apparatus#42.10.00.00.00
+unspsc7#42.10.26.01.00#Electrocardiographs (ECGs)#42.10.26.00.00
+unspsc7#42.10.26.02.00#Cardioscopes#42.10.26.00.00
+unspsc7#42.10.26.03.00#Stereotactic systems#42.10.26.00.00
+unspsc7#42.10.26.04.00#Achillean reflexometer#42.10.26.00.00
+unspsc7#42.10.26.05.00#Thesiometer#42.10.26.00.00
+unspsc7#42.10.26.06.00#Pneumotachographs#42.10.26.00.00
+unspsc7#42.10.26.07.00#Biovideographs#42.10.26.00.00
+unspsc7#42.10.26.08.00#Physiological levers#42.10.26.00.00
+unspsc7#42.10.26.09.00#Nerve chamber equipment#42.10.26.00.00
+unspsc7#42.10.26.10.00#Ultrasonic diagnostic equipment#42.10.26.00.00
+unspsc7#42.10.26.11.00#Ultrasound scanners#42.10.26.00.00
+unspsc7#42.10.26.12.00#Doppler ultrasound equipment#42.10.26.00.00
+unspsc7#42.10.26.13.00#Ultrasonic surgery equipment or ultrasonic aspiration#42.10.26.00.00
+unspsc7#42.10.26.14.00#Ultrasound physiotherapy equipment#42.10.26.00.00
+unspsc7#42.10.26.15.00#Cardio sonars#42.10.26.00.00
+unspsc7#42.10.26.16.00#Short wave medical apparatus#42.10.26.00.00
+unspsc7#42.10.26.17.00#Blood pressure measuring equipment#42.10.26.00.00
+unspsc7#42.10.26.18.00#Electroencephalographs (EEGs)#42.10.26.00.00
+unspsc7#42.10.26.19.00#Spirometers#42.10.26.00.00
+unspsc7#42.10.26.20.00#Gynecological diagnostic equipment#42.10.26.00.00
+unspsc7#42.10.26.21.00#Colposcopes#42.10.26.00.00
+unspsc7#42.10.26.22.00#Amnioscopes#42.10.26.00.00
+unspsc7#42.10.26.23.00#Fetal monitors#42.10.26.00.00
+unspsc7#42.10.26.24.00#Delivery monitors#42.10.26.00.00
+unspsc7#42.10.26.25.00#Neonatal monitors#42.10.26.00.00
+unspsc7#42.10.26.26.00#Heart monitor systems#42.10.26.00.00
+unspsc7#42.10.26.27.00#Intensive care monitors#42.10.26.00.00
+unspsc7#42.10.26.28.00#Electromedical testing equipment#42.10.26.00.00
+unspsc7#42.10.26.29.00#Defibrillator tester#42.10.26.00.00
+unspsc7#42.10.26.30.00#Audiometer calibration tester#42.10.26.00.00
+unspsc7#42.10.26.31.00#Electrode or electromedical tester#42.10.26.00.00
+unspsc7#42.10.26.32.00#Ventilator test meters#42.10.26.00.00
+unspsc7#42.10.26.33.00#ECG patient simulators#42.10.26.00.00
+unspsc7#42.10.26.34.00#Electrosurgical analyzers#42.10.26.00.00
+unspsc7#42.10.26.35.00#Electromedical safety analyzers#42.10.26.00.00
+unspsc7#42.10.26.36.00#Electromedical test systems#42.10.26.00.00
+unspsc7#42.10.26.37.00#Electronic pulse monitors#42.10.26.00.00
+unspsc7#42.10.26.38.00#Vaginal ultrasound probe#42.10.26.00.00
+unspsc7#42.10.26.39.00#Medical conductive gels#42.10.26.00.00
+unspsc7#42.10.27.00.00#Dialysis equipment and instruments#42.10.00.00.00
+unspsc7#42.10.27.01.00#Blood bag sampler#42.10.27.00.00
+unspsc7#42.10.27.02.00#Blood warmer#42.10.27.00.00
+unspsc7#42.10.27.03.00#Dialysis instrument sets#42.10.27.00.00
+unspsc7#42.10.27.04.00#Peritoneal dialysis units#42.10.27.00.00
+unspsc7#42.10.27.05.00#Haemodialysis units#42.10.27.00.00
+unspsc7#42.10.27.06.00#Blood filters#42.10.27.00.00
+unspsc7#42.10.27.07.00#Blood separator stand#42.10.27.00.00
+unspsc7#42.10.27.08.00#Plasmaphoresis equipment#42.10.27.00.00
+unspsc7#42.10.27.09.00#Angiographic injectors#42.10.27.00.00
+unspsc7#42.10.27.10.00#Hemafilters#42.10.27.00.00
+unspsc7#42.10.27.11.00#Dialysis tubing or membranes#42.10.27.00.00
+unspsc7#42.10.27.12.00#Blood oxygen demand apparatus#42.10.27.00.00
+unspsc7#42.10.27.13.00#Clot coagulation detection systems#42.10.27.00.00
+unspsc7#42.10.27.14.00#Medical drains or drainage kits#42.10.27.00.00
+unspsc7#42.10.27.15.00#Kymographs#42.10.27.00.00
+unspsc7#42.10.27.16.00#Blood sampling equipment#42.10.27.00.00
+unspsc7#42.10.28.00.00#Dental instruments and appliances#42.10.00.00.00
+unspsc7#42.10.28.01.00#Dental mixing slabs#42.10.28.00.00
+unspsc7#42.10.28.02.00#Bands for dental matrix#42.10.28.00.00
+unspsc7#42.10.28.03.00#Dental retainers#42.10.28.00.00
+unspsc7#42.10.28.04.00#Dental handpieces#42.10.28.00.00
+unspsc7#42.10.28.05.00#Dental cryosurgical instrumentation#42.10.28.00.00
+unspsc7#42.10.28.06.00#Dental formers#42.10.28.00.00
+unspsc7#42.10.28.07.00#Periodontium control instruments or periotest#42.10.28.00.00
+unspsc7#42.10.28.08.00#Dental trays#42.10.28.00.00
+unspsc7#42.10.28.09.00#Dental probes#42.10.28.00.00
+unspsc7#42.10.28.10.00#Dental scales#42.10.28.00.00
+unspsc7#42.10.28.11.00#Dental spatulas#42.10.28.00.00
+unspsc7#42.10.28.12.00#Dental elevators#42.10.28.00.00
+unspsc7#42.10.28.13.00#Dental excavators#42.10.28.00.00
+unspsc7#42.10.28.14.00#Dental finger protectors#42.10.28.00.00
+unspsc7#42.10.28.15.00#Dental tweezers#42.10.28.00.00
+unspsc7#42.10.28.16.00#Dental scissors#42.10.28.00.00
+unspsc7#42.10.28.17.00#Dental forceps#42.10.28.00.00
+unspsc7#42.10.28.18.00#Dental mirrors#42.10.28.00.00
+unspsc7#42.10.28.19.00#Orthodontic appliances#42.10.28.00.00
+unspsc7#42.10.28.20.00#Dental impression trays#42.10.28.00.00
+unspsc7#42.10.28.21.00#Dental syringes or needles#42.10.28.00.00
+unspsc7#42.10.28.22.00#Dental drills#42.10.28.00.00
+unspsc7#42.10.28.23.00#Endodontics accessories#42.10.28.00.00
+unspsc7#42.10.29.00.00#Cardiology equipment and supplies#42.10.00.00.00
+unspsc7#42.10.29.01.00#Heart valves#42.10.29.00.00
+unspsc7#42.10.29.02.00#Heart catheters#42.10.29.00.00
+unspsc7#42.10.29.03.00#Defribilators#42.10.29.00.00
+unspsc7#42.10.29.04.00#Aortic balloon equipment#42.10.29.00.00
+unspsc7#42.10.29.05.00#Pacemakers#42.10.29.00.00
+unspsc7#42.10.30.00.00#Medical consumables#42.10.00.00.00
+unspsc7#42.10.30.01.00#Blood or intravenous (IV) bottles or bags#42.10.30.00.00
+unspsc7#42.10.30.02.00#Tongue depressors#42.10.30.00.00
+unspsc7#42.10.30.03.00#Suture needles#42.10.30.00.00
+unspsc7#42.10.30.04.00#Biopsy needles#42.10.30.00.00
+unspsc7#42.10.30.05.00#Biopsy capsules or punches#42.10.30.00.00
+unspsc7#42.10.30.06.00#Dissecting needles#42.10.30.00.00
+unspsc7#42.10.30.07.00#Acupuncture needles#42.10.30.00.00
+unspsc7#42.10.30.08.00#Medical disposal containers#42.10.30.00.00
+unspsc7#42.10.30.09.00#Haematocrit tubes#42.10.30.00.00
+unspsc7#42.10.30.10.00#Swabs#42.10.30.00.00
+unspsc7#42.10.30.11.00#Blood transfusion needles or cannulae#42.10.30.00.00
+unspsc7#42.10.30.12.00#Transfer swabs or applicators#42.10.30.00.00
+unspsc7#42.10.30.13.00#Urine bags#42.10.30.00.00
+unspsc7#42.10.30.14.00#Specimen containers#42.10.30.00.00
+unspsc7#42.10.30.15.00#Plaster of paris#42.10.30.00.00
+unspsc7#42.10.30.16.00#Sterile strips#42.10.30.00.00
+unspsc7#42.10.30.17.00#Gauze cloth#42.10.30.00.00
+unspsc7#42.10.30.18.00#Cotton wool#42.10.30.00.00
+unspsc7#42.10.30.19.00#Sterile surgical compresses#42.10.30.00.00
+unspsc7#42.10.30.20.00#Bandages#42.10.30.00.00
+unspsc7#42.10.30.21.00#First aid kits or kit refills#42.10.30.00.00
+unspsc7#42.10.30.22.00#Hypodermic syringes#42.10.30.00.00
+unspsc7#42.10.30.23.00#Cotton swabs on sticks#42.10.30.00.00
+unspsc7#42.10.30.24.00#Infusion sets#42.10.30.00.00
+unspsc7#42.10.30.25.00#Nasogastric tubes#42.10.30.00.00
+unspsc7#42.10.30.26.00#Destruction clips#42.10.30.00.00
+unspsc7#42.10.30.27.00#Dressings#42.10.30.00.00
+unspsc7#42.10.30.28.00#Implantable drug delivery systems#42.10.30.00.00
+unspsc7#42.10.30.29.00#Automatic mass vaccinators#42.10.30.00.00
+unspsc7#42.10.30.30.00#Pipetting syringes#42.10.30.00.00
+unspsc7#42.10.30.31.00#Scalp vein needles or stopcocks#42.10.30.00.00
+unspsc7#42.10.30.32.00#Hypodermic needles#42.10.30.00.00
+unspsc7#42.10.30.33.00#Medical jet injectors#42.10.30.00.00
+unspsc7#42.10.30.34.00#Lancets#42.10.30.00.00
+unspsc7#42.10.30.35.00#Catheter for infusion#42.10.30.00.00
+unspsc7#42.10.30.36.00#Intavenous (IV) equipment tubes#42.10.30.00.00
+unspsc7#42.10.30.37.00#Eyewash solutions#42.10.30.00.00
+unspsc7#42.10.30.38.00#Examination gloves#42.10.30.00.00
+unspsc7#42.10.30.39.00#Pathogen cleanup kits#42.10.30.00.00
+unspsc7#42.10.30.40.00#Diabetic syringes#42.10.30.00.00
+unspsc7#42.10.30.41.00#Diabetic pen needles#42.10.30.00.00
+unspsc7#42.10.30.42.00#Lancet device#42.10.30.00.00
+unspsc7#42.11.00.00.00#Assistive and corrective devices for people with disabilities#42.00.00.00.00
+unspsc7#42.11.15.00.00#Prostheses and parts thereof#42.11.00.00.00
+unspsc7#42.11.15.01.00#Ankle or foot orthoses#42.11.15.00.00
+unspsc7#42.11.15.02.00#Cervical orthoses#42.11.15.00.00
+unspsc7#42.11.15.03.00#Cervico thoratic orthoses#42.11.15.00.00
+unspsc7#42.11.15.04.00#Cervico thoratic lumbo sacral orthoses#42.11.15.00.00
+unspsc7#42.11.15.05.00#Elbow orthoses#42.11.15.00.00
+unspsc7#42.11.15.06.00#Elbow wrist orthoses#42.11.15.00.00
+unspsc7#42.11.15.07.00#Finger orthoses#42.11.15.00.00
+unspsc7#42.11.15.08.00#Foot orthoses#42.11.15.00.00
+unspsc7#42.11.15.09.00#Hand orthoses#42.11.15.00.00
+unspsc7#42.11.15.10.00#Hip orthoses#42.11.15.00.00
+unspsc7#42.11.15.11.00#Hip knee ankle foot orthoses#42.11.15.00.00
+unspsc7#42.11.15.12.00#Hip or knee or ankle orthoses joints#42.11.15.00.00
+unspsc7#42.11.15.13.00#Shoulder or elbow or wrist orthoses joints#42.11.15.00.00
+unspsc7#42.11.15.14.00#Knee orthoses#42.11.15.00.00
+unspsc7#42.11.15.15.00#Knee ankle foot orthoses#42.11.15.00.00
+unspsc7#42.11.15.16.00#Lumbo or sacral orthoses#42.11.15.00.00
+unspsc7#42.11.15.17.00#Sacro iliac orthoses#42.11.15.00.00
+unspsc7#42.11.15.18.00#Shoulder or elbow or wrist or hand orthoses#42.11.15.00.00
+unspsc7#42.11.15.19.00#Thoraco or lumbo or sacral orthoses#42.11.15.00.00
+unspsc7#42.11.15.20.00#Wrist orthoses#42.11.15.00.00
+unspsc7#42.11.15.21.00#Wrist or hand orthoses#42.11.15.00.00
+unspsc7#42.11.15.22.00#Wrist or hand or finger orthoses#42.11.15.00.00
+unspsc7#42.11.15.23.00#Ankle disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.24.00#Aural prostheses#42.11.15.00.00
+unspsc7#42.11.15.25.00#Cosmetic or skin covering prostheses#42.11.15.00.00
+unspsc7#42.11.15.26.00#Elbow disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.27.00#Hip disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.28.00#Hook or functional tool prostheses#42.11.15.00.00
+unspsc7#42.11.15.29.00#Knee or hip joint prostheses or torque reducers#42.11.15.00.00
+unspsc7#42.11.15.30.00#Wrist or elbow joint prostheses#42.11.15.00.00
+unspsc7#42.11.15.31.00#Knee disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.32.00#Mammary prostheses#42.11.15.00.00
+unspsc7#42.11.15.33.00#Nasal prostheses#42.11.15.00.00
+unspsc7#42.11.15.34.00#Ocular prostheses#42.11.15.00.00
+unspsc7#42.11.15.35.00#Back filler prostheses#42.11.15.00.00
+unspsc7#42.11.15.36.00#Palate prostheses#42.11.15.00.00
+unspsc7#42.11.15.37.00#Partial foot including toe prostheses#42.11.15.00.00
+unspsc7#42.11.15.38.00#Partial hand including finger prostheses#42.11.15.00.00
+unspsc7#42.11.15.39.00#Shoulder disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.40.00#Socket or alignment unit prostheses#42.11.15.00.00
+unspsc7#42.11.15.41.00#Temporary prostheses for early mobilization of lower limb amputees#42.11.15.00.00
+unspsc7#42.11.15.42.00#Transfemoral prostheses#42.11.15.00.00
+unspsc7#42.11.15.43.00#Transhumeral prostheses#42.11.15.00.00
+unspsc7#42.11.15.44.00#Transradial prostheses#42.11.15.00.00
+unspsc7#42.11.15.45.00#Transtibial including ankle or foot device prostheses#42.11.15.00.00
+unspsc7#42.11.15.46.00#Wrist disarticulation prostheses#42.11.15.00.00
+unspsc7#42.11.15.47.00#Prosthetic hands#42.11.15.00.00
+unspsc7#42.11.15.48.00#Vascular prostheses#42.11.15.00.00
+unspsc7#42.11.16.00.00#Communication and educational material for people with disabilities#42.11.00.00.00
+unspsc7#42.11.16.01.00#Braille writing paper or plastic#42.11.16.00.00
+unspsc7#42.11.16.02.00#Switchboards for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.03.00#Character reading machines for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.04.00#Synthetic speech devices for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.05.00#Tactile displays for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.06.00#Letter or symbol boards for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.07.00#Dialogue units for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.08.00#Voice generators for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.09.00#Voice amplifiers for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.10.00#Hearing aids#42.11.16.00.00
+unspsc7#42.11.16.11.00#Writing frames for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.12.00#Rain indicators for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.13.00#Light indicators for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.14.00#Sound indicators for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.15.00#Speech training aids for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.16.00#Language training aids for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.17.00#Braille equipment#42.11.16.00.00
+unspsc7#42.11.16.18.00#Book or manuscript holders for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.19.00#Page turners for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.20.00#Signature guides or stamps for people with disabilities#42.11.16.00.00
+unspsc7#42.11.16.21.00#Ergonomically designed stationery aids for people with disabilities#42.11.16.00.00
+unspsc7#42.11.17.00.00#Furniture and accessories for people with disabilities#42.11.00.00.00
+unspsc7#42.11.17.01.00#Pressure sore prevention furniture#42.11.17.00.00
+unspsc7#42.11.17.02.00#Pressure sore prevention mattresses or coverings#42.11.17.00.00
+unspsc7#42.11.17.03.00#Backpads or backrests or similar adaptations for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.04.00#Arm rests for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.05.00#Bed extensions for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.06.00#Bed lifts for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.07.00#Bed shortening aids for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.08.00#Ergonomicall designed beds for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.09.00#Blanket supports for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.10.00#Mechanized chairs to assist with sitting or standing for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.11.00#Coxit or arthrodesis chairs for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.12.00#Leg extenders for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.13.00#Leg supports for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.14.00#Modular or special sitting furniture systems for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.15.00#Height adjustable plinths or brackets for people with disabilities#42.11.17.00.00
+unspsc7#42.11.17.16.00#Ergonomically designed tables for people with disabilities#42.11.17.00.00
+unspsc7#42.11.18.00.00#Personal care devices for people with disabilities#42.11.00.00.00
+unspsc7#42.11.18.01.00#Aids to assist in dressing ones self for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.02.00#Aids for washing ones self for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.03.00#Aids for drying ones self for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.04.00#Bathing stretchers or shower tables for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.05.00#Diaper changing tables for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.06.00#Bedpans or commode chairs for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.07.00#Buttoning or fastening devices for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.08.00#Extended handle combs or brushes for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.09.00#Toilet attached douches or air dryers for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.10.00#Toilet seats for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.11.00#Hand grip toothbrushes for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.12.00#Body worn urine absorbing aids for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.13.00#Urine collection systems for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.14.00#Incontinence alarms for people with disabilities#42.11.18.00.00
+unspsc7#42.11.18.15.00#Ostomy bags or accessories for people with disabilities#42.11.18.00.00
+unspsc7#42.11.19.00.00#Protection and mobility devices for people with disabilities#42.11.00.00.00
+unspsc7#42.11.19.01.00#Crutches#42.11.19.00.00
+unspsc7#42.11.19.02.00#Tripods or quadropods#42.11.19.00.00
+unspsc7#42.11.19.03.00#Walking sticks accessories or parts thereof#42.11.19.00.00
+unspsc7#42.11.19.04.00#Rollators#42.11.19.00.00
+unspsc7#42.11.19.05.00#Walkers#42.11.19.00.00
+unspsc7#42.11.19.06.00#Wheelchairs#42.11.19.00.00
+unspsc7#42.11.19.07.00#Wheelchair accessories#42.11.19.00.00
+unspsc7#42.11.19.08.00#Support rails for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.09.00#Rope ladders or lifting belts or harnesses for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.10.00#Lifting or turning cushions carpets or sheets for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.11.00#Hoists or trolleys for people with disabities#42.11.19.00.00
+unspsc7#42.11.19.12.00#Wheelchair ramps#42.11.19.00.00
+unspsc7#42.11.19.13.00#Wheelchair lifting platforms#42.11.19.00.00
+unspsc7#42.11.19.14.00#Navigation or orientation aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.15.00#Chair lifts or chair transporters for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.16.00#Warning or alarm devices for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.17.00#Airway protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.18.00#Ear or hearing protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.19.00#Face or eye protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.20.00#Hand or arm or elbow protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.21.00#Head protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.22.00#Lower extremity protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.23.00#Bathtub length or width reduction aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.24.00#Trunk or whole body protection aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.25.00#Body support units for hoists for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.26.00#Door warners for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.27.00#Floatation or swmming aids for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.28.00#Relief maps for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.29.00#Non cosmetic skin cleaning or protective products for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.30.00#Stationary hoists for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.31.00#Stoma shields or protectors#42.11.19.00.00
+unspsc7#42.11.19.32.00#Tactile sticks for people with disabilities#42.11.19.00.00
+unspsc7#42.11.19.33.00#Toilet arm or backrests for people with disabilities#42.11.19.00.00
+unspsc7#42.11.20.00.00#Recreational and training aids for people with disabilities#42.11.00.00.00
+unspsc7#42.11.20.01.00#Camping equipment for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.02.00#Tilting tables for balance training for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.03.00#Biofeedback devices for movement strength or balance for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.04.00#Sports exercise aids for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.05.00#Fishing or hunting aids for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.06.00#Playing or training balls for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.07.00#Chess for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.08.00#Playing cards or holders for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.09.00#Gardening tools or aids for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.10.00#Handicraft tools materials or equipment for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.11.00#Photographic equipment or aids for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.12.00#Caravanning equipment for people with disabilities#42.11.20.00.00
+unspsc7#42.11.20.13.00#Vibrating chairs for training deaf people#42.11.20.00.00
+unspsc7#42.11.21.00.00#Specialized aids for housekeeping and handling goods and measuring for people with disabilities#42.11.00.00.00
+unspsc7#42.11.21.01.00#Weighing or measuring aids or people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.02.00#Cutting or chopping or dividing aids or people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.03.00#Cleaning or peeling aids for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.04.00#Baking or cooking or frying aids for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.05.00#Food or drink service aids for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.06.00#Food stoppers or funnels for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.07.00#Tableware for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.08.00#Pusher edges or plate buffers for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.09.00#Feeding apparatus for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.10.00#Feeding probes for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.11.00#Shoe cleaning apparatus for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.12.00#Sewing or knitting or crocheting or darning aids for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.13.00#Bottle or can or container openers for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.14.00#Tube squeezing keys for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.15.00#Grasping aids to assist or replace hand or finger function for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.16.00#Grip adapters or attachments for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.17.00#Body worn holders to assist hand or finger function for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.18.00#Stands to assist hand or finger function for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.19.00#Operating sticks such as head or chin or mouth sticks for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.20.00#Extenders without grip function for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.21.00#Fixed positioning systems for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.22.00#Balances or equipment for hoisting or balancing objects for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.23.00#Manipulators for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.24.00#Robots to assist people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.25.00#Indicators such as signal lights or buzzers for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.26.00#Pointing lamps for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.27.00#Measuring aids or tools for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.28.00#Object positioning lifting or tilting systems for people with disabilities#42.11.21.00.00
+unspsc7#42.11.21.29.00#Manual extended reach gripping tongs for people with disabilities#42.11.21.00.00
+unspsc7#42.12.00.00.00#Veterinary equipment and supplies#42.00.00.00.00
+unspsc7#42.12.15.00.00#Veterinary equipment#42.12.00.00.00
+unspsc7#42.12.15.01.00#Veterinary blood pressure testers#42.12.15.00.00
+unspsc7#42.12.15.02.00#Veterinary kymograph tester#42.12.15.00.00
+unspsc7#42.12.15.03.00#Veterinary pyrogenic tester#42.12.15.00.00
+unspsc7#42.12.15.04.00#Veterinary stereotoxic equipment#42.12.15.00.00
+unspsc7#42.12.15.05.00#Veterinary electrocardiograph (ECG)#42.12.15.00.00
+unspsc7#42.12.16.00.00#Veterinary products#42.12.00.00.00
+unspsc7#42.12.16.01.00#Gastrointestinal veterinary products#42.12.16.00.00
+unspsc7#42.12.16.02.00#Blood or blood forming veterinary products#42.12.16.00.00
+unspsc7#42.12.16.03.00#Respiratory system veterinary products#42.12.16.00.00
+unspsc7#42.12.16.04.00#Musculo skeletal or nervous system veterinary products#42.12.16.00.00
+unspsc7#42.12.16.05.00#Cardiovascular system veterinary products#42.12.16.00.00
+unspsc7#42.12.16.06.00#Dermatologicals or antiprotozoa veterinary products#42.12.16.00.00
+unspsc7#42.12.16.07.00#Genito urinary system sex or hormone veterinary products#42.12.16.00.00
+unspsc7#43.00.00.00.00#Communications and Computer Equipment and Peripherals and Components and Supplies#43.00.00.00.00
+unspsc7#43.16.00.00.00#Software#43.00.00.00.00
+unspsc7#43.16.15.00.00#Database systems#43.16.00.00.00
+unspsc7#43.16.15.01.00#Database software#43.16.15.00.00
+unspsc7#43.16.16.00.00#Operating systems#43.16.00.00.00
+unspsc7#43.16.16.01.00#Mainframe operating system software#43.16.16.00.00
+unspsc7#43.16.16.02.00#Personal computer (PC) operating system software#43.16.16.00.00
+unspsc7#43.16.16.03.00#Open systems operating systems#43.16.16.00.00
+unspsc7#43.16.16.04.00#Clustering software#43.16.16.00.00
+unspsc7#43.16.17.00.00#Business transaction and personal business software#43.16.00.00.00
+unspsc7#43.16.17.01.00#Investment management software#43.16.17.00.00
+unspsc7#43.16.17.02.00#Tax preparation software#43.16.17.00.00
+unspsc7#43.16.17.03.00#Facilities management software#43.16.17.00.00
+unspsc7#43.16.17.04.00#Software suites#43.16.17.00.00
+unspsc7#43.16.17.05.00#Inventory management software#43.16.17.00.00
+unspsc7#43.16.17.06.00#Financial analysis software#43.16.17.00.00
+unspsc7#43.16.17.07.00#Accounting software#43.16.17.00.00
+unspsc7#43.16.17.08.00#Time accounting or human resources software#43.16.17.00.00
+unspsc7#43.16.17.09.00#Analytical or scientific software#43.16.17.00.00
+unspsc7#43.16.17.10.00#Mathematical or forecasting software#43.16.17.00.00
+unspsc7#43.16.17.11.00#Auction software#43.16.17.00.00
+unspsc7#43.16.17.12.00#Sales or marketing software#43.16.17.00.00
+unspsc7#43.16.18.00.00#Document creation software#43.16.00.00.00
+unspsc7#43.16.18.01.00#Document management software#43.16.18.00.00
+unspsc7#43.16.18.02.00#Electronic publishing software#43.16.18.00.00
+unspsc7#43.16.18.03.00#Optical character reader (OCR) software#43.16.18.00.00
+unspsc7#43.16.18.04.00#Voice recognition software#43.16.18.00.00
+unspsc7#43.16.18.05.00#Desktop publishing software#43.16.18.00.00
+unspsc7#43.16.18.06.00#Presentation software#43.16.18.00.00
+unspsc7#43.16.18.07.00#Word processing software#43.16.18.00.00
+unspsc7#43.16.18.08.00#Scanner software#43.16.18.00.00
+unspsc7#43.16.18.09.00#Spell checkers#43.16.18.00.00
+unspsc7#43.16.19.00.00#Drawing and imaging software#43.16.00.00.00
+unspsc7#43.16.19.01.00#Computer aided design (CAD) software#43.16.19.00.00
+unspsc7#43.16.19.02.00#Graphics software#43.16.19.00.00
+unspsc7#43.16.19.03.00#Educational software#43.16.19.00.00
+unspsc7#43.16.19.04.00#Computer aided manufacturing (CAM) software#43.16.19.00.00
+unspsc7#43.16.19.05.00#Charting software#43.16.19.00.00
+unspsc7#43.16.19.06.00#Form making software#43.16.19.00.00
+unspsc7#43.16.19.07.00#Mapping software#43.16.19.00.00
+unspsc7#43.16.20.00.00#Scheduling and productivity software#43.16.00.00.00
+unspsc7#43.16.20.01.00#Project management software#43.16.20.00.00
+unspsc7#43.16.20.02.00#Scheduling software#43.16.20.00.00
+unspsc7#43.16.20.03.00#Contact management software#43.16.20.00.00
+unspsc7#43.16.21.00.00#Spreadsheets and enhancement software#43.16.00.00.00
+unspsc7#43.16.21.01.00#Spreadsheet software#43.16.21.00.00
+unspsc7#43.16.22.00.00#Multimedia software#43.16.00.00.00
+unspsc7#43.16.22.01.00#Music or sound editing software#43.16.22.00.00
+unspsc7#43.16.23.00.00#Print shop software#43.16.00.00.00
+unspsc7#43.16.23.01.00#Address book making software#43.16.23.00.00
+unspsc7#43.16.23.02.00#Label making software#43.16.23.00.00
+unspsc7#43.16.24.00.00#Programming languages and tools#43.16.00.00.00
+unspsc7#43.16.24.01.00#Compiling softwares#43.16.24.00.00
+unspsc7#43.16.24.02.00#Configuration management software#43.16.24.00.00
+unspsc7#43.16.24.03.00#Development software#43.16.24.00.00
+unspsc7#43.16.24.04.00#Graphical user interface (GUI) tools#43.16.24.00.00
+unspsc7#43.16.24.05.00#Programming languages#43.16.24.00.00
+unspsc7#43.16.24.06.00#Program testing software#43.16.24.00.00
+unspsc7#43.16.25.00.00#Software utilities#43.16.00.00.00
+unspsc7#43.16.25.01.00#Backup or recovery software#43.16.25.00.00
+unspsc7#43.16.25.02.00#Bar coding software#43.16.25.00.00
+unspsc7#43.16.25.03.00#File security or data security software#43.16.25.00.00
+unspsc7#43.16.25.04.00#Foreign language translation software#43.16.25.00.00
+unspsc7#43.16.25.05.00#Print utility software#43.16.25.00.00
+unspsc7#43.16.25.06.00#Storage media loading software#43.16.25.00.00
+unspsc7#43.16.25.07.00#Virus protection software#43.16.25.00.00
+unspsc7#43.16.25.08.00#General utility software#43.16.25.00.00
+unspsc7#43.16.25.09.00#Compression utilities#43.16.25.00.00
+unspsc7#43.16.25.10.00#System management software#43.16.25.00.00
+unspsc7#43.16.25.11.00#Storage management software#43.16.25.00.00
+unspsc7#43.16.25.12.00#Version checker software#43.16.25.00.00
+unspsc7#43.16.26.00.00#Networking software#43.16.00.00.00
+unspsc7#43.16.26.01.00#Platform interconnectivity software#43.16.26.00.00
+unspsc7#43.16.26.02.00#Optical jukebox server software#43.16.26.00.00
+unspsc7#43.16.26.03.00#Operating system enhancement software#43.16.26.00.00
+unspsc7#43.16.26.04.00#Network operating system software#43.16.26.00.00
+unspsc7#43.16.26.05.00#Networking developers software#43.16.26.00.00
+unspsc7#43.16.26.06.00#Network connectivity terminal emulation software#43.16.26.00.00
+unspsc7#43.16.26.07.00#Mainframe transaction processing software#43.16.26.00.00
+unspsc7#43.16.26.08.00#License management software#43.16.26.00.00
+unspsc7#43.16.26.09.00#Gateway software#43.16.26.00.00
+unspsc7#43.16.26.10.00#Compact disc (CD) server software#43.16.26.00.00
+unspsc7#43.16.26.11.00#Administration software#43.16.26.00.00
+unspsc7#43.16.26.12.00#Transaction server software#43.16.26.00.00
+unspsc7#43.16.26.13.00#Switch or router software#43.16.26.00.00
+unspsc7#43.16.26.14.00#Multiplexer software#43.16.26.00.00
+unspsc7#43.16.26.15.00#Communications server software#43.16.26.00.00
+unspsc7#43.16.26.16.00#Bridge software#43.16.26.00.00
+unspsc7#43.16.27.00.00#Communication Software#43.16.00.00.00
+unspsc7#43.16.27.01.00#Desktop communications software#43.16.27.00.00
+unspsc7#43.16.27.02.00#Server communications software#43.16.27.00.00
+unspsc7#43.16.27.03.00#Interactive voice response software#43.16.27.00.00
+unspsc7#43.16.27.04.00#Modem software#43.16.27.00.00
+unspsc7#43.16.27.05.00#Remote access software#43.16.27.00.00
+unspsc7#43.16.27.06.00#Video conferencing software#43.16.27.00.00
+unspsc7#43.16.27.07.00#Exchange software#43.16.27.00.00
+unspsc7#43.16.28.00.00#Internet and intranet software#43.16.00.00.00
+unspsc7#43.16.28.01.00#Internet browsing software#43.16.28.00.00
+unspsc7#43.16.28.02.00#Web server software#43.16.28.00.00
+unspsc7#43.16.29.00.00#Miscellaneous software#43.16.00.00.00
+unspsc7#43.16.29.01.00#Computer game software#43.16.29.00.00
+unspsc7#43.16.29.02.00#Screen savers#43.16.29.00.00
+unspsc7#43.16.29.03.00#Training software#43.16.29.00.00
+unspsc7#43.16.29.04.00#Entertainment software#43.16.29.00.00
+unspsc7#43.16.29.05.00#Family titles#43.16.29.00.00
+unspsc7#43.16.29.06.00#Educational software#43.16.29.00.00
+unspsc7#43.16.30.00.00#Industry specific software#43.16.00.00.00
+unspsc7#43.16.30.01.00#Point of sale (POS) software#43.16.30.00.00
+unspsc7#43.16.30.02.00#Flight control software#43.16.30.00.00
+unspsc7#43.16.30.03.00#Aviation ground support software#43.16.30.00.00
+unspsc7#43.16.30.04.00#Aviation test software#43.16.30.00.00
+unspsc7#43.16.30.05.00#Industrial control software#43.16.30.00.00
+unspsc7#43.16.30.06.00#Library software#43.16.30.00.00
+unspsc7#43.16.30.07.00#Compliance software#43.16.30.00.00
+unspsc7#43.16.31.00.00#Drivers and system software#43.16.00.00.00
+unspsc7#43.16.31.01.00#Ethernet drivers#43.16.31.00.00
+unspsc7#43.16.31.02.00#Graphics card drivers#43.16.31.00.00
+unspsc7#43.17.00.00.00#Hardware and accessories#43.00.00.00.00
+unspsc7#43.17.15.00.00#Telephony equipment#43.17.00.00.00
+unspsc7#43.17.15.01.00#Exchange components (CODEC)#43.17.15.00.00
+unspsc7#43.17.15.02.00#Exchange data interface cards#43.17.15.00.00
+unspsc7#43.17.15.03.00#Exchange datacom modules#43.17.15.00.00
+unspsc7#43.17.15.04.00#Phone exchange interfaces or components#43.17.15.00.00
+unspsc7#43.17.15.05.00#Exchange trunk interface or card components#43.17.15.00.00
+unspsc7#43.17.15.06.00#Premise branch exchange (PBX) systems#43.17.15.00.00
+unspsc7#43.17.15.07.00#Telephone switching equipment#43.17.15.00.00
+unspsc7#43.17.15.08.00#Switchboard equipment#43.17.15.00.00
+unspsc7#43.17.15.09.00#Punch down blocks#43.17.15.00.00
+unspsc7#43.17.15.10.00#Analog or digital telephones#43.17.15.00.00
+unspsc7#43.17.15.11.00#Analog or digital cellular telephones#43.17.15.00.00
+unspsc7#43.17.15.12.00#Mobile telephones#43.17.15.00.00
+unspsc7#43.17.15.13.00#Cordless telephones#43.17.15.00.00
+unspsc7#43.17.15.14.00#Pay telephones#43.17.15.00.00
+unspsc7#43.17.15.15.00#Answering machines#43.17.15.00.00
+unspsc7#43.17.15.16.00#Telephone headsets#43.17.15.00.00
+unspsc7#43.17.15.17.00#Voice mail systems#43.17.15.00.00
+unspsc7#43.17.15.18.00#Call management system#43.17.15.00.00
+unspsc7#43.17.15.19.00#Cellular telephone accessories#43.17.15.00.00
+unspsc7#43.17.15.20.00#Telephone rests#43.17.15.00.00
+unspsc7#43.17.15.21.00#Telephone adapters#43.17.15.00.00
+unspsc7#43.17.15.22.00#Telephone line multipliers#43.17.15.00.00
+unspsc7#43.17.15.23.00#Telephone line modular couplers#43.17.15.00.00
+unspsc7#43.17.15.24.00#Videophones#43.17.15.00.00
+unspsc7#43.17.15.25.00#Dialers#43.17.15.00.00
+unspsc7#43.17.15.26.00#Telephone amplifiers#43.17.15.00.00
+unspsc7#43.17.15.27.00#Telephone stands or holders#43.17.15.00.00
+unspsc7#43.17.15.28.00#Integrated services digital network exchanges ISDN#43.17.15.00.00
+unspsc7#43.17.15.29.00#Telephone jacks#43.17.15.00.00
+unspsc7#43.17.16.00.00#Antennas#43.17.00.00.00
+unspsc7#43.17.16.01.00#Transmitters#43.17.16.00.00
+unspsc7#43.17.16.02.00#Receivers#43.17.16.00.00
+unspsc7#43.17.16.03.00#Tuners#43.17.16.00.00
+unspsc7#43.17.16.04.00#Short wave equipment#43.17.16.00.00
+unspsc7#43.17.16.05.00#Aircraft antennas#43.17.16.00.00
+unspsc7#43.17.16.06.00#Automotive antennas#43.17.16.00.00
+unspsc7#43.17.16.07.00#Broadcast antennas#43.17.16.00.00
+unspsc7#43.17.16.08.00#Microwave antennas#43.17.16.00.00
+unspsc7#43.17.16.09.00#Television antennas#43.17.16.00.00
+unspsc7#43.17.16.10.00#Satellite antennas#43.17.16.00.00
+unspsc7#43.17.16.11.00#Radio antennas#43.17.16.00.00
+unspsc7#43.17.16.12.00#Radar antennas#43.17.16.00.00
+unspsc7#43.17.16.13.00#Communications antennas#43.17.16.00.00
+unspsc7#43.17.16.14.00#Communication towers or support#43.17.16.00.00
+unspsc7#43.17.17.00.00#Telecommunications equipment#43.17.00.00.00
+unspsc7#43.17.17.01.00#Wireless base stations#43.17.17.00.00
+unspsc7#43.17.17.02.00#Telegraph equipment#43.17.17.00.00
+unspsc7#43.17.17.03.00#Teletype equipment#43.17.17.00.00
+unspsc7#43.17.17.04.00#Teleconferencing equipment#43.17.17.00.00
+unspsc7#43.17.17.05.00#Satellite communication equipment#43.17.17.00.00
+unspsc7#43.17.17.06.00#Pagers or beepers#43.17.17.00.00
+unspsc7#43.17.17.07.00#Intercommunications or paging systems#43.17.17.00.00
+unspsc7#43.17.17.08.00#Public address equipment#43.17.17.00.00
+unspsc7#43.17.17.09.00#Electronic sound equipment#43.17.17.00.00
+unspsc7#43.17.17.10.00#Dictating machines#43.17.17.00.00
+unspsc7#43.17.17.11.00#Line conditioners#43.17.17.00.00
+unspsc7#43.17.17.12.00#Channel service unit or data service unit (CSU or DSU)#43.17.17.00.00
+unspsc7#43.17.18.00.00#Computers#43.17.00.00.00
+unspsc7#43.17.18.01.00#Notebook computers#43.17.18.00.00
+unspsc7#43.17.18.02.00#Docking stations#43.17.18.00.00
+unspsc7#43.17.18.03.00#Workstations or desktop computers#43.17.18.00.00
+unspsc7#43.17.18.04.00#Personal digital assistants (PDAs) or pen based computers#43.17.18.00.00
+unspsc7#43.17.18.05.00#Mainframe computers#43.17.18.00.00
+unspsc7#43.17.18.06.00#Servers#43.17.18.00.00
+unspsc7#43.17.18.07.00#Port replicators#43.17.18.00.00
+unspsc7#43.17.18.08.00#Minicomputers#43.17.18.00.00
+unspsc7#43.17.18.09.00#Point of sale (POS) terminals#43.17.18.00.00
+unspsc7#43.17.18.10.00#Programmable logic controller (PLC)#43.17.18.00.00
+unspsc7#43.17.18.11.00#Console mainframe#43.17.18.00.00
+unspsc7#43.17.18.12.00#Console controller mainframe#43.17.18.00.00
+unspsc7#43.17.18.13.00#Channel converter#43.17.18.00.00
+unspsc7#43.17.18.14.00#Channel to channel interface mainframe#43.17.18.00.00
+unspsc7#43.17.18.15.00#Control unit#43.17.18.00.00
+unspsc7#43.17.18.16.00#Coupler facility mainframe#43.17.18.00.00
+unspsc7#43.17.18.17.00#Power cooler unit mainframe#43.17.18.00.00
+unspsc7#43.17.18.18.00#Thin client or diskless workstations#43.17.18.00.00
+unspsc7#43.17.18.19.00#Console extenders#43.17.18.00.00
+unspsc7#43.17.19.00.00#Memory and central processing units CPUs and accessories#43.17.00.00.00
+unspsc7#43.17.19.01.00#Cache memory modules#43.17.19.00.00
+unspsc7#43.17.19.02.00#Central processing unit (CPU) processors#43.17.19.00.00
+unspsc7#43.17.19.03.00#Cental processing unit (CPU) motherboards or daughterboards#43.17.19.00.00
+unspsc7#43.17.19.04.00#Memory modules#43.17.19.00.00
+unspsc7#43.17.19.05.00#Central processing unit coolers#43.17.19.00.00
+unspsc7#43.17.20.00.00#Computer control and interface boards and cards and cables#43.17.00.00.00
+unspsc7#43.17.20.01.00#Parallel to small computer system interface converters#43.17.20.00.00
+unspsc7#43.17.20.02.00#Parallel to serial converters#43.17.20.00.00
+unspsc7#43.17.20.03.00#Serial infrared ports#43.17.20.00.00
+unspsc7#43.17.20.04.00#Video accelerator cards#43.17.20.00.00
+unspsc7#43.17.20.05.00#Graphic accelerator cards#43.17.20.00.00
+unspsc7#43.17.20.06.00#Network interface cards#43.17.20.00.00
+unspsc7#43.17.20.07.00#Audio cards#43.17.20.00.00
+unspsc7#43.17.20.08.00#Emulation adapters#43.17.20.00.00
+unspsc7#43.17.20.09.00#Serial port cards#43.17.20.00.00
+unspsc7#43.17.20.10.00#Parallel port cards#43.17.20.00.00
+unspsc7#43.17.20.11.00#Small computer system interface (SCSI) controller cards#43.17.20.00.00
+unspsc7#43.17.20.12.00#Decoder#43.17.20.00.00
+unspsc7#43.17.20.13.00#Programmable logic controller input module#43.17.20.00.00
+unspsc7#43.17.20.14.00#Programmable logic controller counter module#43.17.20.00.00
+unspsc7#43.17.20.15.00#Programmable logic controller communication module#43.17.20.00.00
+unspsc7#43.17.20.16.00#Wireless network interface cards#43.17.20.00.00
+unspsc7#43.17.20.17.00#Timekeeping card machine and computer interface device#43.17.20.00.00
+unspsc7#43.17.20.18.00#Processor cards#43.17.20.00.00
+unspsc7#43.17.21.00.00#Audio and visual accessories#43.17.00.00.00
+unspsc7#43.17.21.01.00#Musical instrument digital interface (MIDI) interfaces or adapters#43.17.21.00.00
+unspsc7#43.17.21.02.00#Signal processor upgrades#43.17.21.00.00
+unspsc7#43.17.21.03.00#Video capture boards#43.17.21.00.00
+unspsc7#43.17.21.04.00#Television cards#43.17.21.00.00
+unspsc7#43.17.21.05.00#Radio cards#43.17.21.00.00
+unspsc7#43.17.21.06.00#Multimedia kits#43.17.21.00.00
+unspsc7#43.17.21.07.00#Computer speakers#43.17.21.00.00
+unspsc7#43.17.21.08.00#Computer headset#43.17.21.00.00
+unspsc7#43.17.21.09.00#Set top boxes#43.17.21.00.00
+unspsc7#43.17.21.10.00#Video cassette containers#43.17.21.00.00
+unspsc7#43.17.22.00.00#Input devices#43.17.00.00.00
+unspsc7#43.17.22.01.00#Bar code readers#43.17.22.00.00
+unspsc7#43.17.22.02.00#Graphics tablets or digitizers#43.17.22.00.00
+unspsc7#43.17.22.03.00#Joysticks or game pads#43.17.22.00.00
+unspsc7#43.17.22.04.00#Keyboards or keypads#43.17.22.00.00
+unspsc7#43.17.22.05.00#Computer mouse#43.17.22.00.00
+unspsc7#43.17.22.06.00#Remote user interfaces#43.17.22.00.00
+unspsc7#43.17.22.07.00#Scanners#43.17.22.00.00
+unspsc7#43.17.22.08.00#Touch pads#43.17.22.00.00
+unspsc7#43.17.22.09.00#Touch screens#43.17.22.00.00
+unspsc7#43.17.22.10.00#Trackballs#43.17.22.00.00
+unspsc7#43.17.22.11.00#Voice microphones for computers#43.17.22.00.00
+unspsc7#43.17.22.12.00#Punch card readers#43.17.22.00.00
+unspsc7#43.17.22.13.00#Light pen#43.17.22.00.00
+unspsc7#43.17.22.14.00#Stylus pen for mobile computers#43.17.22.00.00
+unspsc7#43.17.22.15.00#Mouse pad#43.17.22.00.00
+unspsc7#43.17.22.16.00#Programmable logic controller handheld programmer#43.17.22.00.00
+unspsc7#43.17.22.17.00#EGR Electronic gate reader#43.17.22.00.00
+unspsc7#43.17.22.18.00#Dumb terminal#43.17.22.00.00
+unspsc7#43.17.22.19.00#Punched cards#43.17.22.00.00
+unspsc7#43.17.23.00.00#Electronic data storage equipment#43.17.00.00.00
+unspsc7#43.17.23.01.00#Read only compact disc (CD) drives#43.17.23.00.00
+unspsc7#43.17.23.02.00#Compact disc (CD) jukeboxes or changers#43.17.23.00.00
+unspsc7#43.17.23.03.00#Combination floppy drives#43.17.23.00.00
+unspsc7#43.17.23.04.00#Disk arrays#43.17.23.00.00
+unspsc7#43.17.23.05.00#Floppy drives#43.17.23.00.00
+unspsc7#43.17.23.06.00#High capacity removable media drives#43.17.23.00.00
+unspsc7#43.17.23.07.00#Multi drive hard drive towers#43.17.23.00.00
+unspsc7#43.17.23.08.00#Recordable compact disc (CD) drives#43.17.23.00.00
+unspsc7#43.17.23.09.00#Reel to reel tape drives#43.17.23.00.00
+unspsc7#43.17.23.10.00#Single optical drives#43.17.23.00.00
+unspsc7#43.17.23.11.00#Tape arrays#43.17.23.00.00
+unspsc7#43.17.23.12.00#Tape drive auto loaders or libraries#43.17.23.00.00
+unspsc7#43.17.23.13.00#Hard drives#43.17.23.00.00
+unspsc7#43.17.23.14.00#Computer DVD drives#43.17.23.00.00
+unspsc7#43.17.23.15.00#Array controller#43.17.23.00.00
+unspsc7#43.17.23.16.00#MP3 player#43.17.23.00.00
+unspsc7#43.17.23.17.00#Memory card readers#43.17.23.00.00
+unspsc7#43.17.23.18.00#Peripheral component microchannel interconnect architecture reader and writer drives#43.17.23.00.00
+unspsc7#43.17.24.00.00#Monitors and displays#43.17.00.00.00
+unspsc7#43.17.24.01.00#Monitors#43.17.24.00.00
+unspsc7#43.17.24.02.00#Flat panel displays#43.17.24.00.00
+unspsc7#43.17.24.03.00#Touch screen monitors#43.17.24.00.00
+unspsc7#43.17.24.04.00#Monitor accessories#43.17.24.00.00
+unspsc7#43.17.25.00.00#Printers#43.17.00.00.00
+unspsc7#43.17.25.01.00#Plotters#43.17.25.00.00
+unspsc7#43.17.25.02.00#Band printers#43.17.25.00.00
+unspsc7#43.17.25.03.00#Dot matrix printers#43.17.25.00.00
+unspsc7#43.17.25.04.00#Label printers#43.17.25.00.00
+unspsc7#43.17.25.05.00#Large format printers#43.17.25.00.00
+unspsc7#43.17.25.06.00#Line matrix printers#43.17.25.00.00
+unspsc7#43.17.25.07.00#Page printers#43.17.25.00.00
+unspsc7#43.17.25.08.00#Thermal tape printers#43.17.25.00.00
+unspsc7#43.17.25.09.00#Inkjet printers#43.17.25.00.00
+unspsc7#43.17.25.10.00#Laser printers#43.17.25.00.00
+unspsc7#43.17.25.11.00#Bubble jet printers#43.17.25.00.00
+unspsc7#43.17.25.12.00#Bag tag printer#43.17.25.00.00
+unspsc7#43.17.25.13.00#Printer seperator#43.17.25.00.00
+unspsc7#43.17.25.14.00#Multi function printers#43.17.25.00.00
+unspsc7#43.17.25.15.00#ATB airline ticket or boarding pass printer#43.17.25.00.00
+unspsc7#43.17.26.00.00#Enclosures and frames and backplanes#43.17.00.00.00
+unspsc7#43.17.26.01.00#Chassis#43.17.26.00.00
+unspsc7#43.17.26.02.00#Network chassis#43.17.26.00.00
+unspsc7#43.17.26.03.00#Drive cabinets#43.17.26.00.00
+unspsc7#43.17.26.04.00#Expansion slot expander#43.17.26.00.00
+unspsc7#43.17.26.05.00#Racks#43.17.26.00.00
+unspsc7#43.17.26.06.00#Programmable logic controller rack or base#43.17.26.00.00
+unspsc7#43.17.26.07.00#Removable drive frames#43.17.26.00.00
+unspsc7#43.17.27.00.00#Network hardware and components and accessories#43.17.00.00.00
+unspsc7#43.17.27.01.00#Hubs or concentrators#43.17.27.00.00
+unspsc7#43.17.27.02.00#Routers#43.17.27.00.00
+unspsc7#43.17.27.03.00#Repeaters#43.17.27.00.00
+unspsc7#43.17.27.04.00#Network bridges#43.17.27.00.00
+unspsc7#43.17.27.05.00#Switches#43.17.27.00.00
+unspsc7#43.17.27.06.00#Media filters#43.17.27.00.00
+unspsc7#43.17.27.07.00#Wide area network (WAN) cards#43.17.27.00.00
+unspsc7#43.17.27.08.00#Multistation access units (MAUs)#43.17.27.00.00
+unspsc7#43.17.27.09.00#Data service units (DSUs)#43.17.27.00.00
+unspsc7#43.17.27.10.00#Network adapters#43.17.27.00.00
+unspsc7#43.17.27.11.00#Load balancer#43.17.27.00.00
+unspsc7#43.17.27.12.00#Printer accumulator#43.17.27.00.00
+unspsc7#43.17.27.13.00#Enterprise System Connectivity ESCON Director#43.17.27.00.00
+unspsc7#43.17.27.14.00#Network management system#43.17.27.00.00
+unspsc7#43.17.27.15.00#Firewall firewall appliance#43.17.27.00.00
+unspsc7#43.17.27.16.00#Cable network testers#43.17.27.00.00
+unspsc7#43.17.27.17.00#Data synchronization device#43.17.27.00.00
+unspsc7#43.17.27.18.00#Digital cross connects equipment#43.17.27.00.00
+unspsc7#43.17.27.19.00#Optical cross connects equipment#43.17.27.00.00
+unspsc7#43.17.27.20.00#Screen amplifier#43.17.27.00.00
+unspsc7#43.17.27.21.00#Time divisional multiplex#43.17.27.00.00
+unspsc7#43.17.27.22.00#Connection panels#43.17.27.00.00
+unspsc7#43.17.27.23.00#Voice echo cancellers#43.17.27.00.00
+unspsc7#43.17.27.24.00#Patch panel#43.17.27.00.00
+unspsc7#43.17.28.00.00#Modems and related hardware#43.17.00.00.00
+unspsc7#43.17.28.01.00#Modems or network combo cards#43.17.28.00.00
+unspsc7#43.17.28.02.00#Modems#43.17.28.00.00
+unspsc7#43.17.28.03.00#Integrated services digital network (ISDN) adapters#43.17.28.00.00
+unspsc7#43.17.28.04.00#Modem banks#43.17.28.00.00
+unspsc7#43.17.28.05.00#Modem teleadaptors#43.17.28.00.00
+unspsc7#43.17.28.06.00#Multiplexor MUXs#43.17.28.00.00
+unspsc7#43.17.28.07.00#Add drop multiplexer#43.17.28.00.00
+unspsc7#43.17.29.00.00#Network switches#43.17.00.00.00
+unspsc7#43.17.29.01.00#Local area network (LAN) switches#43.17.29.00.00
+unspsc7#43.17.29.02.00#Asynchronous transfer mode (ATM) switches#43.17.29.00.00
+unspsc7#43.17.29.03.00#Fiber distributed data interface (FDDI) switches#43.17.29.00.00
+unspsc7#43.17.29.04.00#Wide area network (WAN) switches#43.17.29.00.00
+unspsc7#43.17.29.05.00#Intelligent network switching system#43.17.29.00.00
+unspsc7#43.17.30.00.00#Network repeaters#43.17.00.00.00
+unspsc7#43.17.30.01.00#Attached resource computer network (ARCnet) repeaters#43.17.30.00.00
+unspsc7#43.17.30.02.00#Ethernet repeaters#43.17.30.00.00
+unspsc7#43.17.30.03.00#Fiber distributed data interface (FDDI) repeaters#43.17.30.00.00
+unspsc7#43.17.30.04.00#Token ring repeaters#43.17.30.00.00
+unspsc7#43.17.31.00.00#Radio systems#43.17.00.00.00
+unspsc7#43.17.31.01.00#Transmitters#43.17.31.00.00
+unspsc7#43.17.31.02.00#Receivers#43.17.31.00.00
+unspsc7#43.17.31.03.00#Transceivers#43.17.31.00.00
+unspsc7#43.17.31.04.00#Tuners#43.17.31.00.00
+unspsc7#43.17.31.05.00#Short wave equipment#43.17.31.00.00
+unspsc7#43.17.32.00.00#Automated data collection equipment#43.17.00.00.00
+unspsc7#43.17.32.01.00#Bar code equipment#43.17.32.00.00
+unspsc7#43.17.32.02.00#Radio frequency identification (ID) equipment#43.17.32.00.00
+unspsc7#43.17.32.03.00#Radio frequency data communication equipment#43.17.32.00.00
+unspsc7#43.17.32.04.00#Camera based vision systems for automated data collection#43.17.32.00.00
+unspsc7#43.17.32.05.00#Currency recognition equipment#43.17.32.00.00
+unspsc7#43.17.32.06.00#Magnetic card readers#43.17.32.00.00
+unspsc7#43.17.33.00.00#Computer data switches#43.17.00.00.00
+unspsc7#43.17.33.01.00#Serial data switches#43.17.33.00.00
+unspsc7#43.17.33.02.00#Keyboard video mouse (KVM) switch boxes#43.17.33.00.00
+unspsc7#43.17.33.03.00#Manual printer switches#43.17.33.00.00
+unspsc7#43.17.33.04.00#Automatic printer switches#43.17.33.00.00
+unspsc7#43.17.33.05.00#Console switch#43.17.33.00.00
+unspsc7#43.17.33.06.00#Parallel data switches#43.17.33.00.00
+unspsc7#43.17.34.00.00#Computer accessory covers#43.17.00.00.00
+unspsc7#43.17.34.01.00#Key board skins#43.17.34.00.00
+unspsc7#43.17.34.02.00#Notebook or palmtop skins#43.17.34.00.00
+unspsc7#43.17.35.00.00#Key board skins#43.17.00.00.00
+unspsc7#43.17.36.00.00#Computer cables and accessories#43.17.00.00.00
+unspsc7#43.17.36.01.00#Mouse adapter#43.17.36.00.00
+unspsc7#43.17.36.02.00#Keyboard extension cables#43.17.36.00.00
+unspsc7#43.17.36.03.00#Modem cables#43.17.36.00.00
+unspsc7#43.17.36.04.00#Cord covers#43.17.36.00.00
+unspsc7#43.17.36.05.00#Parallel cables#43.17.36.00.00
+unspsc7#43.17.36.06.00#Serial cables#43.17.36.00.00
+unspsc7#43.17.36.07.00#Universal serial bus USB cables#43.17.36.00.00
+unspsc7#43.17.36.08.00#Network patch cables#43.17.36.00.00
+unspsc7#43.17.36.09.00#Computer audio cables#43.17.36.00.00
+unspsc7#43.17.36.10.00#Computer video cables#43.17.36.00.00
+unspsc7#43.17.36.11.00#Inter device link cables#43.17.36.00.00
+unspsc7#43.17.36.12.00#Computer cable kits#43.17.36.00.00
+unspsc7#43.17.36.13.00#Cable jacks or connectors#43.17.36.00.00
+unspsc7#43.17.37.00.00#Storage drive components#43.17.00.00.00
+unspsc7#43.17.37.01.00#Head assemblies or parts#43.17.37.00.00
+unspsc7#43.17.37.02.00#Lead assemblies#43.17.37.00.00
+unspsc7#43.17.37.03.00#Head stack assemblies#43.17.37.00.00
+unspsc7#43.17.37.04.00#Comb assemblies#43.17.37.00.00
+unspsc7#43.17.37.05.00#Crash stops#43.17.37.00.00
+unspsc7#43.17.37.06.00#Platters or disks#43.17.37.00.00
+unspsc7#43.17.37.07.00#Head mounting arms#43.17.37.00.00
+unspsc7#43.17.37.08.00#Read write heads#43.17.37.00.00
+unspsc7#43.17.37.09.00#Motor drives#43.17.37.00.00
+unspsc7#43.18.00.00.00#Communications and computer supplies#43.00.00.00.00
+unspsc7#43.18.15.00.00#Audio recording media#43.18.00.00.00
+unspsc7#43.18.15.01.00#Blank audio tapes#43.18.15.00.00
+unspsc7#43.18.16.00.00#Data storage media#43.18.00.00.00
+unspsc7#43.18.16.01.00#Floppy diskettes#43.18.16.00.00
+unspsc7#43.18.16.02.00#Recordable compact discs (CDs)#43.18.16.00.00
+unspsc7#43.18.16.03.00#Blank data tapes#43.18.16.00.00
+unspsc7#43.18.16.04.00#High density removable media blank disks#43.18.16.00.00
+unspsc7#43.18.16.05.00#Blank digital video discs DVD#43.18.16.00.00
+unspsc7#43.18.16.06.00#Data storage cards#43.18.16.00.00
+unspsc7#43.18.16.07.00#Magneto optical disks#43.18.16.00.00
+unspsc7#43.18.17.00.00#Multimedia storage#43.18.00.00.00
+unspsc7#43.18.17.01.00#Multimedia towers#43.18.17.00.00
+unspsc7#43.18.17.02.00#Multimedia drawers#43.18.17.00.00
+unspsc7#43.18.17.03.00#Compact disc (CD) cases#43.18.17.00.00
+unspsc7#43.18.17.04.00#Diskette holders#43.18.17.00.00
+unspsc7#43.18.17.05.00#Diskette storage#43.18.17.00.00
+unspsc7#43.18.17.06.00#Multimedia trays or organizers#43.18.17.00.00
+unspsc7#43.18.17.07.00#Zip mailers#43.18.17.00.00
+unspsc7#43.18.18.00.00#Monitor stands or risers#43.18.00.00.00
+unspsc7#43.18.19.00.00#Monitor arms#43.18.00.00.00
+unspsc7#44.00.00.00.00#Office Equipment and Accessories and Supplies#44.00.00.00.00
+unspsc7#44.10.00.00.00#Office machines and their supplies and accessories#44.00.00.00.00
+unspsc7#44.10.15.00.00#Duplicating machines#44.10.00.00.00
+unspsc7#44.10.15.01.00#Photocopiers#44.10.15.00.00
+unspsc7#44.10.15.02.00#Facsimile machines#44.10.15.00.00
+unspsc7#44.10.15.03.00#Multifunction machines#44.10.15.00.00
+unspsc7#44.10.16.00.00#Paper processing machines#44.10.00.00.00
+unspsc7#44.10.16.01.00#Paper cutting machines#44.10.16.00.00
+unspsc7#44.10.16.02.00#Paper punching or binding machines#44.10.16.00.00
+unspsc7#44.10.16.03.00#Paper shredding machines or accessories#44.10.16.00.00
+unspsc7#44.10.17.00.00#Printer and photocopier and facsimile accessories#44.10.00.00.00
+unspsc7#44.10.17.01.00#Color options or upgrades#44.10.17.00.00
+unspsc7#44.10.17.02.00#Duplexer trays#44.10.17.00.00
+unspsc7#44.10.17.03.00#Duplexer units#44.10.17.00.00
+unspsc7#44.10.17.04.00#Facsimile handsets#44.10.17.00.00
+unspsc7#44.10.17.05.00#Printer trays or feeders#44.10.17.00.00
+unspsc7#44.10.17.06.00#Photoconductor or imaging units#44.10.17.00.00
+unspsc7#44.10.17.07.00#Stapler units#44.10.17.00.00
+unspsc7#44.10.18.00.00#Calculating machines#44.10.00.00.00
+unspsc7#44.10.18.01.00#Calculators#44.10.18.00.00
+unspsc7#44.10.18.02.00#Adding machines#44.10.18.00.00
+unspsc7#44.10.18.03.00#Accounting machines#44.10.18.00.00
+unspsc7#44.10.18.04.00#Cash registers#44.10.18.00.00
+unspsc7#44.10.19.00.00#Check endorsing and writing machines#44.10.00.00.00
+unspsc7#44.10.19.01.00#Check endorsing machines#44.10.19.00.00
+unspsc7#44.10.19.02.00#Check writing machines#44.10.19.00.00
+unspsc7#44.10.20.00.00#Laminating supplies#44.10.00.00.00
+unspsc7#44.10.20.01.00#Lamination film#44.10.20.00.00
+unspsc7#44.10.20.02.00#Laminator pouches#44.10.20.00.00
+unspsc7#44.10.21.00.00#Mail machines#44.10.00.00.00
+unspsc7#44.10.21.01.00#Franking or postage machines#44.10.21.00.00
+unspsc7#44.10.21.02.00#Mail opening machines#44.10.21.00.00
+unspsc7#44.10.21.03.00#Mail sealing machines#44.10.21.00.00
+unspsc7#44.10.21.04.00#Stamp canceling machines#44.10.21.00.00
+unspsc7#44.10.21.05.00#Addressing machines#44.10.21.00.00
+unspsc7#44.10.21.06.00#Letter folders#44.10.21.00.00
+unspsc7#44.10.22.00.00#Scanner accessories#44.10.00.00.00
+unspsc7#44.10.22.01.00#Endorsers#44.10.22.00.00
+unspsc7#44.10.23.00.00#Packing machines#44.10.00.00.00
+unspsc7#44.10.23.01.00#Bundling machines#44.10.23.00.00
+unspsc7#44.10.23.02.00#Parcel wrapping machines#44.10.23.00.00
+unspsc7#44.10.23.03.00#Seal presses#44.10.23.00.00
+unspsc7#44.10.23.04.00#Sealing machines#44.10.23.00.00
+unspsc7#44.10.23.05.00#Strapping tensioners or sealers#44.10.23.00.00
+unspsc7#44.10.23.06.00#Tying machines#44.10.23.00.00
+unspsc7#44.10.24.00.00#Labeling machines#44.10.00.00.00
+unspsc7#44.10.24.01.00#Tape label makers#44.10.24.00.00
+unspsc7#44.10.24.02.00#Dating or numbering machines#44.10.24.00.00
+unspsc7#44.10.24.03.00#Identification (ID) press machines#44.10.24.00.00
+unspsc7#44.10.24.04.00#Label applying machines#44.10.24.00.00
+unspsc7#44.10.24.05.00#Label making machines#44.10.24.00.00
+unspsc7#44.10.24.06.00#Lettering equipment#44.10.24.00.00
+unspsc7#44.10.24.07.00#Tape embosser#44.10.24.00.00
+unspsc7#44.10.24.08.00#Automatic labeling systems#44.10.24.00.00
+unspsc7#44.10.24.09.00#Semi automatic labeling systems#44.10.24.00.00
+unspsc7#44.10.24.11.00#Label dispensers#44.10.24.00.00
+unspsc7#44.10.25.00.00#Sorting machines#44.10.00.00.00
+unspsc7#44.10.25.01.00#Money counting machines#44.10.25.00.00
+unspsc7#44.10.25.02.00#Sorters#44.10.25.00.00
+unspsc7#44.10.26.00.00#Typing machines and accessories#44.10.00.00.00
+unspsc7#44.10.26.02.00#Typewriters#44.10.26.00.00
+unspsc7#44.10.26.03.00#Printwheels#44.10.26.00.00
+unspsc7#44.10.26.04.00#Stenotype machines#44.10.26.00.00
+unspsc7#44.10.26.05.00#Dictation machines#44.10.26.00.00
+unspsc7#44.10.26.06.00#Typerwriter ribbons#44.10.26.00.00
+unspsc7#44.10.26.07.00#Word processors#44.10.26.00.00
+unspsc7#44.10.26.08.00#Typewriter printing elements#44.10.26.00.00
+unspsc7#44.10.28.00.00#Binding and lamination machines#44.10.00.00.00
+unspsc7#44.10.28.01.00#Laminators#44.10.28.00.00
+unspsc7#44.10.29.00.00#Office machine accessories#44.10.00.00.00
+unspsc7#44.10.29.01.00#Travel kits for office machines#44.10.29.00.00
+unspsc7#44.10.29.02.00#Storage accessories for office machines#44.10.29.00.00
+unspsc7#44.10.29.03.00#Tape cleaners#44.10.29.00.00
+unspsc7#44.10.29.04.00#Air compressed spray#44.10.29.00.00
+unspsc7#44.10.29.05.00#Small paper bags of wet absorbing salts#44.10.29.00.00
+unspsc7#44.10.29.06.00#Computer or office equipment cleaning kit#44.10.29.00.00
+unspsc7#44.10.29.07.00#Equipment dust covers#44.10.29.00.00
+unspsc7#44.10.29.08.00#Compact disc cleaners or scratch removers#44.10.29.00.00
+unspsc7#44.10.29.09.00#Compact disc drive cleaner#44.10.29.00.00
+unspsc7#44.10.29.10.00#Laminator trays#44.10.29.00.00
+unspsc7#44.10.29.11.00#Cleaning wipes for office machines#44.10.29.00.00
+unspsc7#44.10.29.12.00#Cleaning solutions for office equipment#44.10.29.00.00
+unspsc7#44.10.29.13.00#Compact disc destroyer#44.10.29.00.00
+unspsc7#44.10.30.00.00#Fusers and accessories#44.10.00.00.00
+unspsc7#44.10.30.01.00#Fuser cleaning pads#44.10.30.00.00
+unspsc7#44.10.30.02.00#Fuser oil#44.10.30.00.00
+unspsc7#44.10.30.03.00#Fuser wiper#44.10.30.00.00
+unspsc7#44.10.30.04.00#Fusers#44.10.30.00.00
+unspsc7#44.10.31.00.00#Printer and facsimile and photocopier supplies#44.10.00.00.00
+unspsc7#44.10.31.01.00#Printer or facsimile or photocopier belts#44.10.31.00.00
+unspsc7#44.10.31.02.00#Printer or facsimile or photocopier ribbons#44.10.31.00.00
+unspsc7#44.10.31.03.00#Toner#44.10.31.00.00
+unspsc7#44.10.31.04.00#Transfer rolls#44.10.31.00.00
+unspsc7#44.10.31.05.00#Ink cartridges#44.10.31.00.00
+unspsc7#44.10.31.06.00#Ink sticks#44.10.31.00.00
+unspsc7#44.10.31.07.00#Printer or facsimile or photocopier cleaning supplies#44.10.31.00.00
+unspsc7#44.10.31.08.00#Developer for printers or photocopiers#44.10.31.00.00
+unspsc7#44.10.31.09.00#Printer or facsimile or photocopier drums#44.10.31.00.00
+unspsc7#44.10.31.10.00#Print heads#44.10.31.00.00
+unspsc7#44.10.31.11.00#Ink rolls#44.10.31.00.00
+unspsc7#44.10.31.12.00#Printer ribbon#44.10.31.00.00
+unspsc7#44.10.31.13.00#Phasers or inkjet kits#44.10.31.00.00
+unspsc7#44.10.31.14.00#Laserjet coating kits#44.10.31.00.00
+unspsc7#44.10.31.15.00#Imaging films#44.10.31.00.00
+unspsc7#44.10.31.16.00#Kit for printer#44.10.31.00.00
+unspsc7#44.10.31.17.00#Facsimile ribbons#44.10.31.00.00
+unspsc7#44.10.32.00.00#Office time recording machines and accessories#44.10.00.00.00
+unspsc7#44.10.32.01.00#Time card machines#44.10.32.00.00
+unspsc7#44.10.32.02.00#Time stamping machines#44.10.32.00.00
+unspsc7#44.10.32.03.00#Time card machine replacement ribbon#44.10.32.00.00
+unspsc7#44.10.32.04.00#Time card racks#44.10.32.00.00
+unspsc7#44.10.32.05.00#Time cards or sheets#44.10.32.00.00
+unspsc7#44.10.33.00.00#Time card machines#44.10.00.00.00
+unspsc7#44.10.34.00.00#Time stamping machines#44.10.00.00.00
+unspsc7#44.10.35.00.00#Binding machine suplies#44.10.00.00.00
+unspsc7#44.10.35.01.00#Wire binding elements or combs#44.10.35.00.00
+unspsc7#44.10.35.02.00#Binding covers#44.10.35.00.00
+unspsc7#44.11.00.00.00#Office and desk accessories#44.00.00.00.00
+unspsc7#44.11.15.00.00#Organizers and accessories#44.11.00.00.00
+unspsc7#44.11.15.01.00#Message holders or dispensers#44.11.15.00.00
+unspsc7#44.11.15.02.00#Desk drawer organizers#44.11.15.00.00
+unspsc7#44.11.15.03.00#Desktop trays or organizers#44.11.15.00.00
+unspsc7#44.11.15.04.00#Diskette holders#44.11.15.00.00
+unspsc7#44.11.15.05.00#Copy holders#44.11.15.00.00
+unspsc7#44.11.15.06.00#Paper or pad holder#44.11.15.00.00
+unspsc7#44.11.15.07.00#Book ends#44.11.15.00.00
+unspsc7#44.11.15.08.00#Stay put pen or holder#44.11.15.00.00
+unspsc7#44.11.15.09.00#Pen or pencil holders#44.11.15.00.00
+unspsc7#44.11.15.10.00#Hanging organizers or accessories#44.11.15.00.00
+unspsc7#44.11.15.11.00#Display racks or accessories#44.11.15.00.00
+unspsc7#44.11.15.12.00#Literature rack#44.11.15.00.00
+unspsc7#44.11.15.13.00#Supports for diaries or calendars#44.11.15.00.00
+unspsc7#44.11.15.14.00#Stamp racks or organizers#44.11.15.00.00
+unspsc7#44.11.15.15.00#File storage boxes or organizers#44.11.15.00.00
+unspsc7#44.11.16.00.00#Cash handling supplies#44.11.00.00.00
+unspsc7#44.11.16.01.00#Currency bags or wallets#44.11.16.00.00
+unspsc7#44.11.16.02.00#Counterfeit bill detector pens#44.11.16.00.00
+unspsc7#44.11.16.03.00#Coin sorters#44.11.16.00.00
+unspsc7#44.11.16.04.00#Coin wrappers or bill straps#44.11.16.00.00
+unspsc7#44.11.16.05.00#Cash or ticket boxes#44.11.16.00.00
+unspsc7#44.11.16.06.00#Cash box trays#44.11.16.00.00
+unspsc7#44.11.16.07.00#Check files#44.11.16.00.00
+unspsc7#44.11.16.08.00#Coin banks#44.11.16.00.00
+unspsc7#44.11.16.09.00#Counterfeit bill detectors or supplies#44.11.16.00.00
+unspsc7#44.11.18.00.00#Drafting supplies#44.11.00.00.00
+unspsc7#44.11.18.01.00#Stencils or lettering aids#44.11.18.00.00
+unspsc7#44.11.18.02.00#Drafting films#44.11.18.00.00
+unspsc7#44.11.18.03.00#Compasses#44.11.18.00.00
+unspsc7#44.11.18.04.00#Drafting papers#44.11.18.00.00
+unspsc7#44.11.18.05.00#Curves#44.11.18.00.00
+unspsc7#44.11.18.06.00#Protractors#44.11.18.00.00
+unspsc7#44.11.18.07.00#Scales#44.11.18.00.00
+unspsc7#44.11.18.08.00#T squares#44.11.18.00.00
+unspsc7#44.11.18.09.00#Templates#44.11.18.00.00
+unspsc7#44.11.18.10.00#Triangles#44.11.18.00.00
+unspsc7#44.11.18.11.00#Color charts#44.11.18.00.00
+unspsc7#44.11.18.12.00#Drafting kits or sets#44.11.18.00.00
+unspsc7#44.11.18.13.00#Drafting dots or tapes#44.11.18.00.00
+unspsc7#44.11.19.00.00#Boards#44.11.00.00.00
+unspsc7#44.11.19.01.00#Planning boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.02.00#Electronic copyboards or accessories#44.11.19.00.00
+unspsc7#44.11.19.03.00#Easels or accessories#44.11.19.00.00
+unspsc7#44.11.19.04.00#Letter boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.05.00#Dry erase boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.06.00#Chalk boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.07.00#Bulletin boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.08.00#Magnetic boards or accessories#44.11.19.00.00
+unspsc7#44.11.19.09.00#Board cleaning kits or accessories#44.11.19.00.00
+unspsc7#44.11.20.00.00#Planning systems#44.11.00.00.00
+unspsc7#44.11.20.01.00#Address books or refills#44.11.20.00.00
+unspsc7#44.11.20.02.00#Calendars#44.11.20.00.00
+unspsc7#44.11.20.04.00#Meeting planners#44.11.20.00.00
+unspsc7#44.11.20.05.00#Appointment books or refills#44.11.20.00.00
+unspsc7#44.11.20.06.00#Diaries or refills#44.11.20.00.00
+unspsc7#44.11.20.07.00#Suggestion box#44.11.20.00.00
+unspsc7#44.11.20.08.00#Wall planners or refills#44.11.20.00.00
+unspsc7#44.12.00.00.00#Office supplies#44.00.00.00.00
+unspsc7#44.12.15.00.00#Mailing supplies#44.12.00.00.00
+unspsc7#44.12.15.01.00#Mailer tubes#44.12.15.00.00
+unspsc7#44.12.15.03.00#Mailers#44.12.15.00.00
+unspsc7#44.12.15.04.00#Window envelopes#44.12.15.00.00
+unspsc7#44.12.15.05.00#Specialty envelopes#44.12.15.00.00
+unspsc7#44.12.15.06.00#Standard envelopes#44.12.15.00.00
+unspsc7#44.12.15.07.00#Catalog or clasp envelopes#44.12.15.00.00
+unspsc7#44.12.15.08.00#Message droppers#44.12.15.00.00
+unspsc7#44.12.15.09.00#Mailing bags#44.12.15.00.00
+unspsc7#44.12.15.10.00#Mailing seals#44.12.15.00.00
+unspsc7#44.12.15.11.00#Mailing boxes#44.12.15.00.00
+unspsc7#44.12.16.00.00#Desk supplies#44.12.00.00.00
+unspsc7#44.12.16.04.00#Stamps#44.12.16.00.00
+unspsc7#44.12.16.05.00#Tape dispensers#44.12.16.00.00
+unspsc7#44.12.16.06.00#Finger stalls#44.12.16.00.00
+unspsc7#44.12.16.11.00#Paper or eyelet punches#44.12.16.00.00
+unspsc7#44.12.16.12.00#Paper cutters or refills#44.12.16.00.00
+unspsc7#44.12.16.13.00#Staple removers#44.12.16.00.00
+unspsc7#44.12.16.14.00#Call bells#44.12.16.00.00
+unspsc7#44.12.16.15.00#Staplers#44.12.16.00.00
+unspsc7#44.12.16.17.00#Manual letter openers#44.12.16.00.00
+unspsc7#44.12.16.18.00#Scissors#44.12.16.00.00
+unspsc7#44.12.16.19.00#Pencil sharpeners#44.12.16.00.00
+unspsc7#44.12.16.20.00#Finger stalls#44.12.16.00.00
+unspsc7#44.12.16.21.00#Desk pads#44.12.16.00.00
+unspsc7#44.12.16.22.00#Moisteners#44.12.16.00.00
+unspsc7#44.12.16.23.00#Mechanical letter opener#44.12.16.00.00
+unspsc7#44.12.16.24.00#Embossing tools#44.12.16.00.00
+unspsc7#44.12.16.25.00#Paper weights#44.12.16.00.00
+unspsc7#44.12.16.26.00#Adhesive remover#44.12.16.00.00
+unspsc7#44.12.16.27.00#Bookmarks#44.12.16.00.00
+unspsc7#44.12.16.28.00#Clip holders or dispensers#44.12.16.00.00
+unspsc7#44.12.16.29.00#Paper clip dispenser or holder#44.12.16.00.00
+unspsc7#44.12.16.30.00#Stapler kit#44.12.16.00.00
+unspsc7#44.12.16.31.00#Glue dispensers or refills#44.12.16.00.00
+unspsc7#44.12.17.00.00#Writing instruments#44.12.00.00.00
+unspsc7#44.12.17.01.00#Rollerball pens#44.12.17.00.00
+unspsc7#44.12.17.02.00#Pen or pencil sets#44.12.17.00.00
+unspsc7#44.12.17.03.00#Fountain pens#44.12.17.00.00
+unspsc7#44.12.17.04.00#Ball point pens#44.12.17.00.00
+unspsc7#44.12.17.05.00#Mechanical pencils#44.12.17.00.00
+unspsc7#44.12.17.06.00#Wooden pencils#44.12.17.00.00
+unspsc7#44.12.17.07.00#Colored pencils#44.12.17.00.00
+unspsc7#44.12.17.08.00#Markers#44.12.17.00.00
+unspsc7#44.12.17.09.00#Crayons#44.12.17.00.00
+unspsc7#44.12.17.10.00#Writing chalk or accessories#44.12.17.00.00
+unspsc7#44.12.17.11.00#Felt pen#44.12.17.00.00
+unspsc7#44.12.17.12.00#Marker refills#44.12.17.00.00
+unspsc7#44.12.17.13.00#Pen nibs#44.12.17.00.00
+unspsc7#44.12.17.14.00#Pencil or pen grips#44.12.17.00.00
+unspsc7#44.12.17.15.00#Combination pen or pencil#44.12.17.00.00
+unspsc7#44.12.18.00.00#Correction media#44.12.00.00.00
+unspsc7#44.12.18.01.00#Correction film or tape#44.12.18.00.00
+unspsc7#44.12.18.02.00#Correction fluid#44.12.18.00.00
+unspsc7#44.12.18.04.00#Erasers#44.12.18.00.00
+unspsc7#44.12.18.05.00#Correction pens#44.12.18.00.00
+unspsc7#44.12.18.06.00#Correction pen refills#44.12.18.00.00
+unspsc7#44.12.18.07.00#Eraser refills#44.12.18.00.00
+unspsc7#44.12.19.00.00#Ink and lead refills#44.12.00.00.00
+unspsc7#44.12.19.01.00#India ink#44.12.19.00.00
+unspsc7#44.12.19.02.00#Lead refills#44.12.19.00.00
+unspsc7#44.12.19.03.00#Pen refills#44.12.19.00.00
+unspsc7#44.12.19.04.00#Ink refills#44.12.19.00.00
+unspsc7#44.12.19.05.00#Ink or stamp pads#44.12.19.00.00
+unspsc7#44.12.20.00.00#Folders and binders and indexes#44.12.00.00.00
+unspsc7#44.12.20.01.00#Index card files#44.12.20.00.00
+unspsc7#44.12.20.02.00#Sheet protectors#44.12.20.00.00
+unspsc7#44.12.20.03.00#Binders#44.12.20.00.00
+unspsc7#44.12.20.04.00#Data binders#44.12.20.00.00
+unspsc7#44.12.20.05.00#Magazine or book covers#44.12.20.00.00
+unspsc7#44.12.20.06.00#Hanging file folders#44.12.20.00.00
+unspsc7#44.12.20.07.00#Presentation binders#44.12.20.00.00
+unspsc7#44.12.20.08.00#Tab indexes#44.12.20.00.00
+unspsc7#44.12.20.09.00#Rotary or business card files#44.12.20.00.00
+unspsc7#44.12.20.10.00#Dividers#44.12.20.00.00
+unspsc7#44.12.20.11.00#Folders#44.12.20.00.00
+unspsc7#44.12.20.12.00#Clipboards#44.12.20.00.00
+unspsc7#44.12.20.13.00#Report covers#44.12.20.00.00
+unspsc7#44.12.20.14.00#Sheet lifters#44.12.20.00.00
+unspsc7#44.12.20.15.00#File backers#44.12.20.00.00
+unspsc7#44.12.20.16.00#Document holder#44.12.20.00.00
+unspsc7#44.12.20.17.00#Hanging folders or accessories#44.12.20.00.00
+unspsc7#44.12.20.18.00#File inserts or tabs#44.12.20.00.00
+unspsc7#44.12.20.19.00#File pockets or accessories#44.12.20.00.00
+unspsc7#44.12.20.20.00#Card pockets#44.12.20.00.00
+unspsc7#44.12.20.21.00#Postage stamp albums#44.12.20.00.00
+unspsc7#44.12.20.22.00#Binding bars#44.12.20.00.00
+unspsc7#44.12.21.00.00#Fastening supplies#44.12.00.00.00
+unspsc7#44.12.21.01.00#Rubber bands#44.12.21.00.00
+unspsc7#44.12.21.02.00#Prongs#44.12.21.00.00
+unspsc7#44.12.21.03.00#Clasp fasteners#44.12.21.00.00
+unspsc7#44.12.21.04.00#Paper clips#44.12.21.00.00
+unspsc7#44.12.21.05.00#Binder or bulldog clips#44.12.21.00.00
+unspsc7#44.12.21.06.00#Pins or tacks#44.12.21.00.00
+unspsc7#44.12.21.07.00#Staples#44.12.21.00.00
+unspsc7#44.12.21.08.00#Filing pockets#44.12.21.00.00
+unspsc7#44.12.21.09.00#Velcro fasteners#44.12.21.00.00
+unspsc7#44.12.21.10.00#Adhesive mounts#44.12.21.00.00
+unspsc7#44.12.21.11.00#Hole reinforcements#44.12.21.00.00
+unspsc7#44.12.21.12.00#Round head fasteners#44.12.21.00.00
+unspsc7#44.12.21.13.00#Tag fasteners#44.12.21.00.00
+unspsc7#44.12.21.14.00#Screw posts#44.12.21.00.00
+unspsc7#44.12.21.15.00#Adhesive corners#44.12.21.00.00
+unspsc7#44.12.21.16.00#Bag clips#44.12.21.00.00
+unspsc7#44.12.21.17.00#Book rings#44.12.21.00.00
+unspsc7#45.00.00.00.00#Printing and Photographic and Audio and Visual Equipment and Supplies#45.00.00.00.00
+unspsc7#45.10.00.00.00#Printing and publishing equipment#45.00.00.00.00
+unspsc7#45.10.15.00.00#Printing machinery and equipment#45.10.00.00.00
+unspsc7#45.10.15.01.00#Heliographic printers#45.10.15.00.00
+unspsc7#45.10.15.02.00#Offset printing presses#45.10.15.00.00
+unspsc7#45.10.15.03.00#Letterpress equipment#45.10.15.00.00
+unspsc7#45.10.15.04.00#Lithographic equipment#45.10.15.00.00
+unspsc7#45.10.15.05.00#Photogravure printing machines#45.10.15.00.00
+unspsc7#45.10.15.06.00#Silk screen printing machines#45.10.15.00.00
+unspsc7#45.10.15.07.00#Printing presses#45.10.15.00.00
+unspsc7#45.10.15.08.00#Perforating machines#45.10.15.00.00
+unspsc7#45.10.15.09.00#Ultraviolet (UV) rotary printer#45.10.15.00.00
+unspsc7#45.10.15.10.00#Flexographic printer#45.10.15.00.00
+unspsc7#45.10.15.11.00#Inkjet printer for commercial printing applications#45.10.15.00.00
+unspsc7#45.10.15.12.00#Thermal transfer printer for commercial printing applications#45.10.15.00.00
+unspsc7#45.10.15.13.00#Hot stamp printer#45.10.15.00.00
+unspsc7#45.10.15.14.00#Pad printer#45.10.15.00.00
+unspsc7#45.10.15.15.00#Core printer#45.10.15.00.00
+unspsc7#45.10.16.00.00#Printing machinery accessories#45.10.00.00.00
+unspsc7#45.10.16.02.00#Offset darkroom equipment#45.10.16.00.00
+unspsc7#45.10.16.03.00#Offset printing consumables#45.10.16.00.00
+unspsc7#45.10.16.04.00#Offset printing plate processors#45.10.16.00.00
+unspsc7#45.10.16.05.00#Offset plates#45.10.16.00.00
+unspsc7#45.10.16.06.00#Offset film processors#45.10.16.00.00
+unspsc7#45.10.16.07.00#Silk screen arc lamps#45.10.16.00.00
+unspsc7#45.10.16.08.00#Silk screen screens#45.10.16.00.00
+unspsc7#45.10.16.09.00#Silk screen printing racks#45.10.16.00.00
+unspsc7#45.10.16.10.00#Silk screen vacuum printing frames#45.10.16.00.00
+unspsc7#45.10.16.11.00#Silk screen squeegees#45.10.16.00.00
+unspsc7#45.10.17.00.00#Printing accessories#45.10.00.00.00
+unspsc7#45.10.17.01.00#Printing assemblers#45.10.17.00.00
+unspsc7#45.10.17.02.00#Printing guillotines#45.10.17.00.00
+unspsc7#45.10.17.03.00#Printing collators or decollators#45.10.17.00.00
+unspsc7#45.10.17.04.00#Printing cutters#45.10.17.00.00
+unspsc7#45.10.17.05.00#Printing trimmers#45.10.17.00.00
+unspsc7#45.10.17.06.00#Printing punches#45.10.17.00.00
+unspsc7#45.10.17.07.00#Printing plates#45.10.17.00.00
+unspsc7#45.10.17.08.00#Printing awls#45.10.17.00.00
+unspsc7#45.10.18.00.00#Book binding and sewing machinery#45.10.00.00.00
+unspsc7#45.10.18.01.00#Book creasing machines#45.10.18.00.00
+unspsc7#45.10.18.02.00#Book cutting machines#45.10.18.00.00
+unspsc7#45.10.18.03.00#Book punching machines#45.10.18.00.00
+unspsc7#45.10.18.04.00#Book stitching machines#45.10.18.00.00
+unspsc7#45.10.18.05.00#Book jogging machines#45.10.18.00.00
+unspsc7#45.10.18.06.00#Book gathering machines#45.10.18.00.00
+unspsc7#45.10.18.07.00#Book folding machines#45.10.18.00.00
+unspsc7#45.10.19.00.00#Printing laboratory equipment and accessories#45.10.00.00.00
+unspsc7#45.10.19.01.00#Banding machines#45.10.19.00.00
+unspsc7#45.10.19.02.00#Platemakers#45.10.19.00.00
+unspsc7#45.10.19.03.00#Paper drilling machines#45.10.19.00.00
+unspsc7#45.10.19.04.00#Enlargers#45.10.19.00.00
+unspsc7#45.10.19.05.00#Drawing or retouching boards#45.10.19.00.00
+unspsc7#45.10.20.00.00#Composing machines and accessories#45.10.00.00.00
+unspsc7#45.10.20.01.00#Intertype composing machines#45.10.20.00.00
+unspsc7#45.10.20.02.00#Linotype composing machines#45.10.20.00.00
+unspsc7#45.10.20.03.00#Photocomposition materials#45.10.20.00.00
+unspsc7#45.10.20.04.00#Monotype composing machines#45.10.20.00.00
+unspsc7#45.10.20.05.00#Phototypesetting machines#45.10.20.00.00
+unspsc7#45.11.00.00.00#Audio and visual presentation equipment#45.00.00.00.00
+unspsc7#45.11.15.00.00#Lecterns and sound systems and accessories#45.11.00.00.00
+unspsc7#45.11.15.01.00#Free standing lecterns#45.11.15.00.00
+unspsc7#45.11.15.02.00#Table top lecterns#45.11.15.00.00
+unspsc7#45.11.16.00.00#Projectors and supplies#45.11.00.00.00
+unspsc7#45.11.16.01.00#Pointers#45.11.16.00.00
+unspsc7#45.11.16.02.00#Projection bulbs#45.11.16.00.00
+unspsc7#45.11.16.03.00#Projection screens#45.11.16.00.00
+unspsc7#45.11.16.04.00#Slide projectors#45.11.16.00.00
+unspsc7#45.11.16.05.00#Transparency equipment or supplies#45.11.16.00.00
+unspsc7#45.11.16.06.00#Liquid crystal display projection panels#45.11.16.00.00
+unspsc7#45.11.16.07.00#Overhead projectors#45.11.16.00.00
+unspsc7#45.11.16.08.00#Film projectors#45.11.16.00.00
+unspsc7#45.11.16.09.00#Computer screen projector#45.11.16.00.00
+unspsc7#45.11.16.10.00#Epidiascopes#45.11.16.00.00
+unspsc7#45.11.16.11.00#Microfiche or microfilm viewers#45.11.16.00.00
+unspsc7#45.11.16.12.00#Dissolve controls#45.11.16.00.00
+unspsc7#45.11.16.13.00#Cathode ray tube data#45.11.16.00.00
+unspsc7#45.11.16.14.00#Liquid crystal display data or video projector#45.11.16.00.00
+unspsc7#45.11.16.15.00#Projection lenses#45.11.16.00.00
+unspsc7#45.11.16.16.00#Video projectors#45.11.16.00.00
+unspsc7#45.11.16.18.00#Presentation light boxes#45.11.16.00.00
+unspsc7#45.11.17.00.00#Audio presentation equipment and hardware and controllers#45.11.00.00.00
+unspsc7#45.11.17.01.00#Assistive listening devices#45.11.17.00.00
+unspsc7#45.11.17.02.00#Audio jack boxes#45.11.17.00.00
+unspsc7#45.11.17.03.00#Listening centers#45.11.17.00.00
+unspsc7#45.11.18.00.00#Video and combination video and audio presentation equipment and hardware and controllers#45.11.00.00.00
+unspsc7#45.11.18.01.00#Media control systems#45.11.18.00.00
+unspsc7#45.11.18.02.00#Television mounts#45.11.18.00.00
+unspsc7#45.11.18.03.00#Scan converters#45.11.18.00.00
+unspsc7#45.11.18.04.00#Line doublers#45.11.18.00.00
+unspsc7#45.11.18.05.00#Video editors#45.11.18.00.00
+unspsc7#45.11.18.06.00#Distance learning systems#45.11.18.00.00
+unspsc7#45.11.18.07.00#Interfaces#45.11.18.00.00
+unspsc7#45.11.18.08.00#Lighting controls#45.11.18.00.00
+unspsc7#45.11.19.00.00#Phone and video conference equipment and hardware and controllers#45.11.00.00.00
+unspsc7#45.11.19.01.00#Audioconferencing systems#45.11.19.00.00
+unspsc7#45.11.19.02.00#Videoconferencing systems#45.11.19.00.00
+unspsc7#45.12.00.00.00#Photographic equipment#45.00.00.00.00
+unspsc7#45.12.15.00.00#Cameras#45.12.00.00.00
+unspsc7#45.12.15.01.00#Still cameras#45.12.15.00.00
+unspsc7#45.12.15.02.00#Instant print cameras#45.12.15.00.00
+unspsc7#45.12.15.03.00#Disposable cameras#45.12.15.00.00
+unspsc7#45.12.15.04.00#Digital cameras#45.12.15.00.00
+unspsc7#45.12.15.05.00#Cinematographic cameras#45.12.15.00.00
+unspsc7#45.12.15.06.00#Video conference cameras#45.12.15.00.00
+unspsc7#45.12.15.08.00#Microfilm cameras#45.12.15.00.00
+unspsc7#45.12.15.10.00#Aerial cameras#45.12.15.00.00
+unspsc7#45.12.15.11.00#High speed cameras#45.12.15.00.00
+unspsc7#45.12.15.12.00#Underwater cameras#45.12.15.00.00
+unspsc7#45.12.15.13.00#Offset cameras#45.12.15.00.00
+unspsc7#45.12.15.14.00#Photocopier cameras#45.12.15.00.00
+unspsc7#45.12.15.15.00#Hand held camcorders#45.12.15.00.00
+unspsc7#45.12.15.16.00#Digital camcorder#45.12.15.00.00
+unspsc7#45.12.15.17.00#Document camera#45.12.15.00.00
+unspsc7#45.12.15.18.00#Camera kits#45.12.15.00.00
+unspsc7#45.12.16.00.00#Camera accessories#45.12.00.00.00
+unspsc7#45.12.16.01.00#Camera flashes or lighting#45.12.16.00.00
+unspsc7#45.12.16.02.00#Camera tripods#45.12.16.00.00
+unspsc7#45.12.16.03.00#Camera lenses or filters#45.12.16.00.00
+unspsc7#45.12.16.04.00#Camera shutters#45.12.16.00.00
+unspsc7#45.12.16.05.00#Screen frames#45.12.16.00.00
+unspsc7#45.12.16.06.00#Camera harnesses#45.12.16.00.00
+unspsc7#45.12.16.07.00#Camera blocks or holders#45.12.16.00.00
+unspsc7#45.12.16.08.00#Camera assemblies#45.12.16.00.00
+unspsc7#45.12.16.09.00#Camera brackets#45.12.16.00.00
+unspsc7#45.12.16.10.00#Camera cables#45.12.16.00.00
+unspsc7#45.12.16.11.00#Lens cover#45.12.16.00.00
+unspsc7#45.12.16.12.00#Camera tables#45.12.16.00.00
+unspsc7#45.12.16.13.00#Camera enclosures or covers#45.12.16.00.00
+unspsc7#45.12.16.14.00#Retrofit kits#45.12.16.00.00
+unspsc7#45.12.16.15.00#Camera rings#45.12.16.00.00
+unspsc7#45.12.16.16.00#Pan heads#45.12.16.00.00
+unspsc7#45.12.17.00.00#Photographic processing equipment#45.12.00.00.00
+unspsc7#45.12.17.01.00#Film driers#45.12.17.00.00
+unspsc7#45.12.17.02.00#Film washers#45.12.17.00.00
+unspsc7#45.12.17.03.00#Film splicers#45.12.17.00.00
+unspsc7#45.12.17.04.00#Film editors#45.12.17.00.00
+unspsc7#45.12.17.05.00#Photographic enlargers#45.12.17.00.00
+unspsc7#45.13.00.00.00#Photographic and recording media#45.00.00.00.00
+unspsc7#45.13.15.00.00#Still picture film#45.13.00.00.00
+unspsc7#45.13.15.01.00#Color film#45.13.15.00.00
+unspsc7#45.13.15.02.00#Black and white film#45.13.15.00.00
+unspsc7#45.13.15.03.00#Instant picture film#45.13.15.00.00
+unspsc7#45.13.15.04.00#Microfilm#45.13.15.00.00
+unspsc7#45.13.15.05.00#X ray film#45.13.15.00.00
+unspsc7#45.13.15.06.00#Photography paper#45.13.15.00.00
+unspsc7#45.13.16.00.00#Moving picture media#45.13.00.00.00
+unspsc7#45.13.16.01.00#Motion picture camera film#45.13.16.00.00
+unspsc7#45.13.16.04.00#Blank video tapes#45.13.16.00.00
+unspsc7#45.13.17.00.00#Media storage#45.13.00.00.00
+unspsc7#45.13.17.01.00#Slide trays#45.13.17.00.00
+unspsc7#45.14.00.00.00#Photographic filmmaking supplies#45.00.00.00.00
+unspsc7#45.14.15.00.00#Photographic processing chemicals#45.14.00.00.00
+unspsc7#45.14.15.01.00#Developer solution#45.14.15.00.00
+unspsc7#45.14.15.02.00#Fixative#45.14.15.00.00
+unspsc7#45.14.16.00.00#Darkroom supplies#45.14.00.00.00
+unspsc7#45.14.16.01.00#Developing trays#45.14.16.00.00
+unspsc7#45.14.16.02.00#Developing tanks#45.14.16.00.00
+unspsc7#45.14.16.03.00#Developing tongs#45.14.16.00.00
+unspsc7#46.00.00.00.00#Defense and Law Enforcement and Security and Safety Equipment and Supplies#46.00.00.00.00
+unspsc7#46.10.00.00.00#Light weapons and ammunition#46.00.00.00.00
+unspsc7#46.10.15.00.00#Firearms#46.10.00.00.00
+unspsc7#46.10.15.01.00#Machine guns#46.10.15.00.00
+unspsc7#46.10.15.02.00#Police or security shotguns#46.10.15.00.00
+unspsc7#46.10.15.03.00#Military rifles#46.10.15.00.00
+unspsc7#46.10.15.04.00#Handguns#46.10.15.00.00
+unspsc7#46.10.15.05.00#Air rifles or air handguns#46.10.15.00.00
+unspsc7#46.10.15.06.00#Parts of guns or pistols#46.10.15.00.00
+unspsc7#46.10.16.00.00#Ammunition#46.10.00.00.00
+unspsc7#46.10.16.01.00#Defense or law enforcement ammunition#46.10.16.00.00
+unspsc7#46.10.17.00.00#Ammunition handling systems#46.10.00.00.00
+unspsc7#46.10.17.01.00#Tank ammunition handling systems#46.10.17.00.00
+unspsc7#46.10.17.02.00#Aircraft ammunition handling systems#46.10.17.00.00
+unspsc7#46.10.18.00.00#Arms and ammunition accessories#46.10.00.00.00
+unspsc7#46.10.18.01.00#Gun cases#46.10.18.00.00
+unspsc7#46.11.00.00.00#Conventional war weapons#46.00.00.00.00
+unspsc7#46.11.15.00.00#Bombs and grenades#46.11.00.00.00
+unspsc7#46.11.15.01.00#Grenades#46.11.15.00.00
+unspsc7#46.11.15.02.00#Mines#46.11.15.00.00
+unspsc7#46.11.15.03.00#Mortar bombs#46.11.15.00.00
+unspsc7#46.11.16.00.00#Gun systems#46.11.00.00.00
+unspsc7#46.11.16.01.00#Chain gun systems#46.11.16.00.00
+unspsc7#46.11.16.02.00#Gatling gun systems#46.11.16.00.00
+unspsc7#46.11.17.00.00#Infrared (IR) sensors#46.11.00.00.00
+unspsc7#46.11.17.01.00#Infrared (IR) coolers#46.11.17.00.00
+unspsc7#46.11.17.02.00#Infrared (IR) detectors#46.11.17.00.00
+unspsc7#46.11.18.00.00#Naval weapons#46.11.00.00.00
+unspsc7#46.11.18.01.00#Torpedoes#46.11.18.00.00
+unspsc7#46.12.00.00.00#Missiles#46.00.00.00.00
+unspsc7#46.12.15.00.00#Guided missiles#46.12.00.00.00
+unspsc7#46.12.15.01.00#Air to air missiles#46.12.15.00.00
+unspsc7#46.12.15.02.00#Antiaircraft missiles#46.12.15.00.00
+unspsc7#46.12.15.03.00#Antimissile missiles#46.12.15.00.00
+unspsc7#46.12.15.04.00#Antiship missiles#46.12.15.00.00
+unspsc7#46.12.15.05.00#Antitank missiles#46.12.15.00.00
+unspsc7#46.12.15.06.00#Ballistic missiles#46.12.15.00.00
+unspsc7#46.12.15.07.00#Cruise missiles#46.12.15.00.00
+unspsc7#46.12.15.08.00#Surface to air missiles#46.12.15.00.00
+unspsc7#46.12.15.09.00#Antiballistic missiles#46.12.15.00.00
+unspsc7#46.12.15.10.00#Surface to surface missiles#46.12.15.00.00
+unspsc7#46.12.15.11.00#Air to surface missiles#46.12.15.00.00
+unspsc7#46.12.15.12.00#Training missiles#46.12.15.00.00
+unspsc7#46.12.16.00.00#Missile subsystems#46.12.00.00.00
+unspsc7#46.12.16.01.00#Electronic safe or arm devices#46.12.16.00.00
+unspsc7#46.12.16.02.00#Solid missile boosters#46.12.16.00.00
+unspsc7#46.12.16.03.00#Missile warheads#46.12.16.00.00
+unspsc7#46.12.16.04.00#Safety pin pullers#46.12.16.00.00
+unspsc7#46.12.16.05.00#Jet reaction control assemblies#46.12.16.00.00
+unspsc7#46.13.00.00.00#Rockets and subsystems#46.00.00.00.00
+unspsc7#46.13.15.00.00#Launch vehicles and rockets#46.13.00.00.00
+unspsc7#46.13.15.01.00#Multi stage rockets#46.13.15.00.00
+unspsc7#46.13.15.02.00#Reusable rockets#46.13.15.00.00
+unspsc7#46.13.15.03.00#Single stage rockets#46.13.15.00.00
+unspsc7#46.13.15.04.00#Liquid rockets#46.13.15.00.00
+unspsc7#46.13.15.05.00#Solid rockets#46.13.15.00.00
+unspsc7#46.13.16.00.00#Boosters#46.13.00.00.00
+unspsc7#46.13.16.01.00#Reusable boosters#46.13.16.00.00
+unspsc7#46.13.16.02.00#Solid boosters#46.13.16.00.00
+unspsc7#46.13.16.03.00#Multi stage boosters#46.13.16.00.00
+unspsc7#46.13.16.04.00#Liquid boosters#46.13.16.00.00
+unspsc7#46.14.00.00.00#Launchers#46.00.00.00.00
+unspsc7#46.14.15.00.00#Missile and rocket launchers#46.14.00.00.00
+unspsc7#46.14.15.01.00#Missile launchers#46.14.15.00.00
+unspsc7#46.14.15.02.00#Rocket launchers#46.14.15.00.00
+unspsc7#46.15.00.00.00#Law enforcement#46.00.00.00.00
+unspsc7#46.15.15.00.00#Crowd control equipment#46.15.00.00.00
+unspsc7#46.15.15.01.00#Barricades#46.15.15.00.00
+unspsc7#46.15.15.02.00#Riot helmets#46.15.15.00.00
+unspsc7#46.15.15.03.00#Riot shields#46.15.15.00.00
+unspsc7#46.15.15.04.00#Body armour#46.15.15.00.00
+unspsc7#46.15.15.05.00#Barriers#46.15.15.00.00
+unspsc7#46.15.16.00.00#Security and control equipment#46.15.00.00.00
+unspsc7#46.15.16.01.00#Handcuffs#46.15.16.00.00
+unspsc7#46.15.16.02.00#Night sticks#46.15.16.00.00
+unspsc7#46.15.16.03.00#Fingerprint equipment#46.15.16.00.00
+unspsc7#46.15.16.04.00#Alcohol analysers#46.15.16.00.00
+unspsc7#46.15.16.05.00#Weapons or explosives detectors#46.15.16.00.00
+unspsc7#46.15.16.06.00#Narcotic test kits#46.15.16.00.00
+unspsc7#46.16.00.00.00#Public safety and control#46.00.00.00.00
+unspsc7#46.16.15.00.00#Traffic control#46.16.00.00.00
+unspsc7#46.16.15.01.00#Airport signaling systems#46.16.15.00.00
+unspsc7#46.16.15.02.00#Railway signaling systems#46.16.15.00.00
+unspsc7#46.16.15.03.00#Marine signaling systems#46.16.15.00.00
+unspsc7#46.16.15.04.00#Traffic signals#46.16.15.00.00
+unspsc7#46.16.15.05.00#Parking meters#46.16.15.00.00
+unspsc7#46.16.15.06.00#Snow or ice melter#46.16.15.00.00
+unspsc7#46.16.15.07.00#Barrier tape#46.16.15.00.00
+unspsc7#46.16.15.08.00#Traffic or floor cones#46.16.15.00.00
+unspsc7#46.16.15.09.00#Speed stoppers#46.16.15.00.00
+unspsc7#46.16.16.00.00#Water safety#46.16.00.00.00
+unspsc7#46.16.16.01.00#Rope float lines#46.16.16.00.00
+unspsc7#46.16.16.02.00#Life rings#46.16.16.00.00
+unspsc7#46.16.16.03.00#Pool alarms#46.16.16.00.00
+unspsc7#46.16.16.04.00#Life vests or preservers#46.16.16.00.00
+unspsc7#46.17.00.00.00#Security surveillance and detection#46.00.00.00.00
+unspsc7#46.17.15.00.00#Locks and security hardware#46.17.00.00.00
+unspsc7#46.17.15.01.00#Padlocks#46.17.15.00.00
+unspsc7#46.17.15.02.00#Cable locks#46.17.15.00.00
+unspsc7#46.17.15.03.00#Lock sets#46.17.15.00.00
+unspsc7#46.17.15.04.00#Pushbutton locks#46.17.15.00.00
+unspsc7#46.17.15.05.00#Keys or accessories#46.17.15.00.00
+unspsc7#46.17.15.06.00#Safes#46.17.15.00.00
+unspsc7#46.17.15.07.00#Security bars#46.17.15.00.00
+unspsc7#46.17.15.08.00#Number locks#46.17.15.00.00
+unspsc7#46.17.15.09.00#Key cabinets#46.17.15.00.00
+unspsc7#46.17.15.10.00#Time locks#46.17.15.00.00
+unspsc7#46.17.15.11.00#Lockout devices#46.17.15.00.00
+unspsc7#46.17.15.12.00#Instrument locks#46.17.15.00.00
+unspsc7#46.17.15.13.00#Locking cam#46.17.15.00.00
+unspsc7#46.17.15.14.00#Security chains or accessories#46.17.15.00.00
+unspsc7#46.17.16.00.00#Surveillance and detection equipment#46.17.00.00.00
+unspsc7#46.17.16.02.00#Safety horns#46.17.16.00.00
+unspsc7#46.17.16.03.00#Clock timers#46.17.16.00.00
+unspsc7#46.17.16.04.00#Alarm systems#46.17.16.00.00
+unspsc7#46.17.16.05.00#Door chimes#46.17.16.00.00
+unspsc7#46.17.16.06.00#Sirens#46.17.16.00.00
+unspsc7#46.17.16.07.00#Buzzers#46.17.16.00.00
+unspsc7#46.17.16.08.00#Motion detectors#46.17.16.00.00
+unspsc7#46.17.16.09.00#Convex security mirrors#46.17.16.00.00
+unspsc7#46.17.16.10.00#Security cameras#46.17.16.00.00
+unspsc7#46.17.16.11.00#Video identification systems#46.17.16.00.00
+unspsc7#46.17.16.12.00#Video monitors#46.17.16.00.00
+unspsc7#46.17.16.13.00#Gas detectors#46.17.16.00.00
+unspsc7#46.17.16.14.00#Surveillance cameras#46.17.16.00.00
+unspsc7#46.17.16.15.00#Light enhancing cameras or vision devices#46.17.16.00.00
+unspsc7#46.17.16.16.00#Radar detectors#46.17.16.00.00
+unspsc7#46.17.16.17.00#Door eyes#46.17.16.00.00
+unspsc7#46.17.16.18.00#Door bells#46.17.16.00.00
+unspsc7#46.18.00.00.00#Personal safety and protection#46.00.00.00.00
+unspsc7#46.18.15.00.00#Safety apparel#46.18.00.00.00
+unspsc7#46.18.15.01.00#Protective aprons#46.18.15.00.00
+unspsc7#46.18.15.02.00#Bullet proof vests#46.18.15.00.00
+unspsc7#46.18.15.03.00#Protective coveralls#46.18.15.00.00
+unspsc7#46.18.15.04.00#Protective gloves#46.18.15.00.00
+unspsc7#46.18.15.05.00#Protective knee pads#46.18.15.00.00
+unspsc7#46.18.15.06.00#Protective ponchos#46.18.15.00.00
+unspsc7#46.18.15.07.00#Safety vests#46.18.15.00.00
+unspsc7#46.18.15.08.00#Fire retardant apparel#46.18.15.00.00
+unspsc7#46.18.15.09.00#Hazardous material protective apparel#46.18.15.00.00
+unspsc7#46.18.15.10.00#Fire retardant gloves#46.18.15.00.00
+unspsc7#46.18.15.11.00#Hazardous material protective goods#46.18.15.00.00
+unspsc7#46.18.15.12.00#Cleanroom apparel#46.18.15.00.00
+unspsc7#46.18.15.13.00#Cleanroom gloves#46.18.15.00.00
+unspsc7#46.18.15.14.00#Elbow protectors#46.18.15.00.00
+unspsc7#46.18.15.15.00#Insecticide protective clothing#46.18.15.00.00
+unspsc7#46.18.15.16.00#Safety sleeves#46.18.15.00.00
+unspsc7#46.18.15.17.00#Insulated or flotation suits#46.18.15.00.00
+unspsc7#46.18.15.18.00#Heat resistant clothing#46.18.15.00.00
+unspsc7#46.18.15.19.00#Safety harnesses or belts#46.18.15.00.00
+unspsc7#46.18.15.20.00#Leg protectors#46.18.15.00.00
+unspsc7#46.18.15.21.00#Radiation protection clothing or coats#46.18.15.00.00
+unspsc7#46.18.15.22.00#Safety hoods#46.18.15.00.00
+unspsc7#46.18.15.23.00#Insulated clothing for cold environments#46.18.15.00.00
+unspsc7#46.18.15.24.00#Personal flotation devices#46.18.15.00.00
+unspsc7#46.18.15.25.00#Protective rainwear or wet environment apparel#46.18.15.00.00
+unspsc7#46.18.15.26.00#Protective shirts#46.18.15.00.00
+unspsc7#46.18.15.27.00#Protective pants#46.18.15.00.00
+unspsc7#46.18.15.28.00#Protective frock#46.18.15.00.00
+unspsc7#46.18.15.29.00#Insulated clothing for cold environments#46.18.15.00.00
+unspsc7#46.18.15.30.00#Protective finger cots#46.18.15.00.00
+unspsc7#46.18.15.31.00#Reflective suspenders#46.18.15.00.00
+unspsc7#46.18.15.32.00#Lab coats#46.18.15.00.00
+unspsc7#46.18.16.00.00#Safety footwear#46.18.00.00.00
+unspsc7#46.18.16.01.00#Fire retardant footwear#46.18.16.00.00
+unspsc7#46.18.16.02.00#Hazardous material protective footwear#46.18.16.00.00
+unspsc7#46.18.16.03.00#Cleanroom footwear#46.18.16.00.00
+unspsc7#46.18.16.04.00#Safety boots#46.18.16.00.00
+unspsc7#46.18.16.05.00#Safety shoes#46.18.16.00.00
+unspsc7#46.18.16.06.00#Footwear covers#46.18.16.00.00
+unspsc7#46.18.17.00.00#Face and head protection#46.18.00.00.00
+unspsc7#46.18.17.01.00#Hard hats#46.18.17.00.00
+unspsc7#46.18.17.02.00#Facial shields#46.18.17.00.00
+unspsc7#46.18.17.03.00#Welding masks#46.18.17.00.00
+unspsc7#46.18.17.04.00#Safety helmets#46.18.17.00.00
+unspsc7#46.18.17.05.00#Motorcycle helmets#46.18.17.00.00
+unspsc7#46.18.17.06.00#Helmet parts or accessories#46.18.17.00.00
+unspsc7#46.18.18.00.00#Vision protection and accessories#46.18.00.00.00
+unspsc7#46.18.18.01.00#Eyewear holders#46.18.18.00.00
+unspsc7#46.18.18.02.00#Safety glasses#46.18.18.00.00
+unspsc7#46.18.18.03.00#Eye shields#46.18.18.00.00
+unspsc7#46.18.18.04.00#Goggles#46.18.18.00.00
+unspsc7#46.18.18.05.00#Video display filters#46.18.18.00.00
+unspsc7#46.18.18.06.00#Lens cleaner#46.18.18.00.00
+unspsc7#46.18.19.00.00#Hearing protectors#46.18.00.00.00
+unspsc7#46.18.19.01.00#Ear plugs#46.18.19.00.00
+unspsc7#46.18.19.02.00#Ear muffs#46.18.19.00.00
+unspsc7#46.18.20.00.00#Respiratory protection#46.18.00.00.00
+unspsc7#46.18.20.01.00#Masks#46.18.20.00.00
+unspsc7#46.18.20.02.00#Respirators#46.18.20.00.00
+unspsc7#46.18.20.03.00#Gas masks#46.18.20.00.00
+unspsc7#46.18.20.04.00#Respiration air supplying self contained breathing apparatus (SCBA)#46.18.20.00.00
+unspsc7#46.18.20.05.00#Mask filters#46.18.20.00.00
+unspsc7#46.18.21.00.00#Anti static equipment and supplies#46.18.00.00.00
+unspsc7#46.18.21.01.00#Antistatic wrist straps#46.18.21.00.00
+unspsc7#46.18.21.02.00#Heel grounding straps#46.18.21.00.00
+unspsc7#46.18.21.03.00#Grounding hardware#46.18.21.00.00
+unspsc7#46.18.21.04.00#Anti static floor mats#46.18.21.00.00
+unspsc7#46.18.21.05.00#Anti static worktable mats#46.18.21.00.00
+unspsc7#46.18.21.06.00#Antistatic belts#46.18.21.00.00
+unspsc7#46.18.21.07.00#Antistatic maintenance kits#46.18.21.00.00
+unspsc7#46.18.21.08.00#Antistatic toe straps#46.18.21.00.00
+unspsc7#46.18.22.00.00#Ergonomic support aids#46.18.00.00.00
+unspsc7#46.18.22.01.00#Back support belts#46.18.22.00.00
+unspsc7#46.18.22.02.00#Elbow supports#46.18.22.00.00
+unspsc7#46.18.22.03.00#Back support rests#46.18.22.00.00
+unspsc7#46.18.22.04.00#Wrist braces#46.18.22.00.00
+unspsc7#46.18.22.05.00#Foot rests#46.18.22.00.00
+unspsc7#46.18.22.06.00#Wrist rests#46.18.22.00.00
+unspsc7#46.18.22.07.00#Ankle supports#46.18.22.00.00
+unspsc7#46.18.22.08.00#Shoe insoles#46.18.22.00.00
+unspsc7#46.18.23.00.00#Fall protection#46.18.00.00.00
+unspsc7#46.18.23.01.00#Lifelines or lifeline equipment#46.18.23.00.00
+unspsc7#46.18.23.02.00#Fall protection lanyard#46.18.23.00.00
+unspsc7#46.18.23.03.00#Safety harness winders#46.18.23.00.00
+unspsc7#46.18.23.04.00#Anchorage connector#46.18.23.00.00
+unspsc7#46.18.23.05.00#Self retracting lanyard#46.18.23.00.00
+unspsc7#46.18.24.00.00#Decontamination aids#46.18.00.00.00
+unspsc7#46.18.24.01.00#Decontamination shower#46.18.24.00.00
+unspsc7#46.18.25.00.00#Personal safety devices or weapons#46.18.00.00.00
+unspsc7#46.18.25.01.00#Repellents for canine attacks#46.18.25.00.00
+unspsc7#46.19.00.00.00#Fire protection#46.00.00.00.00
+unspsc7#46.19.15.00.00#Fire prevention#46.19.00.00.00
+unspsc7#46.19.15.01.00#Smoke detectors#46.19.15.00.00
+unspsc7#46.19.15.02.00#Heat detectors#46.19.15.00.00
+unspsc7#46.19.15.03.00#Fire resistant coatings or putties or sealants#46.19.15.00.00
+unspsc7#46.19.16.00.00#Fire fighting equipment#46.19.00.00.00
+unspsc7#46.19.16.01.00#Fire extinguishers#46.19.16.00.00
+unspsc7#46.19.16.02.00#Fire sprinkler systems#46.19.16.00.00
+unspsc7#46.19.16.03.00#Fire hoses or nozzles#46.19.16.00.00
+unspsc7#46.19.16.04.00#Fire blankets#46.19.16.00.00
+unspsc7#46.19.16.05.00#Fire suppression hand tools#46.19.16.00.00
+unspsc7#46.19.16.06.00#Fire suppression foam or similar compounds#46.19.16.00.00
+unspsc7#46.19.16.07.00#Fire breathing apparatus#46.19.16.00.00
+unspsc7#47.00.00.00.00#Cleaning Equipment and Supplies#47.00.00.00.00
+unspsc7#47.10.00.00.00#Water and wastewater treatment supply and disposal#47.00.00.00.00
+unspsc7#47.10.15.00.00#Water treatment and supply equipment#47.10.00.00.00
+unspsc7#47.10.15.01.00#Activated carbon equipment#47.10.15.00.00
+unspsc7#47.10.15.02.00#Ammonia removal equipment#47.10.15.00.00
+unspsc7#47.10.15.03.00#Carbon filtration equipment#47.10.15.00.00
+unspsc7#47.10.15.04.00#Bacterial removal equipment#47.10.15.00.00
+unspsc7#47.10.15.05.00#Chlorine handling equipment#47.10.15.00.00
+unspsc7#47.10.15.06.00#Corrosion control equipment#47.10.15.00.00
+unspsc7#47.10.15.07.00#Grit chambers#47.10.15.00.00
+unspsc7#47.10.15.08.00#Desalination equipment#47.10.15.00.00
+unspsc7#47.10.15.09.00#Fluoridation equipment#47.10.15.00.00
+unspsc7#47.10.15.10.00#Iron removal equipment#47.10.15.00.00
+unspsc7#47.10.15.11.00#Ion exchange equipment#47.10.15.00.00
+unspsc7#47.10.15.12.00#Mixers or agitators#47.10.15.00.00
+unspsc7#47.10.15.13.00#Oxygen generators#47.10.15.00.00
+unspsc7#47.10.15.14.00#Water purification equipment#47.10.15.00.00
+unspsc7#47.10.15.16.00#Turbidimeters#47.10.15.00.00
+unspsc7#47.10.15.17.00#Ultraviolet disinfection equipment#47.10.15.00.00
+unspsc7#47.10.15.18.00#Water conditioners#47.10.15.00.00
+unspsc7#47.10.15.19.00#Water softening accessories#47.10.15.00.00
+unspsc7#47.10.15.21.00#Ultrafiltration equipment#47.10.15.00.00
+unspsc7#47.10.15.22.00#Packaged water treatment systems#47.10.15.00.00
+unspsc7#47.10.15.23.00#Collection tanks#47.10.15.00.00
+unspsc7#47.10.15.24.00#Sludge or sewage composting equipment#47.10.15.00.00
+unspsc7#47.10.15.25.00#Dewatering equipment#47.10.15.00.00
+unspsc7#47.10.15.26.00#Sludge pelletizers#47.10.15.00.00
+unspsc7#47.10.15.27.00#Sludge shredders#47.10.15.00.00
+unspsc7#47.10.15.28.00#Water treatment dryers#47.10.15.00.00
+unspsc7#47.10.15.29.00#Incinerators#47.10.15.00.00
+unspsc7#47.10.15.30.00#Odor control equipment#47.10.15.00.00
+unspsc7#47.10.15.31.00#Septic tanks#47.10.15.00.00
+unspsc7#47.10.15.32.00#Settling tanks#47.10.15.00.00
+unspsc7#47.10.15.33.00#Lift stations#47.10.15.00.00
+unspsc7#47.10.15.34.00#Sewage distributors#47.10.15.00.00
+unspsc7#47.10.15.35.00#Sludge disposal equipment#47.10.15.00.00
+unspsc7#47.10.15.36.00#Sludge collectors#47.10.15.00.00
+unspsc7#47.10.15.37.00#Sludge conditioning equipment#47.10.15.00.00
+unspsc7#47.10.15.38.00#Sludge or sewage digesters#47.10.15.00.00
+unspsc7#47.10.15.39.00#Sludge or sewage removal equipment#47.10.15.00.00
+unspsc7#47.10.16.00.00#Water treatment consumables#47.10.00.00.00
+unspsc7#47.10.16.01.00#Algaecides#47.10.16.00.00
+unspsc7#47.10.16.02.00#Antiscalants#47.10.16.00.00
+unspsc7#47.10.16.03.00#Descalers#47.10.16.00.00
+unspsc7#47.10.16.04.00#Boiler feed chemicals#47.10.16.00.00
+unspsc7#47.10.16.05.00#Bacterial removal chemicals#47.10.16.00.00
+unspsc7#47.10.16.06.00#Corrosion control chemicals#47.10.16.00.00
+unspsc7#47.10.16.07.00#Odor control chemicals#47.10.16.00.00
+unspsc7#47.10.16.08.00#Flocculents#47.10.16.00.00
+unspsc7#47.10.16.09.00#Microbiocides#47.10.16.00.00
+unspsc7#47.10.16.10.00#Water softening compounds#47.10.16.00.00
+unspsc7#47.10.16.11.00#Demulsifiers#47.10.16.00.00
+unspsc7#47.10.16.12.00#Polyelectrolytes#47.10.16.00.00
+unspsc7#47.11.00.00.00#Industrial laundry and dry cleaning equipment#47.00.00.00.00
+unspsc7#47.11.15.00.00#Washing and drying equipment#47.11.00.00.00
+unspsc7#47.11.15.01.00#Laundry type combined washing or drying machines#47.11.15.00.00
+unspsc7#47.11.15.02.00#Laundry type washing machines#47.11.15.00.00
+unspsc7#47.11.15.03.00#Clothes dryers#47.11.15.00.00
+unspsc7#47.11.15.04.00#Laundry type drying machines#47.11.15.00.00
+unspsc7#47.11.15.05.00#Laundry equipment stands#47.11.15.00.00
+unspsc7#47.11.16.00.00#Ironing equipment#47.11.00.00.00
+unspsc7#47.11.16.01.00#Ironing machines or presses#47.11.16.00.00
+unspsc7#47.11.16.02.00#Folding machines#47.11.16.00.00
+unspsc7#47.11.16.03.00#Steam pressing machines#47.11.16.00.00
+unspsc7#47.11.17.00.00#Dry cleaning equipment#47.11.00.00.00
+unspsc7#47.11.17.01.00#Dry cleaning machines#47.11.17.00.00
+unspsc7#47.12.00.00.00#Janitorial equipment#47.00.00.00.00
+unspsc7#47.12.15.00.00#Janitor carts and accessories#47.12.00.00.00
+unspsc7#47.12.15.01.00#Janitor carts#47.12.15.00.00
+unspsc7#47.12.15.02.00#Janitor cart accessories#47.12.15.00.00
+unspsc7#47.12.16.00.00#Floor machines and accessories#47.12.00.00.00
+unspsc7#47.12.16.02.00#Vacuum cleaners#47.12.16.00.00
+unspsc7#47.12.16.03.00#Floor polishers#47.12.16.00.00
+unspsc7#47.12.16.04.00#Wet or dry combination vacuum cleaners#47.12.16.00.00
+unspsc7#47.12.16.05.00#Floor scrubbers#47.12.16.00.00
+unspsc7#47.12.16.06.00#Carpet sweepers#47.12.16.00.00
+unspsc7#47.12.16.07.00#Vacuum cleaner supplies or accessories#47.12.16.00.00
+unspsc7#47.12.16.08.00#Floor machine pads#47.12.16.00.00
+unspsc7#47.12.16.09.00#Carpet cleaning equipment#47.12.16.00.00
+unspsc7#47.12.16.10.00#Floor washing machine#47.12.16.00.00
+unspsc7#47.12.17.00.00#Waste containers and accessories#47.12.00.00.00
+unspsc7#47.12.17.01.00#Trash bags#47.12.17.00.00
+unspsc7#47.12.17.02.00#Waste containers or rigid liners#47.12.17.00.00
+unspsc7#47.12.17.03.00#Smoking urns or accessories#47.12.17.00.00
+unspsc7#47.12.17.04.00#Waste container lids#47.12.17.00.00
+unspsc7#47.12.17.05.00#Urn sand bags#47.12.17.00.00
+unspsc7#47.12.17.06.00#Ash trays#47.12.17.00.00
+unspsc7#47.12.17.07.00#Motion sickness bags#47.12.17.00.00
+unspsc7#47.12.18.00.00#Cleaning equipment#47.12.00.00.00
+unspsc7#47.12.18.01.00#Cleaning dusters#47.12.18.00.00
+unspsc7#47.12.18.02.00#Lint removers#47.12.18.00.00
+unspsc7#47.12.18.03.00#Squeeges or washers#47.12.18.00.00
+unspsc7#47.12.18.04.00#Cleaning pails or buckets#47.12.18.00.00
+unspsc7#47.12.18.05.00#Pressure or steam cleaners#47.12.18.00.00
+unspsc7#47.12.18.06.00#Mop wringer#47.12.18.00.00
+unspsc7#47.12.18.07.00#Drain or toilet plunger#47.12.18.00.00
+unspsc7#47.12.18.08.00#Drain or pipe cleaning equipment#47.12.18.00.00
+unspsc7#47.12.18.09.00#Degreasing pans#47.12.18.00.00
+unspsc7#47.12.18.10.00#Cleaning rag dispenser#47.12.18.00.00
+unspsc7#47.12.18.11.00#Duct cleaning machines#47.12.18.00.00
+unspsc7#47.13.00.00.00#Cleaning and janitorial supplies#47.00.00.00.00
+unspsc7#47.13.15.00.00#Cleaning rags and cloths and wipes#47.13.00.00.00
+unspsc7#47.13.15.01.00#Rags#47.13.15.00.00
+unspsc7#47.13.15.02.00#Wipes#47.13.15.00.00
+unspsc7#47.13.16.00.00#Brooms and mops and brushes and accessories#47.13.00.00.00
+unspsc7#47.13.16.01.00#Dust brushes or pans#47.13.16.00.00
+unspsc7#47.13.16.02.00#Scouring pads#47.13.16.00.00
+unspsc7#47.13.16.03.00#Sponges#47.13.16.00.00
+unspsc7#47.13.16.04.00#Brooms#47.13.16.00.00
+unspsc7#47.13.16.05.00#Cleaning brushes#47.13.16.00.00
+unspsc7#47.13.16.06.00#Dust mops#47.13.16.00.00
+unspsc7#47.13.16.07.00#Wet mops#47.13.16.00.00
+unspsc7#47.13.16.08.00#Toilet brushes#47.13.16.00.00
+unspsc7#47.13.16.09.00#Broom or mop handles#47.13.16.00.00
+unspsc7#47.13.16.10.00#Floor finish applicator#47.13.16.00.00
+unspsc7#47.13.16.11.00#Trash picker#47.13.16.00.00
+unspsc7#47.13.16.12.00#Replacement rubbers#47.13.16.00.00
+unspsc7#47.13.16.13.00#Mop or broom holder#47.13.16.00.00
+unspsc7#47.13.16.14.00#Cleaning equipment clamps#47.13.16.00.00
+unspsc7#47.13.17.00.00#Restroom supplies#47.13.00.00.00
+unspsc7#47.13.17.01.00#Paper towel dispensers#47.13.17.00.00
+unspsc7#47.13.17.02.00#Sanitary goods dispensers#47.13.17.00.00
+unspsc7#47.13.17.03.00#Sanitary waste receptacles#47.13.17.00.00
+unspsc7#47.13.17.04.00#Institutional soap or lotion dispensers#47.13.17.00.00
+unspsc7#47.13.17.05.00#Urinal or toilet accessories#47.13.17.00.00
+unspsc7#47.13.17.06.00#Air freshener dispensers#47.13.17.00.00
+unspsc7#47.13.17.07.00#Institutional hand dryers#47.13.17.00.00
+unspsc7#47.13.17.08.00#Bathroom tissue dispenser#47.13.17.00.00
+unspsc7#47.13.17.09.00#Facial tissue dispensers#47.13.17.00.00
+unspsc7#47.13.17.10.00#Toilet tissue dispensers#47.13.17.00.00
+unspsc7#47.13.17.11.00#Cleaner dispenser#47.13.17.00.00
+unspsc7#47.13.18.00.00#Cleaning and disinfecting solutions#47.13.00.00.00
+unspsc7#47.13.18.01.00#Floor cleaners#47.13.18.00.00
+unspsc7#47.13.18.02.00#Floor waxes#47.13.18.00.00
+unspsc7#47.13.18.03.00#Household disinfectants#47.13.18.00.00
+unspsc7#47.13.18.04.00#Ammonias#47.13.18.00.00
+unspsc7#47.13.18.05.00#General purpose cleaners#47.13.18.00.00
+unspsc7#47.13.18.06.00#Furniture polish or waxes#47.13.18.00.00
+unspsc7#47.13.18.07.00#Bleaches#47.13.18.00.00
+unspsc7#47.13.18.08.00#Dry germicidal#47.13.18.00.00
+unspsc7#47.13.18.09.00#Shoe cleaning or polishing products#47.13.18.00.00
+unspsc7#47.13.18.10.00#Dishwashing products#47.13.18.00.00
+unspsc7#47.13.18.11.00#Laundry products#47.13.18.00.00
+unspsc7#47.13.18.12.00#Air freshener#47.13.18.00.00
+unspsc7#47.13.18.13.00#Screen cleaner#47.13.18.00.00
+unspsc7#47.13.18.14.00#Metal cleaners or polishes#47.13.18.00.00
+unspsc7#47.13.18.15.00#Drain cleaner#47.13.18.00.00
+unspsc7#47.13.18.16.00#Deodorizers#47.13.18.00.00
+unspsc7#47.13.18.17.00#Household or automotive protectants#47.13.18.00.00
+unspsc7#47.13.18.18.00#Air sanitizer#47.13.18.00.00
+unspsc7#47.13.18.19.00#Caustic cleaners#47.13.18.00.00
+unspsc7#47.13.18.20.00#Petroleum derivative cleaners#47.13.18.00.00
+unspsc7#47.13.18.21.00#Degreasing compounds#47.13.18.00.00
+unspsc7#47.13.18.22.00#Carbon removing compounds#47.13.18.00.00
+unspsc7#47.13.18.23.00#Deicers and defrosters#47.13.18.00.00
+unspsc7#47.13.18.24.00#Glass or window cleaners#47.13.18.00.00
+unspsc7#47.13.18.25.00#Contact surface cleaners#47.13.18.00.00
+unspsc7#47.13.19.00.00#Absorbents#47.13.00.00.00
+unspsc7#47.13.19.01.00#Mats#47.13.19.00.00
+unspsc7#47.13.19.02.00#Granular absorbent#47.13.19.00.00
+unspsc7#47.13.19.03.00#Plugging compound#47.13.19.00.00
+unspsc7#47.13.19.04.00#Absorbent socks#47.13.19.00.00
+unspsc7#47.13.19.05.00#Spill kits#47.13.19.00.00
+unspsc7#47.13.19.06.00#Pans#47.13.19.00.00
+unspsc7#47.13.19.07.00#Absorbent booms#47.13.19.00.00
+unspsc7#47.13.19.08.00#Absorbent pillows#47.13.19.00.00
+unspsc7#47.13.20.00.00#Mats#47.13.00.00.00
+unspsc7#47.13.21.00.00#Cleaning kits#47.13.00.00.00
+unspsc7#47.13.21.01.00#Industrial cleaning kits#47.13.21.00.00
+unspsc7#47.13.21.02.00#General purpose cleaning kits#47.13.21.00.00
+unspsc7#48.00.00.00.00#Service Industry Machinery and Equipment and Supplies#48.00.00.00.00
+unspsc7#48.10.00.00.00#Institutional food services equipment#48.00.00.00.00
+unspsc7#48.10.15.00.00#Cooking and warming equipment#48.10.00.00.00
+unspsc7#48.10.15.01.00#Commercial use bain maries#48.10.15.00.00
+unspsc7#48.10.15.02.00#Commercial use barbeque ovens#48.10.15.00.00
+unspsc7#48.10.15.03.00#Commercial use broilers#48.10.15.00.00
+unspsc7#48.10.15.04.00#Commercial use charcoal grills#48.10.15.00.00
+unspsc7#48.10.15.05.00#Commercial use coffee or iced tea makers#48.10.15.00.00
+unspsc7#48.10.15.06.00#Commercial use coffee warmers#48.10.15.00.00
+unspsc7#48.10.15.07.00#Commercial use convection ovens#48.10.15.00.00
+unspsc7#48.10.15.08.00#Commercial use conveyer toasters#48.10.15.00.00
+unspsc7#48.10.15.09.00#Commercial use deep fryers#48.10.15.00.00
+unspsc7#48.10.15.10.00#Commercial use food warmers#48.10.15.00.00
+unspsc7#48.10.15.11.00#Commercial use griddles#48.10.15.00.00
+unspsc7#48.10.15.12.00#Commercial use grills#48.10.15.00.00
+unspsc7#48.10.15.13.00#Commercial use heat lamps#48.10.15.00.00
+unspsc7#48.10.15.14.00#Commercial use high pressure steamers#48.10.15.00.00
+unspsc7#48.10.15.15.00#Commercial use hot dog grills#48.10.15.00.00
+unspsc7#48.10.15.16.00#Commercial use microwave ovens#48.10.15.00.00
+unspsc7#48.10.15.17.00#Commercial use ovens#48.10.15.00.00
+unspsc7#48.10.15.18.00#Commercial use pasta cookers#48.10.15.00.00
+unspsc7#48.10.15.19.00#Commercial use pizza ovens#48.10.15.00.00
+unspsc7#48.10.15.20.00#Commercial use popcorn machines#48.10.15.00.00
+unspsc7#48.10.15.21.00#Commercial use ranges#48.10.15.00.00
+unspsc7#48.10.15.22.00#Commercial use rotisseries#48.10.15.00.00
+unspsc7#48.10.15.23.00#Commercial use smokers or smoke ovens#48.10.15.00.00
+unspsc7#48.10.15.24.00#Commercial use steamers#48.10.15.00.00
+unspsc7#48.10.15.25.00#Commercial use toasters#48.10.15.00.00
+unspsc7#48.10.15.26.00#Commercial use waffle irons#48.10.15.00.00
+unspsc7#48.10.15.27.00#Barbecues#48.10.15.00.00
+unspsc7#48.10.15.28.00#Commercial use crepe machines#48.10.15.00.00
+unspsc7#48.10.15.29.00#Pressure cookers or pressure fryers#48.10.15.00.00
+unspsc7#48.10.15.30.00#Commercial use rice cookers#48.10.15.00.00
+unspsc7#48.10.15.31.00#Commercial salmon poachers or kettles#48.10.15.00.00
+unspsc7#48.10.16.00.00#Food preparation equipment#48.10.00.00.00
+unspsc7#48.10.16.01.00#Commercial use blenders#48.10.16.00.00
+unspsc7#48.10.16.02.00#Commercial use electric can openers#48.10.16.00.00
+unspsc7#48.10.16.03.00#Commercial use food choppers or cubers or dicers#48.10.16.00.00
+unspsc7#48.10.16.04.00#Commercial use coffee grinders#48.10.16.00.00
+unspsc7#48.10.16.05.00#Commercial use food grinders#48.10.16.00.00
+unspsc7#48.10.16.06.00#Commercial use graters#48.10.16.00.00
+unspsc7#48.10.16.07.00#Commercial use juicers#48.10.16.00.00
+unspsc7#48.10.16.08.00#Commercial use mixers#48.10.16.00.00
+unspsc7#48.10.16.09.00#Commercial use pasta machines#48.10.16.00.00
+unspsc7#48.10.16.10.00#Commercial use peelers#48.10.16.00.00
+unspsc7#48.10.16.11.00#Commercial use scales#48.10.16.00.00
+unspsc7#48.10.16.12.00#Commercial use food processors#48.10.16.00.00
+unspsc7#48.10.16.13.00#Commercial use dough machines#48.10.16.00.00
+unspsc7#48.10.16.14.00#Commercial use icing sets or bags#48.10.16.00.00
+unspsc7#48.10.16.15.00#Commercial use dishwashers#48.10.16.00.00
+unspsc7#48.10.16.16.00#Commercial use bread slicers#48.10.16.00.00
+unspsc7#48.10.16.17.00#Commercial use plastic shovels#48.10.16.00.00
+unspsc7#48.10.17.00.00#Food and beverage dispensing equipment#48.10.00.00.00
+unspsc7#48.10.17.01.00#Carbonated beverage dispenser#48.10.17.00.00
+unspsc7#48.10.17.02.00#Non carbonated beverage dispenser#48.10.17.00.00
+unspsc7#48.10.17.03.00#Milk dispensers#48.10.17.00.00
+unspsc7#48.10.17.04.00#Syrup pumps#48.10.17.00.00
+unspsc7#48.10.17.05.00#Cappuccino or espresso machines#48.10.17.00.00
+unspsc7#48.10.17.06.00#Milkshake machines#48.10.17.00.00
+unspsc7#48.10.17.07.00#Soft serve machines#48.10.17.00.00
+unspsc7#48.10.17.08.00#Slush machines#48.10.17.00.00
+unspsc7#48.10.17.09.00#Ice dispensers#48.10.17.00.00
+unspsc7#48.10.17.10.00#Drinking fountains or bubblers#48.10.17.00.00
+unspsc7#48.10.17.11.00#Bottled water dispensers or accessories#48.10.17.00.00
+unspsc7#48.10.17.12.00#Cup dispenser#48.10.17.00.00
+unspsc7#48.10.17.13.00#Cocktail shakers or accessories#48.10.17.00.00
+unspsc7#48.10.17.14.00#Hot water dispenser#48.10.17.00.00
+unspsc7#48.10.18.00.00#Cookware and kitchen tools#48.10.00.00.00
+unspsc7#48.10.18.01.00#Commercial use cutlery#48.10.18.00.00
+unspsc7#48.10.18.02.00#Commercial use molds#48.10.18.00.00
+unspsc7#48.10.18.03.00#Commercial use scoops#48.10.18.00.00
+unspsc7#48.10.18.04.00#Commercial use measuring cups#48.10.18.00.00
+unspsc7#48.10.18.05.00#Commercial use mixing bowls#48.10.18.00.00
+unspsc7#48.10.18.06.00#Commercial use cake or pie pans#48.10.18.00.00
+unspsc7#48.10.18.07.00#Commercial use pizza pans#48.10.18.00.00
+unspsc7#48.10.18.08.00#Commercial use sauce or saute pans#48.10.18.00.00
+unspsc7#48.10.18.09.00#Commercial use stock or sauce pots#48.10.18.00.00
+unspsc7#48.10.18.10.00#Commercial use pot or pan covers#48.10.18.00.00
+unspsc7#48.10.18.11.00#Commercial use rolling pins#48.10.18.00.00
+unspsc7#48.10.18.12.00#Commercial use strainers#48.10.18.00.00
+unspsc7#48.10.18.13.00#Commercial use whisks#48.10.18.00.00
+unspsc7#48.10.18.14.00#Commercial use woks#48.10.18.00.00
+unspsc7#48.10.18.15.00#Commercial use ladles#48.10.18.00.00
+unspsc7#48.10.18.16.00#Commercial use cutlery pouch#48.10.18.00.00
+unspsc7#48.10.18.17.00#Cake decorating equipment or moulds#48.10.18.00.00
+unspsc7#48.10.19.00.00#Tabletop and serving equipment#48.10.00.00.00
+unspsc7#48.10.19.01.00#Food service dinnerware#48.10.19.00.00
+unspsc7#48.10.19.02.00#Food service flatware#48.10.19.00.00
+unspsc7#48.10.19.03.00#Food service glasses#48.10.19.00.00
+unspsc7#48.10.19.04.00#Food service stemware#48.10.19.00.00
+unspsc7#48.10.19.05.00#Food service cups or mugs#48.10.19.00.00
+unspsc7#48.10.19.06.00#Food service serving baskets#48.10.19.00.00
+unspsc7#48.10.19.07.00#Food service pitchers#48.10.19.00.00
+unspsc7#48.10.19.08.00#Food service chafers#48.10.19.00.00
+unspsc7#48.10.19.09.00#Food service coffee or tea pots#48.10.19.00.00
+unspsc7#48.10.19.10.00#Food service soup crocks#48.10.19.00.00
+unspsc7#48.10.19.11.00#Food service ice buckets or wine coolers#48.10.19.00.00
+unspsc7#48.10.19.12.00#Food service condiment dispensers#48.10.19.00.00
+unspsc7#48.10.19.13.00#Food service punch bowls#48.10.19.00.00
+unspsc7#48.10.19.14.00#Food service wine carafes#48.10.19.00.00
+unspsc7#48.10.19.15.00#Food service trays#48.10.19.00.00
+unspsc7#48.10.19.16.00#Food service napkin dispensers#48.10.19.00.00
+unspsc7#48.10.19.17.00#Food service fondue pots#48.10.19.00.00
+unspsc7#48.10.20.00.00#Restaurant furniture#48.10.00.00.00
+unspsc7#48.10.20.01.00#Restaurant chairs#48.10.20.00.00
+unspsc7#48.10.20.02.00#Booths#48.10.20.00.00
+unspsc7#48.10.20.03.00#Salad bars#48.10.20.00.00
+unspsc7#48.10.20.04.00#Tabletops#48.10.20.00.00
+unspsc7#48.10.20.05.00#Restaurant or bar stools#48.10.20.00.00
+unspsc7#48.10.20.06.00#Permanent bars#48.10.20.00.00
+unspsc7#48.10.20.07.00#Portable bars#48.10.20.00.00
+unspsc7#48.10.21.00.00#Storage and handling equipment#48.10.00.00.00
+unspsc7#48.10.21.01.00#Display cases#48.10.21.00.00
+unspsc7#48.10.21.02.00#Heated display cases#48.10.21.00.00
+unspsc7#48.10.21.03.00#Refrigerated display cases#48.10.21.00.00
+unspsc7#48.10.21.04.00#Ice cream display cases#48.10.21.00.00
+unspsc7#48.10.21.05.00#Glass chilling equipment#48.10.21.00.00
+unspsc7#48.10.21.06.00#Cool containers#48.10.21.00.00
+unspsc7#48.11.00.00.00#Vending machines#48.00.00.00.00
+unspsc7#48.11.10.00.00#Liquid vending machines#48.11.00.00.00
+unspsc7#48.11.10.01.00#Machines dispensing single servings with cups#48.11.10.00.00
+unspsc7#48.11.10.02.00#Machines dispensing bulk quantities#48.11.10.00.00
+unspsc7#48.11.11.00.00#Piece and part vending machines#48.11.00.00.00
+unspsc7#48.11.11.01.00#Bottle or can vending machines#48.11.11.00.00
+unspsc7#48.11.11.02.00#Gumball candy or childrens novelties machines#48.11.11.00.00
+unspsc7#48.11.11.03.00#Snack or small package goods display machines#48.11.11.00.00
+unspsc7#48.11.11.04.00#A la carte foods vending machines#48.11.11.00.00
+unspsc7#48.11.11.05.00#Frozen confections machines#48.11.11.00.00
+unspsc7#48.11.11.06.00#Personal accommodation item dispensers#48.11.11.00.00
+unspsc7#48.11.11.07.00#Cigarette machines#48.11.11.00.00
+unspsc7#48.11.12.00.00#Prepared to order food vending machines#48.11.00.00.00
+unspsc7#48.11.12.01.00#French fry vending machines#48.11.12.00.00
+unspsc7#48.11.12.02.00#Popcorn vending machines#48.11.12.00.00
+unspsc7#48.11.13.00.00#Service and ticket vending machines#48.11.00.00.00
+unspsc7#48.11.13.01.00#Ticket dispensing machines#48.11.13.00.00
+unspsc7#48.11.13.02.00#Insurance policy vending machines#48.11.13.00.00
+unspsc7#48.11.13.03.00#Stamp machines#48.11.13.00.00
+unspsc7#48.11.14.00.00#Currency vending machines#48.11.00.00.00
+unspsc7#48.11.14.01.00#Automatic teller machines (ATMs)#48.11.14.00.00
+unspsc7#48.11.14.02.00#Bill to coin changers#48.11.14.00.00
+unspsc7#48.11.14.03.00#Foreign currency exchange machines#48.11.14.00.00
+unspsc7#48.11.14.04.00#Electronic funds transfer point of sale equipment#48.11.14.00.00
+unspsc7#48.12.00.00.00#Gambling or wagering equipment#48.00.00.00.00
+unspsc7#48.12.11.00.00#Coin operated gambling machines#48.12.00.00.00
+unspsc7#48.12.11.01.00#Poker or slot machines#48.12.11.00.00
+unspsc7#48.12.12.00.00#Gambling tables and games#48.12.00.00.00
+unspsc7#48.12.12.01.00#Roulette wheels#48.12.12.00.00
+unspsc7#48.12.12.02.00#Card tables#48.12.12.00.00
+unspsc7#48.12.13.00.00#Gambling management and networked wagering systems#48.12.00.00.00
+unspsc7#48.12.13.01.00#Table gambling management systems#48.12.13.00.00
+unspsc7#48.12.13.02.00#Networked wagering games#48.12.13.00.00
+unspsc7#49.00.00.00.00#Sports and Recreational Equipment and Supplies and Accessories#49.00.00.00.00
+unspsc7#49.10.00.00.00#Collectibles and awards#49.00.00.00.00
+unspsc7#49.10.15.00.00#Art#49.10.00.00.00
+unspsc7#49.10.15.01.00#Paintings#49.10.15.00.00
+unspsc7#49.10.15.02.00#Sculptures#49.10.15.00.00
+unspsc7#49.10.15.03.00#Statuary#49.10.15.00.00
+unspsc7#49.10.15.04.00#Portraits#49.10.15.00.00
+unspsc7#49.10.15.05.00#Drawings#49.10.15.00.00
+unspsc7#49.10.15.06.00#Pictures#49.10.15.00.00
+unspsc7#49.10.15.07.00#Lithographs#49.10.15.00.00
+unspsc7#49.10.15.08.00#Posters#49.10.15.00.00
+unspsc7#49.10.15.09.00#Decorative pot#49.10.15.00.00
+unspsc7#49.10.15.10.00#Scrolls#49.10.15.00.00
+unspsc7#49.10.15.11.00#Photographs#49.10.15.00.00
+unspsc7#49.10.15.12.00#Flower vases#49.10.15.00.00
+unspsc7#49.10.16.00.00#Collectibles#49.10.00.00.00
+unspsc7#49.10.16.01.00#Antiques#49.10.16.00.00
+unspsc7#49.10.16.02.00#Souvenirs#49.10.16.00.00
+unspsc7#49.10.16.03.00#Mint coin collections#49.10.16.00.00
+unspsc7#49.10.16.04.00#Stamp collections#49.10.16.00.00
+unspsc7#49.10.16.05.00#Antique rugs#49.10.16.00.00
+unspsc7#49.10.16.06.00#Diggings#49.10.16.00.00
+unspsc7#49.10.16.07.00#Comic book collections#49.10.16.00.00
+unspsc7#49.10.16.08.00#Antique musical instruments#49.10.16.00.00
+unspsc7#49.10.16.09.00#Ornaments or decorations#49.10.16.00.00
+unspsc7#49.10.16.10.00#Key chains#49.10.16.00.00
+unspsc7#49.10.16.11.00#Charms#49.10.16.00.00
+unspsc7#49.10.16.12.00#Holograms#49.10.16.00.00
+unspsc7#49.10.16.13.00#Glass crystals#49.10.16.00.00
+unspsc7#49.10.17.00.00#Awards#49.10.00.00.00
+unspsc7#49.10.17.01.00#Medals#49.10.17.00.00
+unspsc7#49.10.17.02.00#Trophies#49.10.17.00.00
+unspsc7#49.10.17.03.00#Medallions#49.10.17.00.00
+unspsc7#49.10.17.04.00#Plaques#49.10.17.00.00
+unspsc7#49.10.17.05.00#Certificates#49.10.17.00.00
+unspsc7#49.10.17.06.00#Photo award#49.10.17.00.00
+unspsc7#49.10.17.07.00#Achievement certificate#49.10.17.00.00
+unspsc7#49.10.17.08.00#Crowns#49.10.17.00.00
+unspsc7#49.11.00.00.00#Musical instruments#49.00.00.00.00
+unspsc7#49.11.15.00.00#Keyboard instruments#49.11.00.00.00
+unspsc7#49.11.15.01.00#Musical organs#49.11.15.00.00
+unspsc7#49.11.15.02.00#Accordions#49.11.15.00.00
+unspsc7#49.11.15.03.00#Pianos#49.11.15.00.00
+unspsc7#49.11.16.00.00#Brass instruments#49.11.00.00.00
+unspsc7#49.11.16.01.00#Trumpets#49.11.16.00.00
+unspsc7#49.11.16.02.00#Trombones#49.11.16.00.00
+unspsc7#49.11.16.03.00#Sousaphones#49.11.16.00.00
+unspsc7#49.11.16.04.00#Saxophones#49.11.16.00.00
+unspsc7#49.11.16.05.00#Whistle#49.11.16.00.00
+unspsc7#49.11.17.00.00#Woodwind instruments#49.11.00.00.00
+unspsc7#49.11.17.01.00#Clarinets#49.11.17.00.00
+unspsc7#49.11.17.02.00#Oboes#49.11.17.00.00
+unspsc7#49.11.17.03.00#Musical flutes#49.11.17.00.00
+unspsc7#49.11.17.04.00#Piccoloes#49.11.17.00.00
+unspsc7#49.11.17.05.00#Musical cornets#49.11.17.00.00
+unspsc7#49.11.17.06.00#Bagpipes#49.11.17.00.00
+unspsc7#49.11.17.07.00#Harmonicas#49.11.17.00.00
+unspsc7#49.11.17.08.00#Kazoos#49.11.17.00.00
+unspsc7#49.11.18.00.00#String instruments#49.11.00.00.00
+unspsc7#49.11.18.01.00#Harpsichords#49.11.18.00.00
+unspsc7#49.11.18.02.00#Clavichords#49.11.18.00.00
+unspsc7#49.11.18.03.00#Guitars#49.11.18.00.00
+unspsc7#49.11.18.04.00#Violins#49.11.18.00.00
+unspsc7#49.11.18.05.00#Harps#49.11.18.00.00
+unspsc7#49.11.18.06.00#Banjoes#49.11.18.00.00
+unspsc7#49.11.19.00.00#Percussion instruments#49.11.00.00.00
+unspsc7#49.11.19.01.00#Cymbals#49.11.19.00.00
+unspsc7#49.11.19.02.00#Bells#49.11.19.00.00
+unspsc7#49.11.19.03.00#Tambourines#49.11.19.00.00
+unspsc7#49.11.19.04.00#Castanets#49.11.19.00.00
+unspsc7#49.11.19.05.00#Drums#49.11.19.00.00
+unspsc7#49.11.19.06.00#Xylophones#49.11.19.00.00
+unspsc7#49.11.19.07.00#Bodhran#49.11.19.00.00
+unspsc7#49.11.20.00.00#Musical instrument parts and accessories#49.11.00.00.00
+unspsc7#49.11.20.01.00#Metronomes#49.11.20.00.00
+unspsc7#49.11.20.02.00#Reeds#49.11.20.00.00
+unspsc7#49.11.20.03.00#Instrument strings or picks#49.11.20.00.00
+unspsc7#49.11.20.04.00#Tuning pins#49.11.20.00.00
+unspsc7#49.11.20.05.00#Musical instrument stands or sheet holders#49.11.20.00.00
+unspsc7#49.11.20.06.00#Accessories for stringed instruments#49.11.20.00.00
+unspsc7#49.11.20.07.00#Percussion instrument accessory#49.11.20.00.00
+unspsc7#49.11.20.08.00#Music boxes or mechanisms#49.11.20.00.00
+unspsc7#49.12.00.00.00#Camping and outdoor equipment and accessories#49.00.00.00.00
+unspsc7#49.12.15.00.00#Camping and outdoor equipment#49.12.00.00.00
+unspsc7#49.12.15.01.00#Tarpaulins#49.12.15.00.00
+unspsc7#49.12.15.02.00#Sleeping pads#49.12.15.00.00
+unspsc7#49.12.15.03.00#Tents#49.12.15.00.00
+unspsc7#49.12.15.04.00#Sleeping bags#49.12.15.00.00
+unspsc7#49.12.15.05.00#Ice chests#49.12.15.00.00
+unspsc7#49.12.15.06.00#Tent repair kits#49.12.15.00.00
+unspsc7#49.12.15.07.00#Pneumatic mattresses#49.12.15.00.00
+unspsc7#49.12.15.08.00#Mosquito nets#49.12.15.00.00
+unspsc7#49.12.15.09.00#Camping or outdoor stoves#49.12.15.00.00
+unspsc7#49.12.15.10.00#Drink coolers#49.12.15.00.00
+unspsc7#49.12.16.00.00#Camping furniture#49.12.00.00.00
+unspsc7#49.12.16.01.00#Camping chairs or stools#49.12.16.00.00
+unspsc7#49.12.16.02.00#Camping tables#49.12.16.00.00
+unspsc7#49.12.16.03.00#Camping cots#49.12.16.00.00
+unspsc7#49.13.00.00.00#Fishing and hunting equipment#49.00.00.00.00
+unspsc7#49.13.15.00.00#Fishing tackle#49.13.00.00.00
+unspsc7#49.13.15.01.00#Fishing rods#49.13.15.00.00
+unspsc7#49.13.15.02.00#Fishing line#49.13.15.00.00
+unspsc7#49.13.15.03.00#Fishing reels#49.13.15.00.00
+unspsc7#49.13.15.04.00#Fishing lures#49.13.15.00.00
+unspsc7#49.13.15.05.00#Fishing bait#49.13.15.00.00
+unspsc7#49.13.15.06.00#Fishing weights or sinkers#49.13.15.00.00
+unspsc7#49.13.16.00.00#Hunting products#49.13.00.00.00
+unspsc7#49.13.16.01.00#Animal calls#49.13.16.00.00
+unspsc7#49.13.16.02.00#Sporting decoys#49.13.16.00.00
+unspsc7#49.13.16.03.00#Sporting traps#49.13.16.00.00
+unspsc7#49.13.16.04.00#Sporting shotguns#49.13.16.00.00
+unspsc7#49.13.16.05.00#Sporting rifles#49.13.16.00.00
+unspsc7#49.13.16.06.00#Sporting ammunition#49.13.16.00.00
+unspsc7#49.13.16.07.00#Gun barrel#49.13.16.00.00
+unspsc7#49.14.00.00.00#Watersports equipment#49.00.00.00.00
+unspsc7#49.14.15.00.00#Scuba and snorkeling gear#49.14.00.00.00
+unspsc7#49.14.15.01.00#Bouyancy compensators#49.14.15.00.00
+unspsc7#49.14.15.02.00#Scuba tanks#49.14.15.00.00
+unspsc7#49.14.15.03.00#Scuba regulators#49.14.15.00.00
+unspsc7#49.14.15.04.00#Diving instruments or accessories#49.14.15.00.00
+unspsc7#49.14.15.05.00#Masks or fins or snorkels#49.14.15.00.00
+unspsc7#49.14.15.06.00#Wetsuits#49.14.15.00.00
+unspsc7#49.14.15.07.00#Drysuits#49.14.15.00.00
+unspsc7#49.14.16.00.00#Surf and swim equipment and accessories#49.14.00.00.00
+unspsc7#49.14.16.02.00#Wakeboards or kneeboards or boogieboards#49.14.16.00.00
+unspsc7#49.14.16.03.00#Water skis or accessories#49.14.16.00.00
+unspsc7#49.14.16.04.00#Windsurfing equipment#49.14.16.00.00
+unspsc7#49.14.16.05.00#Surfboards#49.14.16.00.00
+unspsc7#49.14.16.06.00#Swim goggles or swim fins#49.14.16.00.00
+unspsc7#49.14.16.07.00#Parasailing equipment#49.14.16.00.00
+unspsc7#49.15.00.00.00#Winter sports equipment#49.00.00.00.00
+unspsc7#49.15.15.00.00#Skiing and snowboarding equipment#49.15.00.00.00
+unspsc7#49.15.15.01.00#Ski boots#49.15.15.00.00
+unspsc7#49.15.15.02.00#Skis#49.15.15.00.00
+unspsc7#49.15.15.03.00#Ski poles#49.15.15.00.00
+unspsc7#49.15.15.04.00#Bindings#49.15.15.00.00
+unspsc7#49.15.15.05.00#Snowboards#49.15.15.00.00
+unspsc7#49.15.16.00.00#Skating and ice hockey equipment#49.15.00.00.00
+unspsc7#49.15.16.01.00#Hockey pucks#49.15.16.00.00
+unspsc7#49.15.16.02.00#Ice skates#49.15.16.00.00
+unspsc7#49.15.16.03.00#Hockey sticks#49.15.16.00.00
+unspsc7#49.16.00.00.00#Field and court sports equipment#49.00.00.00.00
+unspsc7#49.16.15.00.00#Field sports equipment#49.16.00.00.00
+unspsc7#49.16.15.01.00#Football blocking sleds#49.16.15.00.00
+unspsc7#49.16.15.02.00#Baseball gloves#49.16.15.00.00
+unspsc7#49.16.15.03.00#Baseballs#49.16.15.00.00
+unspsc7#49.16.15.04.00#Footballs#49.16.15.00.00
+unspsc7#49.16.15.05.00#Soccer balls#49.16.15.00.00
+unspsc7#49.16.15.06.00#Baseball bats#49.16.15.00.00
+unspsc7#49.16.15.07.00#Baseball bases#49.16.15.00.00
+unspsc7#49.16.15.08.00#Pitching machines#49.16.15.00.00
+unspsc7#49.16.15.09.00#Softballs#49.16.15.00.00
+unspsc7#49.16.15.10.00#Football tackling dummies#49.16.15.00.00
+unspsc7#49.16.15.11.00#Lacrosse sticks#49.16.15.00.00
+unspsc7#49.16.15.12.00#Lacrosse balls#49.16.15.00.00
+unspsc7#49.16.15.13.00#Field hockey sticks#49.16.15.00.00
+unspsc7#49.16.15.14.00#Field hockey balls#49.16.15.00.00
+unspsc7#49.16.15.15.00#Team handball balls#49.16.15.00.00
+unspsc7#49.16.15.16.00#Team handball school sets#49.16.15.00.00
+unspsc7#49.16.15.17.00#Baseball or softball protective gear#49.16.15.00.00
+unspsc7#49.16.15.18.00#Baseball batting aids#49.16.15.00.00
+unspsc7#49.16.15.19.00#Baseball backstops or fences#49.16.15.00.00
+unspsc7#49.16.15.20.00#Softball bats#49.16.15.00.00
+unspsc7#49.16.15.21.00#Softball gloves#49.16.15.00.00
+unspsc7#49.16.15.22.00#Football kicking tees#49.16.15.00.00
+unspsc7#49.16.15.23.00#Flag football gear#49.16.15.00.00
+unspsc7#49.16.15.24.00#Soccer field marking equipment#49.16.15.00.00
+unspsc7#49.16.15.25.00#Soccer protective equipment#49.16.15.00.00
+unspsc7#49.16.15.26.00#Soccer training aids#49.16.15.00.00
+unspsc7#49.16.16.00.00#Racquet and court sports equipment#49.16.00.00.00
+unspsc7#49.16.16.01.00#Racquetball rackets#49.16.16.00.00
+unspsc7#49.16.16.02.00#Badminton rackets#49.16.16.00.00
+unspsc7#49.16.16.03.00#Basketballs#49.16.16.00.00
+unspsc7#49.16.16.04.00#Tennis balls#49.16.16.00.00
+unspsc7#49.16.16.05.00#Racquet balls#49.16.16.00.00
+unspsc7#49.16.16.06.00#Squash balls#49.16.16.00.00
+unspsc7#49.16.16.07.00#Tennis racquets#49.16.16.00.00
+unspsc7#49.16.16.08.00#Volleyballs#49.16.16.00.00
+unspsc7#49.16.16.09.00#Badminton birdies or shuttlecocks#49.16.16.00.00
+unspsc7#49.16.16.10.00#Squash racquets#49.16.16.00.00
+unspsc7#49.16.16.11.00#Tennis training aids#49.16.16.00.00
+unspsc7#49.16.16.12.00#Tennis court equipment#49.16.16.00.00
+unspsc7#49.16.16.13.00#Volleyball storage for balls or nets#49.16.16.00.00
+unspsc7#49.16.16.14.00#Volleyball gymnasium standards#49.16.16.00.00
+unspsc7#49.16.16.15.00#Basketball complete game systems#49.16.16.00.00
+unspsc7#49.16.16.16.00#Floor hockey protective equipment#49.16.16.00.00
+unspsc7#49.16.16.17.00#Tether poles#49.16.16.00.00
+unspsc7#49.16.16.18.00#Tether balls#49.16.16.00.00
+unspsc7#49.16.17.00.00#Track sports equipment#49.16.00.00.00
+unspsc7#49.16.17.01.00#Javelins#49.16.17.00.00
+unspsc7#49.16.17.02.00#Jumping bars#49.16.17.00.00
+unspsc7#49.16.17.03.00#Discus#49.16.17.00.00
+unspsc7#49.16.17.04.00#Shotputs#49.16.17.00.00
+unspsc7#49.16.17.05.00#Vaulting poles#49.16.17.00.00
+unspsc7#49.16.17.06.00#Hurdles#49.16.17.00.00
+unspsc7#49.16.17.07.00#Batons#49.16.17.00.00
+unspsc7#49.17.00.00.00#Gymnastics and boxing equipment#49.00.00.00.00
+unspsc7#49.17.15.00.00#Gymnastics equipment#49.17.00.00.00
+unspsc7#49.17.15.01.00#Gymnastic bars or beams#49.17.15.00.00
+unspsc7#49.17.15.02.00#Gymnastic ropes or rings or climbing accessories#49.17.15.00.00
+unspsc7#49.17.15.03.00#Gymnastic vaulting equipment#49.17.15.00.00
+unspsc7#49.17.15.04.00#Gymnastic trampolines#49.17.15.00.00
+unspsc7#49.17.15.05.00#Balance equipment#49.17.15.00.00
+unspsc7#49.17.16.00.00#Boxing equipment#49.17.00.00.00
+unspsc7#49.17.16.01.00#Boxing rings#49.17.16.00.00
+unspsc7#49.17.16.02.00#Punching bags#49.17.16.00.00
+unspsc7#49.17.16.03.00#Boxing gloves#49.17.16.00.00
+unspsc7#49.18.00.00.00#Target and table games and equipment#49.00.00.00.00
+unspsc7#49.18.15.00.00#Table games and equipment#49.18.00.00.00
+unspsc7#49.18.15.01.00#Billiard tables#49.18.15.00.00
+unspsc7#49.18.15.02.00#Pool cues#49.18.15.00.00
+unspsc7#49.18.15.03.00#Shuffleboard#49.18.15.00.00
+unspsc7#49.18.15.04.00#Pinball games#49.18.15.00.00
+unspsc7#49.18.15.05.00#Billiard balls#49.18.15.00.00
+unspsc7#49.18.15.06.00#Air hockey tables or accessories#49.18.15.00.00
+unspsc7#49.18.15.07.00#Tennis tables#49.18.15.00.00
+unspsc7#49.18.15.08.00#Table tennis paddles#49.18.15.00.00
+unspsc7#49.18.15.09.00#Table tennis balls#49.18.15.00.00
+unspsc7#49.18.15.10.00#Foosball tables#49.18.15.00.00
+unspsc7#49.18.15.11.00#Foosballs#49.18.15.00.00
+unspsc7#49.18.15.12.00#Foosball replacement players#49.18.15.00.00
+unspsc7#49.18.15.13.00#Billiard cue tips#49.18.15.00.00
+unspsc7#49.18.15.14.00#Billiard chalk#49.18.15.00.00
+unspsc7#49.18.15.15.00#Billiard racks#49.18.15.00.00
+unspsc7#49.18.16.00.00#Target games and equipment#49.18.00.00.00
+unspsc7#49.18.16.01.00#Archery targets#49.18.16.00.00
+unspsc7#49.18.16.02.00#Archery bows#49.18.16.00.00
+unspsc7#49.18.16.03.00#Archery arrows#49.18.16.00.00
+unspsc7#49.18.16.04.00#Darts#49.18.16.00.00
+unspsc7#49.18.16.05.00#Dart boards#49.18.16.00.00
+unspsc7#49.18.16.06.00#Trapshooting equipment#49.18.16.00.00
+unspsc7#49.18.16.07.00#Throwing targets#49.18.16.00.00
+unspsc7#49.18.16.08.00#Archery bow strings#49.18.16.00.00
+unspsc7#49.18.16.09.00#Archery gloves#49.18.16.00.00
+unspsc7#49.18.16.10.00#Archery arm guards#49.18.16.00.00
+unspsc7#49.18.16.11.00#Archery target stands#49.18.16.00.00
+unspsc7#49.18.16.12.00#Archery backstops#49.18.16.00.00
+unspsc7#49.20.00.00.00#Fitness equipment#49.00.00.00.00
+unspsc7#49.20.15.00.00#Aerobic training equipment#49.20.00.00.00
+unspsc7#49.20.15.01.00#Treadmills#49.20.15.00.00
+unspsc7#49.20.15.02.00#Stair climbers#49.20.15.00.00
+unspsc7#49.20.15.03.00#Stationary bicycles#49.20.15.00.00
+unspsc7#49.20.15.04.00#Rowing machines#49.20.15.00.00
+unspsc7#49.20.15.12.00#Jump ropes#49.20.15.00.00
+unspsc7#49.20.15.13.00#Exercise trampolines#49.20.15.00.00
+unspsc7#49.20.15.14.00#Exercise balls#49.20.15.00.00
+unspsc7#49.20.15.15.00#Step aerobic equipment#49.20.15.00.00
+unspsc7#49.20.16.00.00#Weight and resistance training equipment#49.20.00.00.00
+unspsc7#49.20.16.01.00#Dumbbells#49.20.16.00.00
+unspsc7#49.20.16.02.00#Barbells#49.20.16.00.00
+unspsc7#49.20.16.03.00#Lower body resistance machines#49.20.16.00.00
+unspsc7#49.20.16.04.00#Weight benches or racks#49.20.16.00.00
+unspsc7#49.20.16.05.00#Upper body resistance machines#49.20.16.00.00
+unspsc7#49.20.16.06.00#Fitness weights#49.20.16.00.00
+unspsc7#49.20.16.07.00#Pilates machines#49.20.16.00.00
+unspsc7#49.20.16.08.00#Grip strengthener#49.20.16.00.00
+unspsc7#49.20.16.09.00#Resistance bands#49.20.16.00.00
+unspsc7#49.20.16.10.00#Resistance tubes#49.20.16.00.00
+unspsc7#49.21.00.00.00#Other sports#49.00.00.00.00
+unspsc7#49.21.16.00.00#Golf equipment#49.21.00.00.00
+unspsc7#49.21.16.01.00#Golf bags#49.21.16.00.00
+unspsc7#49.21.16.02.00#Golf balls#49.21.16.00.00
+unspsc7#49.21.16.03.00#Golf clubs#49.21.16.00.00
+unspsc7#49.21.16.04.00#Golf tees#49.21.16.00.00
+unspsc7#49.21.16.05.00#Golf club head covers#49.21.16.00.00
+unspsc7#49.21.16.06.00#Golf gloves#49.21.16.00.00
+unspsc7#49.21.16.07.00#Divot fixers#49.21.16.00.00
+unspsc7#49.21.17.00.00#Bowling equipment and supplies and accessories#49.21.00.00.00
+unspsc7#49.21.17.01.00#Bowling equipment#49.21.17.00.00
+unspsc7#49.21.17.02.00#Bowling supplies#49.21.17.00.00
+unspsc7#49.21.17.03.00#Bowling accessories#49.21.17.00.00
+unspsc7#49.21.18.00.00#Physical education classroom equipment#49.21.00.00.00
+unspsc7#49.21.18.01.00#Parachute equipment#49.21.18.00.00
+unspsc7#49.21.18.02.00#Hula hoops or hoop equipment#49.21.18.00.00
+unspsc7#49.21.18.03.00#Orienteering equipment#49.21.18.00.00
+unspsc7#49.21.18.04.00#Team identification materials or markers#49.21.18.00.00
+unspsc7#49.21.18.05.00#Lanyards#49.21.18.00.00
+unspsc7#49.21.18.06.00#Physical education equipment storage#49.21.18.00.00
+unspsc7#49.21.18.07.00#Physical education assessment tools#49.21.18.00.00
+unspsc7#49.22.00.00.00#Sports accessories#49.00.00.00.00
+unspsc7#49.22.15.00.00#Sport accessories#49.22.00.00.00
+unspsc7#49.22.15.01.00#Sport scoreboards#49.22.15.00.00
+unspsc7#49.22.15.02.00#Sport goals#49.22.15.00.00
+unspsc7#49.22.15.03.00#Sport safety equipment other than headgear#49.22.15.00.00
+unspsc7#49.22.15.04.00#Sport safety headgear#49.22.15.00.00
+unspsc7#49.22.15.05.00#Sport nets or netting#49.22.15.00.00
+unspsc7#49.22.15.06.00#Sport mats or padding#49.22.15.00.00
+unspsc7#49.22.15.07.00#Basketball backboards#49.22.15.00.00
+unspsc7#49.22.15.08.00#Basketball hoop#49.22.15.00.00
+unspsc7#49.22.15.09.00#Roller skates or roller blades#49.22.15.00.00
+unspsc7#49.23.00.00.00#Toys and games#49.00.00.00.00
+unspsc7#49.23.15.00.00#Toys#49.23.00.00.00
+unspsc7#49.23.15.01.00#Musical toys#49.23.15.00.00
+unspsc7#49.23.15.02.00#Educational toys#49.23.15.00.00
+unspsc7#49.23.15.03.00#Toy balloons or balls#49.23.15.00.00
+unspsc7#49.23.15.04.00#Dolls#49.23.15.00.00
+unspsc7#49.23.15.05.00#Doll houses#49.23.15.00.00
+unspsc7#49.23.15.06.00#Stuffed animals or puppets#49.23.15.00.00
+unspsc7#49.23.15.07.00#Playhouses#49.23.15.00.00
+unspsc7#49.23.15.08.00#Building blocks#49.23.15.00.00
+unspsc7#49.23.15.09.00#Riding toys#49.23.15.00.00
+unspsc7#49.23.15.10.00#Pull toys#49.23.15.00.00
+unspsc7#49.23.15.11.00#Childrens science kits#49.23.15.00.00
+unspsc7#49.23.15.12.00#Toy vehicles#49.23.15.00.00
+unspsc7#49.23.15.13.00#Toy trains#49.23.15.00.00
+unspsc7#49.23.15.14.00#Inflatable toys#49.23.15.00.00
+unspsc7#49.23.15.15.00#Doll parts or accessories#49.23.15.00.00
+unspsc7#49.23.15.16.00#Yo yos#49.23.15.00.00
+unspsc7#49.23.15.17.00#Kites#49.23.15.00.00
+unspsc7#49.23.15.18.00#Pogs#49.23.15.00.00
+unspsc7#49.23.15.19.00#Kaleidoscopes#49.23.15.00.00
+unspsc7#49.23.15.20.00#Pom poms#49.23.15.00.00
+unspsc7#49.23.15.21.00#Pinatas#49.23.15.00.00
+unspsc7#49.23.15.22.00#Boomerangs#49.23.15.00.00
+unspsc7#49.23.15.23.00#Flying discs#49.23.15.00.00
+unspsc7#49.23.15.24.00#Toy pails#49.23.15.00.00
+unspsc7#49.23.16.00.00#Games#49.23.00.00.00
+unspsc7#49.23.16.01.00#Educational games#49.23.16.00.00
+unspsc7#49.23.16.02.00#Board games#49.23.16.00.00
+unspsc7#49.23.16.03.00#Playing cards#49.23.16.00.00
+unspsc7#49.23.16.04.00#Video games#49.23.16.00.00
+unspsc7#49.23.16.05.00#Puzzles#49.23.16.00.00
+unspsc7#49.23.16.06.00#Dice#49.23.16.00.00
+unspsc7#49.24.00.00.00#Recreation and playground and swimming and spa equipment and supplies#49.00.00.00.00
+unspsc7#49.24.15.00.00#Playground equipment#49.24.00.00.00
+unspsc7#49.24.15.01.00#Playground swings#49.24.15.00.00
+unspsc7#49.24.15.02.00#Playground climbing apparatus#49.24.15.00.00
+unspsc7#49.24.15.03.00#Playground merry go rounds#49.24.15.00.00
+unspsc7#49.24.15.04.00#Playground slides#49.24.15.00.00
+unspsc7#49.24.15.05.00#Playground see saws#49.24.15.00.00
+unspsc7#49.24.15.06.00#Playground tunnels#49.24.15.00.00
+unspsc7#49.24.15.07.00#Playground sandboxes#49.24.15.00.00
+unspsc7#49.24.15.08.00#Playground bleachers#49.24.15.00.00
+unspsc7#49.24.15.09.00#Wall climbing equipment#49.24.15.00.00
+unspsc7#49.24.15.10.00#Rope climbing equipment#49.24.15.00.00
+unspsc7#49.24.16.00.00#Recreational equipment#49.24.00.00.00
+unspsc7#49.24.16.01.00#Croquet sets#49.24.16.00.00
+unspsc7#49.24.16.02.00#Lawn bowling equipment#49.24.16.00.00
+unspsc7#49.24.16.03.00#Horseshoe equipment#49.24.16.00.00
+unspsc7#49.24.16.04.00#Lawn darts#49.24.16.00.00
+unspsc7#49.24.17.00.00#Swimming pool and spa equipment and supplies#49.24.00.00.00
+unspsc7#49.24.17.01.00#Diving boards#49.24.17.00.00
+unspsc7#49.24.17.02.00#Pool slides#49.24.17.00.00
+unspsc7#49.24.17.03.00#Spa blower#49.24.17.00.00
+unspsc7#49.24.17.04.00#Water test kit or solutions#49.24.17.00.00
+unspsc7#49.24.17.05.00#Automatic pool cleaner#49.24.17.00.00
+unspsc7#49.24.17.06.00#Solar blanket#49.24.17.00.00
+unspsc7#49.24.17.07.00#Pool or spa heater#49.24.17.00.00
+unspsc7#49.24.17.08.00#Ozone generator#49.24.17.00.00
+unspsc7#49.24.17.09.00#Solar blanket reels#49.24.17.00.00
+unspsc7#49.25.00.00.00#Arts and crafts supplies#49.00.00.00.00
+unspsc7#49.25.15.00.00#Art supplies#49.25.00.00.00
+unspsc7#49.25.15.01.00#Art paints#49.25.15.00.00
+unspsc7#49.25.15.02.00#Modeling clay#49.25.15.00.00
+unspsc7#49.25.15.03.00#Art paintbrushes#49.25.15.00.00
+unspsc7#49.25.15.04.00#Picture or poster frames#49.25.15.00.00
+unspsc7#49.25.15.05.00#Picture albums or organizers#49.25.15.00.00
+unspsc7#49.25.15.06.00#Cutting mats#49.25.15.00.00
+unspsc7#49.25.15.07.00#Carving board#49.25.15.00.00
+unspsc7#49.25.15.08.00#Palettes#49.25.15.00.00
+unspsc7#49.25.15.09.00#Glitter#49.25.15.00.00
+unspsc7#49.25.15.10.00#Beads#49.25.15.00.00
+unspsc7#49.25.15.11.00#Decorative tapes or twists#49.25.15.00.00
+unspsc7#49.25.16.00.00#Craft supplies#49.25.00.00.00
+unspsc7#49.25.16.01.00#Model kits#49.25.16.00.00
+unspsc7#49.25.16.02.00#Potters wheels#49.25.16.00.00
+unspsc7#49.25.16.03.00#Decorative buttons#49.25.16.00.00
+unspsc7#49.25.16.04.00#Decorative shapes or strings#49.25.16.00.00
+unspsc7#49.25.16.05.00#Craft kits#49.25.16.00.00
+unspsc7#50.00.00.00.00#Food Beverage and Tobacco Products#50.00.00.00.00
+unspsc7#50.10.00.00.00#Fruits and vegetables and nuts and seeds#50.00.00.00.00
+unspsc7#50.10.15.00.00#Vegetables#50.10.00.00.00
+unspsc7#50.10.15.01.00#Beans#50.10.15.00.00
+unspsc7#50.10.15.02.00#Spinach#50.10.15.00.00
+unspsc7#50.10.15.03.00#Potatoes#50.10.15.00.00
+unspsc7#50.10.15.04.00#Peas#50.10.15.00.00
+unspsc7#50.10.15.05.00#Onions or other alliaceous vegetables#50.10.15.00.00
+unspsc7#50.10.15.06.00#Lettuce#50.10.15.00.00
+unspsc7#50.10.15.07.00#Cabbage#50.10.15.00.00
+unspsc7#50.10.15.08.00#Squashes#50.10.15.00.00
+unspsc7#50.10.15.09.00#Yams#50.10.15.00.00
+unspsc7#50.10.15.10.00#Carrots#50.10.15.00.00
+unspsc7#50.10.15.11.00#Rutabagas#50.10.15.00.00
+unspsc7#50.10.15.12.00#Eggplants#50.10.15.00.00
+unspsc7#50.10.15.13.00#Peppers#50.10.15.00.00
+unspsc7#50.10.15.14.00#Rhubarb#50.10.15.00.00
+unspsc7#50.10.15.15.00#Endive#50.10.15.00.00
+unspsc7#50.10.15.16.00#Asparagus#50.10.15.00.00
+unspsc7#50.10.15.17.00#Artichokes#50.10.15.00.00
+unspsc7#50.10.15.18.00#Parsnips#50.10.15.00.00
+unspsc7#50.10.15.19.00#Celery#50.10.15.00.00
+unspsc7#50.10.15.20.00#Radishes#50.10.15.00.00
+unspsc7#50.10.15.21.00#Mushrooms or other edible fungi#50.10.15.00.00
+unspsc7#50.10.15.22.00#Horseradish#50.10.15.00.00
+unspsc7#50.10.15.23.00#Turnips#50.10.15.00.00
+unspsc7#50.10.15.24.00#Mustard greens#50.10.15.00.00
+unspsc7#50.10.15.25.00#Kale#50.10.15.00.00
+unspsc7#50.10.15.26.00#Collards#50.10.15.00.00
+unspsc7#50.10.15.27.00#Brussel sprouts#50.10.15.00.00
+unspsc7#50.10.15.28.00#Broccoli#50.10.15.00.00
+unspsc7#50.10.15.29.00#Cauliflowers#50.10.15.00.00
+unspsc7#50.10.15.30.00#Okra#50.10.15.00.00
+unspsc7#50.10.15.31.00#Cucumbers#50.10.15.00.00
+unspsc7#50.10.15.32.00#Tomatoes#50.10.15.00.00
+unspsc7#50.10.15.33.00#Beets#50.10.15.00.00
+unspsc7#50.10.15.34.00#Manioc roots#50.10.15.00.00
+unspsc7#50.10.15.35.00#Lentils#50.10.15.00.00
+unspsc7#50.10.15.36.00#Corn#50.10.15.00.00
+unspsc7#50.10.15.37.00#Pumpkins#50.10.15.00.00
+unspsc7#50.10.15.38.00#Fresh vegetables#50.10.15.00.00
+unspsc7#50.10.15.39.00#Frozen vegetables#50.10.15.00.00
+unspsc7#50.10.15.40.00#Shelf stable vegetables#50.10.15.00.00
+unspsc7#50.10.16.00.00#Fruits#50.10.00.00.00
+unspsc7#50.10.16.01.00#Limes#50.10.16.00.00
+unspsc7#50.10.16.02.00#Mangoes#50.10.16.00.00
+unspsc7#50.10.16.03.00#Guavas#50.10.16.00.00
+unspsc7#50.10.16.04.00#Grapes#50.10.16.00.00
+unspsc7#50.10.16.05.00#Dates#50.10.16.00.00
+unspsc7#50.10.16.06.00#Apricots#50.10.16.00.00
+unspsc7#50.10.16.07.00#Berries#50.10.16.00.00
+unspsc7#50.10.16.08.00#Peaches#50.10.16.00.00
+unspsc7#50.10.16.09.00#Cherries#50.10.16.00.00
+unspsc7#50.10.16.10.00#Bananas#50.10.16.00.00
+unspsc7#50.10.16.11.00#Melons#50.10.16.00.00
+unspsc7#50.10.16.12.00#Pomegranates#50.10.16.00.00
+unspsc7#50.10.16.13.00#Papayas#50.10.16.00.00
+unspsc7#50.10.16.14.00#Kiwis#50.10.16.00.00
+unspsc7#50.10.16.15.00#Lichees#50.10.16.00.00
+unspsc7#50.10.16.16.00#Pears#50.10.16.00.00
+unspsc7#50.10.16.17.00#Plums#50.10.16.00.00
+unspsc7#50.10.16.18.00#Apples#50.10.16.00.00
+unspsc7#50.10.16.19.00#Passion fruit#50.10.16.00.00
+unspsc7#50.10.16.20.00#Nectarines#50.10.16.00.00
+unspsc7#50.10.16.21.00#Pineapples#50.10.16.00.00
+unspsc7#50.10.16.22.00#Figs#50.10.16.00.00
+unspsc7#50.10.16.23.00#Tangelos#50.10.16.00.00
+unspsc7#50.10.16.24.00#Mandarins#50.10.16.00.00
+unspsc7#50.10.16.25.00#Oranges#50.10.16.00.00
+unspsc7#50.10.16.26.00#Tangerines#50.10.16.00.00
+unspsc7#50.10.16.27.00#Grapefruit#50.10.16.00.00
+unspsc7#50.10.16.28.00#Lemons#50.10.16.00.00
+unspsc7#50.10.16.29.00#Durians#50.10.16.00.00
+unspsc7#50.10.16.30.00#Coconuts#50.10.16.00.00
+unspsc7#50.10.16.31.00#Avocados#50.10.16.00.00
+unspsc7#50.10.16.32.00#Quinces#50.10.16.00.00
+unspsc7#50.10.16.33.00#Olives#50.10.16.00.00
+unspsc7#50.10.16.34.00#Fresh fruit#50.10.16.00.00
+unspsc7#50.10.16.35.00#Frozen fruit#50.10.16.00.00
+unspsc7#50.10.16.36.00#Shelf stable fruit#50.10.16.00.00
+unspsc7#50.10.17.00.00#Nuts and seeds#50.10.00.00.00
+unspsc7#50.10.17.01.00#Chestnuts#50.10.17.00.00
+unspsc7#50.10.17.03.00#Pecans#50.10.17.00.00
+unspsc7#50.10.17.04.00#Brazil nuts#50.10.17.00.00
+unspsc7#50.10.17.05.00#Cashews#50.10.17.00.00
+unspsc7#50.10.17.06.00#Almonds#50.10.17.00.00
+unspsc7#50.10.17.07.00#Macadamia nuts#50.10.17.00.00
+unspsc7#50.10.17.08.00#Hazelnuts#50.10.17.00.00
+unspsc7#50.10.17.09.00#Pine nuts#50.10.17.00.00
+unspsc7#50.10.17.10.00#Pistachios#50.10.17.00.00
+unspsc7#50.10.17.11.00#Walnuts#50.10.17.00.00
+unspsc7#50.10.17.12.00#Betel nuts#50.10.17.00.00
+unspsc7#50.10.17.13.00#Peanuts or groundnuts#50.10.17.00.00
+unspsc7#50.10.17.14.00#Mixed nuts#50.10.17.00.00
+unspsc7#50.10.17.15.00#Nut meat#50.10.17.00.00
+unspsc7#50.10.17.16.00#Whole nuts or seeds#50.10.17.00.00
+unspsc7#50.10.17.17.00#Shelled#50.10.17.00.00
+unspsc7#50.11.00.00.00#Meat and poultry products#50.00.00.00.00
+unspsc7#50.11.15.00.00#Meat and poultry#50.11.00.00.00
+unspsc7#50.11.15.01.00#Chicken#50.11.15.00.00
+unspsc7#50.11.15.02.00#Turkey#50.11.15.00.00
+unspsc7#50.11.15.03.00#Duck#50.11.15.00.00
+unspsc7#50.11.15.04.00#Ostrich#50.11.15.00.00
+unspsc7#50.11.15.05.00#Partridge#50.11.15.00.00
+unspsc7#50.11.15.06.00#Dove#50.11.15.00.00
+unspsc7#50.11.15.07.00#Pheasant#50.11.15.00.00
+unspsc7#50.11.15.08.00#Quail#50.11.15.00.00
+unspsc7#50.11.15.09.00#Goose#50.11.15.00.00
+unspsc7#50.11.15.10.00#Fresh meat and poultry#50.11.15.00.00
+unspsc7#50.11.15.11.00#Frozen meat and poultry#50.11.15.00.00
+unspsc7#50.11.15.12.00#Shelf stable meat and poultry#50.11.15.00.00
+unspsc7#50.11.16.00.00#Fresh and frozen red meat and byproducts#50.11.00.00.00
+unspsc7#50.11.16.01.00#Beef#50.11.16.00.00
+unspsc7#50.11.16.02.00#Veal#50.11.16.00.00
+unspsc7#50.11.16.03.00#Mutton#50.11.16.00.00
+unspsc7#50.11.16.04.00#Lamb#50.11.16.00.00
+unspsc7#50.11.16.05.00#Buffalo#50.11.16.00.00
+unspsc7#50.11.16.06.00#Horsemeat#50.11.16.00.00
+unspsc7#50.11.16.07.00#Ass or mule or hinny meat#50.11.16.00.00
+unspsc7#50.11.17.00.00#Fresh and frozen pork and byproducts#50.11.00.00.00
+unspsc7#50.11.17.01.00#Pork#50.11.17.00.00
+unspsc7#50.11.18.00.00#Fresh and frozen organ meat and byproducts#50.11.00.00.00
+unspsc7#50.11.18.01.00#Organ meat#50.11.18.00.00
+unspsc7#50.11.18.02.00#Liver#50.11.18.00.00
+unspsc7#50.11.18.03.00#Gizzard#50.11.18.00.00
+unspsc7#50.11.18.04.00#Tripe#50.11.18.00.00
+unspsc7#50.11.18.05.00#Stomach#50.11.18.00.00
+unspsc7#50.11.18.06.00#Kidney#50.11.18.00.00
+unspsc7#50.11.18.07.00#Brains#50.11.18.00.00
+unspsc7#50.11.19.00.00#Delicatessen meat products#50.11.00.00.00
+unspsc7#50.11.19.01.00#Salami#50.11.19.00.00
+unspsc7#50.11.19.02.00#Kabana#50.11.19.00.00
+unspsc7#50.11.19.03.00#Pastrami#50.11.19.00.00
+unspsc7#50.11.19.04.00#Roast beef#50.11.19.00.00
+unspsc7#50.11.19.05.00#Corned beef or silverside#50.11.19.00.00
+unspsc7#50.11.19.06.00#Frankfurt or hot dog#50.11.19.00.00
+unspsc7#50.11.20.00.00#Processed and prepared meats#50.11.00.00.00
+unspsc7#50.11.20.01.00#Fresh processed or prepared meats#50.11.20.00.00
+unspsc7#50.11.20.02.00#Frozen processed or prepared meats#50.11.20.00.00
+unspsc7#50.11.20.03.00#Shelf stable processed or prepared meats#50.11.20.00.00
+unspsc7#50.12.00.00.00#Seafood#50.00.00.00.00
+unspsc7#50.12.15.00.00#Fish#50.12.00.00.00
+unspsc7#50.12.15.01.00#Lemonfish#50.12.15.00.00
+unspsc7#50.12.15.02.00#Dogfish#50.12.15.00.00
+unspsc7#50.12.15.03.00#Grouper#50.12.15.00.00
+unspsc7#50.12.15.04.00#Mahi mahi#50.12.15.00.00
+unspsc7#50.12.15.05.00#Monkfish#50.12.15.00.00
+unspsc7#50.12.15.06.00#Pompano#50.12.15.00.00
+unspsc7#50.12.15.07.00#Bass#50.12.15.00.00
+unspsc7#50.12.15.08.00#Shark#50.12.15.00.00
+unspsc7#50.12.15.09.00#Tilapia#50.12.15.00.00
+unspsc7#50.12.15.10.00#Swordfish#50.12.15.00.00
+unspsc7#50.12.15.11.00#Anchovies#50.12.15.00.00
+unspsc7#50.12.15.12.00#Carp#50.12.15.00.00
+unspsc7#50.12.15.13.00#Catfish#50.12.15.00.00
+unspsc7#50.12.15.14.00#Eel#50.12.15.00.00
+unspsc7#50.12.15.15.00#Sturgeon#50.12.15.00.00
+unspsc7#50.12.15.16.00#Tuna#50.12.15.00.00
+unspsc7#50.12.15.17.00#Cod#50.12.15.00.00
+unspsc7#50.12.15.18.00#Halibut#50.12.15.00.00
+unspsc7#50.12.15.19.00#Haddock#50.12.15.00.00
+unspsc7#50.12.15.20.00#Ocean perch#50.12.15.00.00
+unspsc7#50.12.15.21.00#Orange roughy#50.12.15.00.00
+unspsc7#50.12.15.22.00#Parrot fish#50.12.15.00.00
+unspsc7#50.12.15.23.00#Pike#50.12.15.00.00
+unspsc7#50.12.15.24.00#Red snapper#50.12.15.00.00
+unspsc7#50.12.15.25.00#Rockfish#50.12.15.00.00
+unspsc7#50.12.15.26.00#Smelt#50.12.15.00.00
+unspsc7#50.12.15.27.00#Sole#50.12.15.00.00
+unspsc7#50.12.15.28.00#Whiting#50.12.15.00.00
+unspsc7#50.12.15.29.00#Salmon#50.12.15.00.00
+unspsc7#50.12.15.30.00#Mackerel#50.12.15.00.00
+unspsc7#50.12.15.31.00#Sardines#50.12.15.00.00
+unspsc7#50.12.15.32.00#Trout#50.12.15.00.00
+unspsc7#50.12.15.33.00#Surimi#50.12.15.00.00
+unspsc7#50.12.15.34.00#Blackfish#50.12.15.00.00
+unspsc7#50.12.15.35.00#Herring#50.12.15.00.00
+unspsc7#50.12.15.36.00#Fresh fish#50.12.15.00.00
+unspsc7#50.12.15.37.00#Frozen fish#50.12.15.00.00
+unspsc7#50.12.15.38.00#Shelf stable fish#50.12.15.00.00
+unspsc7#50.12.15.39.00#Fresh fish#50.12.15.00.00
+unspsc7#50.12.16.00.00#Shellfish#50.12.00.00.00
+unspsc7#50.12.16.01.00#Abalone#50.12.16.00.00
+unspsc7#50.12.16.02.00#Scallops#50.12.16.00.00
+unspsc7#50.12.16.03.00#Clams#50.12.16.00.00
+unspsc7#50.12.16.04.00#Crabs#50.12.16.00.00
+unspsc7#50.12.16.05.00#Conch#50.12.16.00.00
+unspsc7#50.12.16.06.00#Crayfish#50.12.16.00.00
+unspsc7#50.12.16.07.00#Lobster#50.12.16.00.00
+unspsc7#50.12.16.08.00#Mussels#50.12.16.00.00
+unspsc7#50.12.16.09.00#Oysters#50.12.16.00.00
+unspsc7#50.12.16.10.00#Shrimp#50.12.16.00.00
+unspsc7#50.12.16.11.00#Fresh shellfish#50.12.16.00.00
+unspsc7#50.12.16.12.00#Frozen shellfish#50.12.16.00.00
+unspsc7#50.12.16.13.00#Shelf stable shellfish#50.12.16.00.00
+unspsc7#50.12.17.00.00#Aquatic invertebrates#50.12.00.00.00
+unspsc7#50.12.17.01.00#Squid#50.12.17.00.00
+unspsc7#50.12.17.02.00#Octopus#50.12.17.00.00
+unspsc7#50.12.17.03.00#Anemones#50.12.17.00.00
+unspsc7#50.12.17.04.00#Sea cucumbers#50.12.17.00.00
+unspsc7#50.12.17.05.00#Fresh aquatic invertebrates#50.12.17.00.00
+unspsc7#50.12.17.06.00#Frozen aquatic invertebrates#50.12.17.00.00
+unspsc7#50.12.17.07.00#Shelf stable aquatic invertebrates#50.12.17.00.00
+unspsc7#50.12.18.00.00#Aquatic plants#50.12.00.00.00
+unspsc7#50.12.18.01.00#Seaweeds#50.12.18.00.00
+unspsc7#50.12.18.02.00#Fresh aquatic plants#50.12.18.00.00
+unspsc7#50.12.18.03.00#Frozen aquatic plants#50.12.18.00.00
+unspsc7#50.12.18.04.00#Shelf stable aquatic plants#50.12.18.00.00
+unspsc7#50.13.00.00.00#Dairy products and eggs#50.00.00.00.00
+unspsc7#50.13.15.00.00#Dairy products and dairy substitutes#50.13.00.00.00
+unspsc7#50.13.15.01.00#Coffee creamer#50.13.15.00.00
+unspsc7#50.13.15.02.00#Butter#50.13.15.00.00
+unspsc7#50.13.15.03.00#Milk#50.13.15.00.00
+unspsc7#50.13.15.04.00#Soft cheeses#50.13.15.00.00
+unspsc7#50.13.15.05.00#Yogurts#50.13.15.00.00
+unspsc7#50.13.15.06.00#Ice creams#50.13.15.00.00
+unspsc7#50.13.15.07.00#Sour creams#50.13.15.00.00
+unspsc7#50.13.15.08.00#Hard cheeses#50.13.15.00.00
+unspsc7#50.13.15.09.00#Buttermilk#50.13.15.00.00
+unspsc7#50.13.15.10.00#Infant formula#50.13.15.00.00
+unspsc7#50.13.15.11.00#Custard#50.13.15.00.00
+unspsc7#50.13.15.12.00#Evaporated milk#50.13.15.00.00
+unspsc7#50.13.15.13.00#Sweetened condensed milk#50.13.15.00.00
+unspsc7#50.13.15.14.00#Powdered milk#50.13.15.00.00
+unspsc7#50.13.15.15.00#Cream#50.13.15.00.00
+unspsc7#50.13.15.16.00#Long life milk#50.13.15.00.00
+unspsc7#50.13.16.00.00#Eggs and egg substitutes#50.13.00.00.00
+unspsc7#50.13.16.01.00#Eggs#50.13.16.00.00
+unspsc7#50.13.16.02.00#Egg substitutes#50.13.16.00.00
+unspsc7#50.13.16.03.00#Meringue powders#50.13.16.00.00
+unspsc7#50.13.16.04.00#Egg whites#50.13.16.00.00
+unspsc7#50.13.16.05.00#Egg yolks#50.13.16.00.00
+unspsc7#50.13.16.06.00#Fresh eggs#50.13.16.00.00
+unspsc7#50.13.16.07.00#Egg substitutes#50.13.16.00.00
+unspsc7#50.13.16.08.00#Egg whites or yolks#50.13.16.00.00
+unspsc7#50.13.16.09.00#Prepared eggs#50.13.16.00.00
+unspsc7#50.13.17.00.00#Milk and butter products#50.13.00.00.00
+unspsc7#50.13.17.01.00#Fresh milk and butter products#50.13.17.00.00
+unspsc7#50.13.17.02.00#Shelf stable milk and butter products#50.13.17.00.00
+unspsc7#50.13.18.00.00#Cheese#50.13.00.00.00
+unspsc7#50.13.18.01.00#Natural cheese#50.13.18.00.00
+unspsc7#50.13.18.02.00#Processed cheese#50.13.18.00.00
+unspsc7#50.13.18.03.00#Imitation cheese#50.13.18.00.00
+unspsc7#50.14.00.00.00#Grains and cereals and their flours#50.00.00.00.00
+unspsc7#50.14.15.00.00#Grains and cereals#50.14.00.00.00
+unspsc7#50.14.15.01.00#Millet#50.14.15.00.00
+unspsc7#50.14.15.02.00#Hops#50.14.15.00.00
+unspsc7#50.14.15.03.00#Buckwheat#50.14.15.00.00
+unspsc7#50.14.15.04.00#Rye#50.14.15.00.00
+unspsc7#50.14.15.05.00#Corn cereals#50.14.15.00.00
+unspsc7#50.14.15.06.00#Sorghum#50.14.15.00.00
+unspsc7#50.14.15.07.00#Oats#50.14.15.00.00
+unspsc7#50.14.15.08.00#Rice#50.14.15.00.00
+unspsc7#50.14.15.09.00#Barley#50.14.15.00.00
+unspsc7#50.14.15.10.00#Wheat#50.14.15.00.00
+unspsc7#50.14.15.11.00#Pasta or noodle#50.14.15.00.00
+unspsc7#50.14.15.12.00#Bran#50.14.15.00.00
+unspsc7#50.14.15.13.00#short grain rice#50.14.15.00.00
+unspsc7#50.14.16.00.00#Flours#50.14.00.00.00
+unspsc7#50.14.16.01.00#Millet flour#50.14.16.00.00
+unspsc7#50.14.16.02.00#Oat flour#50.14.16.00.00
+unspsc7#50.14.16.03.00#Barley flour#50.14.16.00.00
+unspsc7#50.14.16.04.00#Rice flour#50.14.16.00.00
+unspsc7#50.14.16.05.00#Buckwheat flour#50.14.16.00.00
+unspsc7#50.14.16.06.00#Rye flour#50.14.16.00.00
+unspsc7#50.14.16.07.00#Corn flour#50.14.16.00.00
+unspsc7#50.14.16.08.00#Wheat flour#50.14.16.00.00
+unspsc7#50.14.16.09.00#Self rising flour#50.14.16.00.00
+unspsc7#50.14.16.10.00#Long Grain Rice#50.14.16.00.00
+unspsc7#50.15.00.00.00#Edible oils and fats#50.00.00.00.00
+unspsc7#50.15.15.00.00#Edible vegetable and plant oils and fats#50.15.00.00.00
+unspsc7#50.15.15.01.00#Soybean oil#50.15.15.00.00
+unspsc7#50.15.15.02.00#Corn oil#50.15.15.00.00
+unspsc7#50.15.15.03.00#Canola oil#50.15.15.00.00
+unspsc7#50.15.15.04.00#Sesame oil#50.15.15.00.00
+unspsc7#50.15.15.05.00#Peanut oil#50.15.15.00.00
+unspsc7#50.15.15.06.00#Olive oil#50.15.15.00.00
+unspsc7#50.15.15.07.00#Palm oil#50.15.15.00.00
+unspsc7#50.15.15.08.00#Safflower oil#50.15.15.00.00
+unspsc7#50.15.15.09.00#Castor oil#50.15.15.00.00
+unspsc7#50.15.15.10.00#Sunflower oil#50.15.15.00.00
+unspsc7#50.15.15.11.00#Cottonseed oil#50.15.15.00.00
+unspsc7#50.15.15.12.00#Colza oil#50.15.15.00.00
+unspsc7#50.15.15.13.00#Edible vegetable or plant oils#50.15.15.00.00
+unspsc7#50.15.15.14.00#Edible vegetable or plant fats#50.15.15.00.00
+unspsc7#50.15.16.00.00#Edible animal oils and fats#50.15.00.00.00
+unspsc7#50.15.16.01.00#Lard#50.15.16.00.00
+unspsc7#50.15.16.02.00#Tallow#50.15.16.00.00
+unspsc7#50.15.16.03.00#Cod liver oil#50.15.16.00.00
+unspsc7#50.15.16.04.00#Edible animal oils#50.15.16.00.00
+unspsc7#50.15.16.05.00#Edible animal fats#50.15.16.00.00
+unspsc7#50.15.17.00.00#Oils and fats and other#50.15.00.00.00
+unspsc7#50.15.17.01.00#Shortenings#50.15.17.00.00
+unspsc7#50.15.17.02.00#Margarine#50.15.17.00.00
+unspsc7#50.15.17.03.00#Linseed oil#50.15.17.00.00
+unspsc7#50.15.17.04.00#Cocoa butter#50.15.17.00.00
+unspsc7#50.15.17.05.00#Hop Oil#50.15.17.00.00
+unspsc7#50.15.17.06.00#Macadamia oil#50.15.17.00.00
+unspsc7#50.16.00.00.00#Chocolate and sugars and sweeteners and confectionary products#50.00.00.00.00
+unspsc7#50.16.15.00.00#Chocolate and sugars and sweetening products#50.16.00.00.00
+unspsc7#50.16.15.01.00#Brown sugar#50.16.15.00.00
+unspsc7#50.16.15.02.00#White sugars#50.16.15.00.00
+unspsc7#50.16.15.03.00#Sugar cane#50.16.15.00.00
+unspsc7#50.16.15.04.00#Fructose#50.16.15.00.00
+unspsc7#50.16.15.05.00#Palm sugar#50.16.15.00.00
+unspsc7#50.16.15.06.00#Glucose#50.16.15.00.00
+unspsc7#50.16.15.07.00#Beet sugar#50.16.15.00.00
+unspsc7#50.16.15.08.00#Raw sugar#50.16.15.00.00
+unspsc7#50.16.15.09.00#Natural sugars and sweetening products#50.16.15.00.00
+unspsc7#50.16.15.10.00#Artificial sweetening agents#50.16.15.00.00
+unspsc7#50.16.15.11.00#Chocolate and chocolate substitute#50.16.15.00.00
+unspsc7#50.16.15.12.00#Syrups#50.16.15.00.00
+unspsc7#50.16.16.00.00#Syrups and other sweeteners#50.16.00.00.00
+unspsc7#50.16.16.01.00#Molasses#50.16.16.00.00
+unspsc7#50.16.16.02.00#Honey#50.16.16.00.00
+unspsc7#50.16.16.03.00#Black treacle#50.16.16.00.00
+unspsc7#50.16.16.04.00#Corn syrup#50.16.16.00.00
+unspsc7#50.16.16.05.00#Aspertame#50.16.16.00.00
+unspsc7#50.16.16.06.00#Saccharrin#50.16.16.00.00
+unspsc7#50.16.16.07.00#Maple syrup#50.16.16.00.00
+unspsc7#50.16.17.00.00#Chocolate and carob and chocolate substitutes#50.16.00.00.00
+unspsc7#50.16.17.01.00#Chocolate#50.16.17.00.00
+unspsc7#50.16.17.02.00#Carob#50.16.17.00.00
+unspsc7#50.16.17.03.00#Cocoa#50.16.17.00.00
+unspsc7#50.16.18.00.00#Confectionary products#50.16.00.00.00
+unspsc7#50.16.18.04.00#Chewing gums#50.16.18.00.00
+unspsc7#50.16.18.05.00#Candy#50.16.18.00.00
+unspsc7#50.16.18.06.00#Licorice#50.16.18.00.00
+unspsc7#50.16.18.07.00#jellied confectionary#50.16.18.00.00
+unspsc7#50.16.18.08.00#Fudge#50.16.18.00.00
+unspsc7#50.16.18.09.00#Medicated confectionery or lozenges#50.16.18.00.00
+unspsc7#50.16.18.10.00#Sugar free confectionary#50.16.18.00.00
+unspsc7#50.16.18.11.00#Marshmallow#50.16.18.00.00
+unspsc7#50.16.18.12.00#Nougat#50.16.18.00.00
+unspsc7#50.16.18.13.00#Chocolate or chocolate substitute candy#50.16.18.00.00
+unspsc7#50.16.18.14.00#Sugar or sugar substitute candy#50.16.18.00.00
+unspsc7#50.16.18.15.00#Chewing gum#50.16.18.00.00
+unspsc7#50.17.00.00.00#Seasonings and preservatives#50.00.00.00.00
+unspsc7#50.17.15.00.00#Herbs and spices and extracts#50.17.00.00.00
+unspsc7#50.17.15.01.00#Salt#50.17.15.00.00
+unspsc7#50.17.15.03.00#Nutmeg#50.17.15.00.00
+unspsc7#50.17.15.04.00#Bay#50.17.15.00.00
+unspsc7#50.17.15.05.00#Anise#50.17.15.00.00
+unspsc7#50.17.15.06.00#Saffron#50.17.15.00.00
+unspsc7#50.17.15.07.00#Basil#50.17.15.00.00
+unspsc7#50.17.15.08.00#Ginger#50.17.15.00.00
+unspsc7#50.17.15.09.00#Lavender#50.17.15.00.00
+unspsc7#50.17.15.10.00#Mace#50.17.15.00.00
+unspsc7#50.17.15.11.00#Paprika#50.17.15.00.00
+unspsc7#50.17.15.12.00#Chicory#50.17.15.00.00
+unspsc7#50.17.15.13.00#Garlic#50.17.15.00.00
+unspsc7#50.17.15.14.00#Cumin#50.17.15.00.00
+unspsc7#50.17.15.15.00#Cloves#50.17.15.00.00
+unspsc7#50.17.15.16.00#Cinnamon#50.17.15.00.00
+unspsc7#50.17.15.17.00#Cilantro#50.17.15.00.00
+unspsc7#50.17.15.18.00#Allspice#50.17.15.00.00
+unspsc7#50.17.15.19.00#Marjoram#50.17.15.00.00
+unspsc7#50.17.15.20.00#Yarrow#50.17.15.00.00
+unspsc7#50.17.15.21.00#Thyme#50.17.15.00.00
+unspsc7#50.17.15.22.00#Tarragon#50.17.15.00.00
+unspsc7#50.17.15.23.00#Sesame#50.17.15.00.00
+unspsc7#50.17.15.24.00#Sage#50.17.15.00.00
+unspsc7#50.17.15.25.00#Rosemary#50.17.15.00.00
+unspsc7#50.17.15.26.00#Parsley#50.17.15.00.00
+unspsc7#50.17.15.27.00#Chamomile#50.17.15.00.00
+unspsc7#50.17.15.28.00#Mints#50.17.15.00.00
+unspsc7#50.17.15.29.00#Caraway#50.17.15.00.00
+unspsc7#50.17.15.30.00#Lemongrass#50.17.15.00.00
+unspsc7#50.17.15.31.00#Lemon balm#50.17.15.00.00
+unspsc7#50.17.15.32.00#Dill#50.17.15.00.00
+unspsc7#50.17.15.33.00#Fennel#50.17.15.00.00
+unspsc7#50.17.15.34.00#Curry#50.17.15.00.00
+unspsc7#50.17.15.35.00#Comfrey#50.17.15.00.00
+unspsc7#50.17.15.36.00#Chives#50.17.15.00.00
+unspsc7#50.17.15.37.00#Chervil#50.17.15.00.00
+unspsc7#50.17.15.38.00#Oregano#50.17.15.00.00
+unspsc7#50.17.15.39.00#Peppercorns#50.17.15.00.00
+unspsc7#50.17.15.40.00#Cardamom#50.17.15.00.00
+unspsc7#50.17.15.41.00#Coriander#50.17.15.00.00
+unspsc7#50.17.15.42.00#Flavoring extracts#50.17.15.00.00
+unspsc7#50.17.15.43.00#Chili powder#50.17.15.00.00
+unspsc7#50.17.15.44.00#Poppy seeds#50.17.15.00.00
+unspsc7#50.17.15.45.00#Mixed herbs#50.17.15.00.00
+unspsc7#50.17.15.46.00#Vanilla#50.17.15.00.00
+unspsc7#50.17.15.47.00#Seasoning mix#50.17.15.00.00
+unspsc7#50.17.15.48.00#Fresh herbs#50.17.15.00.00
+unspsc7#50.17.15.49.00#Dried herbs#50.17.15.00.00
+unspsc7#50.17.15.50.00#Spices or extracts#50.17.15.00.00
+unspsc7#50.17.16.00.00#Preservatives and additives#50.17.00.00.00
+unspsc7#50.17.16.01.00#Pectin#50.17.16.00.00
+unspsc7#50.17.16.02.00#Food colorings#50.17.16.00.00
+unspsc7#50.17.16.03.00#Monosodium glutamate (MSG)#50.17.16.00.00
+unspsc7#50.17.17.00.00#Vinegars and cooking wines#50.17.00.00.00
+unspsc7#50.17.17.01.00#Cider vineagar#50.17.17.00.00
+unspsc7#50.17.17.02.00#Balsamic vinegar#50.17.17.00.00
+unspsc7#50.17.17.03.00#Distilled vinegar#50.17.17.00.00
+unspsc7#50.17.17.04.00#Rice vinegar#50.17.17.00.00
+unspsc7#50.17.17.05.00#Wine vinegar#50.17.17.00.00
+unspsc7#50.17.17.06.00#Infused vinegar#50.17.17.00.00
+unspsc7#50.17.17.07.00#Vinegars#50.17.17.00.00
+unspsc7#50.17.17.08.00#Cooking wines#50.17.17.00.00
+unspsc7#50.17.18.00.00#Sauces and spreads and condiments#50.17.00.00.00
+unspsc7#50.17.18.01.00#Mustards#50.17.18.00.00
+unspsc7#50.17.18.02.00#Catsup or ketchup or tomato sauce#50.17.18.00.00
+unspsc7#50.17.18.03.00#Barbecue sauces#50.17.18.00.00
+unspsc7#50.17.18.04.00#Marinades#50.17.18.00.00
+unspsc7#50.17.18.05.00#Hot sauces#50.17.18.00.00
+unspsc7#50.17.18.06.00#Mayonnaise#50.17.18.00.00
+unspsc7#50.17.18.07.00#Soy sauce#50.17.18.00.00
+unspsc7#50.17.18.08.00#Salad dressings#50.17.18.00.00
+unspsc7#50.17.18.09.00#Worchestershire sauce#50.17.18.00.00
+unspsc7#50.17.18.10.00#Salsa#50.17.18.00.00
+unspsc7#50.17.18.11.00#Relishes or chutneys#50.17.18.00.00
+unspsc7#50.17.18.12.00#Conserve or jam#50.17.18.00.00
+unspsc7#50.17.18.13.00#Dip or chilled dipping sauce#50.17.18.00.00
+unspsc7#50.17.18.14.00#Sweet and sour sauce#50.17.18.00.00
+unspsc7#50.17.18.15.00#Tartare sauce#50.17.18.00.00
+unspsc7#50.17.18.16.00#Mint sauce#50.17.18.00.00
+unspsc7#50.17.18.17.00#Gravy sauce or powder#50.17.18.00.00
+unspsc7#50.17.18.18.00#Noodle or pasta sauce#50.17.18.00.00
+unspsc7#50.17.18.19.00#Food spreads or pastes#50.17.18.00.00
+unspsc7#50.17.18.20.00#Tomato paste#50.17.18.00.00
+unspsc7#50.17.18.21.00#Black bean sauce#50.17.18.00.00
+unspsc7#50.17.18.22.00#Satay sauce#50.17.18.00.00
+unspsc7#50.17.18.23.00#Teriyaki sauce#50.17.18.00.00
+unspsc7#50.17.18.24.00#Seafood sauce#50.17.18.00.00
+unspsc7#50.17.18.25.00#Pesto#50.17.18.00.00
+unspsc7#50.17.18.26.00#Steak sauce#50.17.18.00.00
+unspsc7#50.17.18.27.00#Oyster sauce#50.17.18.00.00
+unspsc7#50.17.18.28.00#Plum sauce#50.17.18.00.00
+unspsc7#50.17.18.29.00#White sauce#50.17.18.00.00
+unspsc7#50.17.18.30.00#Dipping sauces or condiments or spreads or marinades#50.17.18.00.00
+unspsc7#50.17.18.31.00#Cooking sauce#50.17.18.00.00
+unspsc7#50.17.18.32.00#Salad dressing or dips#50.17.18.00.00
+unspsc7#50.17.18.33.00#Savory spread or pate#50.17.18.00.00
+unspsc7#50.17.19.00.00#Pickles and relish and olives#50.17.00.00.00
+unspsc7#50.17.19.01.00#Pickles#50.17.19.00.00
+unspsc7#50.17.19.02.00#Relish#50.17.19.00.00
+unspsc7#50.17.19.03.00#Olives#50.17.19.00.00
+unspsc7#50.17.19.04.00#Chutneys#50.17.19.00.00
+unspsc7#50.18.00.00.00#Bread and bakery products#50.00.00.00.00
+unspsc7#50.18.15.00.00#Leavening agents#50.18.00.00.00
+unspsc7#50.18.15.01.00#Yeast#50.18.15.00.00
+unspsc7#50.18.15.02.00#Baking powder#50.18.15.00.00
+unspsc7#50.18.15.03.00#Baking soda#50.18.15.00.00
+unspsc7#50.18.15.04.00#Bakers ammonia#50.18.15.00.00
+unspsc7#50.18.16.00.00#Thickeners#50.18.00.00.00
+unspsc7#50.18.16.01.00#Gelatins#50.18.16.00.00
+unspsc7#50.18.16.02.00#Food grade starches#50.18.16.00.00
+unspsc7#50.18.16.03.00#Tapioca#50.18.16.00.00
+unspsc7#50.18.16.04.00#Arrowroot#50.18.16.00.00
+unspsc7#50.18.16.05.00#Food grade agar#50.18.16.00.00
+unspsc7#50.18.17.00.00#Baking mixes and supplies#50.18.00.00.00
+unspsc7#50.18.17.01.00#Food glazes#50.18.17.00.00
+unspsc7#50.18.17.02.00#Icings#50.18.17.00.00
+unspsc7#50.18.17.03.00#Cake decorations#50.18.17.00.00
+unspsc7#50.18.17.04.00#Cake or pudding mixtures#50.18.17.00.00
+unspsc7#50.18.17.05.00#Pie fillings#50.18.17.00.00
+unspsc7#50.18.17.06.00#Baking mixes#50.18.17.00.00
+unspsc7#50.18.17.07.00#Coating mix or breadcrumbs#50.18.17.00.00
+unspsc7#50.18.17.08.00#Baking mixes#50.18.17.00.00
+unspsc7#50.18.17.09.00#Baking supplies#50.18.17.00.00
+unspsc7#50.18.18.00.00#Baked goods#50.18.00.00.00
+unspsc7#50.18.18.01.00#Pastry shells#50.18.18.00.00
+unspsc7#50.18.18.02.00#Crackers or dry or savoury biscuits#50.18.18.00.00
+unspsc7#50.18.18.03.00#Bread#50.18.18.00.00
+unspsc7#50.18.18.04.00#Pastries#50.18.18.00.00
+unspsc7#50.18.18.05.00#Cakes#50.18.18.00.00
+unspsc7#50.18.18.06.00#Cookie or sweet biscuit#50.18.18.00.00
+unspsc7#50.18.18.07.00#Biscuits#50.18.18.00.00
+unspsc7#50.18.18.08.00#Unleavened bread#50.18.18.00.00
+unspsc7#50.18.18.09.00#Muffins#50.18.18.00.00
+unspsc7#50.18.18.10.00#Donuts#50.18.18.00.00
+unspsc7#50.18.18.11.00#Pizza or pizza bases#50.18.18.00.00
+unspsc7#50.18.18.12.00#Cornets or cones or waffles#50.18.18.00.00
+unspsc7#50.18.19.00.00#Bread and biscuits and cookies#50.18.00.00.00
+unspsc7#50.18.19.01.00#Fresh bread#50.18.19.00.00
+unspsc7#50.18.19.02.00#Frozen bread#50.18.19.00.00
+unspsc7#50.18.19.03.00#Plain savory biscuits#50.18.19.00.00
+unspsc7#50.18.19.04.00#Dried breads or bread shells or croutons#50.18.19.00.00
+unspsc7#50.18.19.05.00#Sweet biscuits or cookies#50.18.19.00.00
+unspsc7#50.18.20.00.00#Cakes and pies and pastries#50.18.00.00.00
+unspsc7#50.18.20.01.00#Fresh cakes or pies or pastries#50.18.20.00.00
+unspsc7#50.18.20.02.00#Frozen cakes or pies or pastries#50.18.20.00.00
+unspsc7#50.19.00.00.00#Prepared and preserved foods#50.00.00.00.00
+unspsc7#50.19.15.00.00#Prepared soups and stews#50.19.00.00.00
+unspsc7#50.19.15.01.00#Stews#50.19.15.00.00
+unspsc7#50.19.15.02.00#Soups#50.19.15.00.00
+unspsc7#50.19.15.03.00#Stock or stock cubes#50.19.15.00.00
+unspsc7#50.19.15.04.00#Stew or casserole base#50.19.15.00.00
+unspsc7#50.19.15.05.00#Fresh prepared soups or stews#50.19.15.00.00
+unspsc7#50.19.15.06.00#Frozen prepared soups or stews#50.19.15.00.00
+unspsc7#50.19.15.07.00#Shelf stable prepared soups or stews#50.19.15.00.00
+unspsc7#50.19.16.00.00#Frozen foods#50.19.00.00.00
+unspsc7#50.19.16.01.00#Frozen desserts#50.19.16.00.00
+unspsc7#50.19.16.02.00#Frozen meats#50.19.16.00.00
+unspsc7#50.19.16.03.00#Frozen fruits#50.19.16.00.00
+unspsc7#50.19.16.04.00#Frozen vegetables#50.19.16.00.00
+unspsc7#50.19.16.05.00#Frozen prepared meals#50.19.16.00.00
+unspsc7#50.19.16.06.00#Frozen fish#50.19.16.00.00
+unspsc7#50.19.16.07.00#Frozen crustaceans#50.19.16.00.00
+unspsc7#50.19.16.08.00#Frozen mollusks#50.19.16.00.00
+unspsc7#50.19.16.09.00#Frozen prepared pastry unbaked#50.19.16.00.00
+unspsc7#50.19.16.10.00#Frozen savouries#50.19.16.00.00
+unspsc7#50.19.17.00.00#Canned foods and bottled etc#50.19.00.00.00
+unspsc7#50.19.17.01.00#Canned fruits#50.19.17.00.00
+unspsc7#50.19.17.02.00#Canned vegetables#50.19.17.00.00
+unspsc7#50.19.17.03.00#Canned fish#50.19.17.00.00
+unspsc7#50.19.17.04.00#Canned meat#50.19.17.00.00
+unspsc7#50.19.17.05.00#Canned Infant foods#50.19.17.00.00
+unspsc7#50.19.17.06.00#Fruit jams#50.19.17.00.00
+unspsc7#50.19.17.07.00#Marmalade#50.19.17.00.00
+unspsc7#50.19.17.08.00#Canned prepared meals#50.19.17.00.00
+unspsc7#50.19.17.09.00#Canned desserts#50.19.17.00.00
+unspsc7#50.19.18.00.00#Dried foods#50.19.00.00.00
+unspsc7#50.19.18.01.00#Dried fish#50.19.18.00.00
+unspsc7#50.19.18.02.00#Dried meat#50.19.18.00.00
+unspsc7#50.19.18.03.00#Dried vegetables#50.19.18.00.00
+unspsc7#50.19.18.04.00#Dried fruits#50.19.18.00.00
+unspsc7#50.19.19.00.00#Salted and smoked foods#50.19.00.00.00
+unspsc7#50.19.19.01.00#Salted or smoked fish#50.19.19.00.00
+unspsc7#50.19.19.02.00#Salted or smoked meats#50.19.19.00.00
+unspsc7#50.19.19.03.00#Salted or smoked shellfish or crustaceans or roe#50.19.19.00.00
+unspsc7#50.19.19.04.00#Salted or smoked fruits#50.19.19.00.00
+unspsc7#50.19.19.05.00#Salted or smoked nuts#50.19.19.00.00
+unspsc7#50.19.20.00.00#Pickled foods#50.19.00.00.00
+unspsc7#50.19.20.01.00#Pickled fish#50.19.20.00.00
+unspsc7#50.19.20.02.00#Pickled crustaceans#50.19.20.00.00
+unspsc7#50.19.20.03.00#Pickled meats#50.19.20.00.00
+unspsc7#50.19.20.04.00#Pickled vegetables#50.19.20.00.00
+unspsc7#50.19.20.05.00#Pickled eggs#50.19.20.00.00
+unspsc7#50.19.21.00.00#Snack foods#50.19.00.00.00
+unspsc7#50.19.21.01.00#Pretzels#50.19.21.00.00
+unspsc7#50.19.21.02.00#Corn chips#50.19.21.00.00
+unspsc7#50.19.21.03.00#Potato chips#50.19.21.00.00
+unspsc7#50.19.21.04.00#Popcorn#50.19.21.00.00
+unspsc7#50.19.21.05.00#Fish fingers#50.19.21.00.00
+unspsc7#50.19.21.06.00#Fruit snacks#50.19.21.00.00
+unspsc7#50.19.21.07.00#Other flavoured snack foods#50.19.21.00.00
+unspsc7#50.19.21.08.00#Fruit or nut mix#50.19.21.00.00
+unspsc7#50.19.21.09.00#Crisps or chips or pretzels or mixes#50.19.21.00.00
+unspsc7#50.19.21.10.00#Nuts or dried fruits#50.19.21.00.00
+unspsc7#50.19.21.11.00#Dried or processed meats#50.19.21.00.00
+unspsc7#50.19.21.12.00#Popped corn#50.19.21.00.00
+unspsc7#50.19.22.00.00#Spreads and conserves#50.19.00.00.00
+unspsc7#50.19.22.01.00#Peanut butter#50.19.22.00.00
+unspsc7#50.19.22.02.00#Yeast or vegetable extract spreads#50.19.22.00.00
+unspsc7#50.19.22.03.00#Jams or jellies or quinces#50.19.22.00.00
+unspsc7#50.19.23.00.00#Deserts and desert toppings#50.19.00.00.00
+unspsc7#50.19.23.01.00#Prepared deserts#50.19.23.00.00
+unspsc7#50.19.23.02.00#Desert toppings#50.19.23.00.00
+unspsc7#50.19.23.03.00#Flavored ices or ice cream or ice cream deserts or frozen yogurts#50.19.23.00.00
+unspsc7#50.19.24.00.00#Jams and jellies and nut and sweet spreads and fruit conserves#50.19.00.00.00
+unspsc7#50.19.24.01.00#Jams or jellies or fruit preserves#50.19.24.00.00
+unspsc7#50.19.24.02.00#Nut or mixed spreads#50.19.24.00.00
+unspsc7#50.19.24.03.00#Honey#50.19.24.00.00
+unspsc7#50.19.25.00.00#Sandwiches and filled rolls#50.19.00.00.00
+unspsc7#50.19.25.01.00#Fresh sandwiches or filled rolls#50.19.25.00.00
+unspsc7#50.19.25.02.00#Frozen sandwiches or filled rolls#50.19.25.00.00
+unspsc7#50.19.26.00.00#Prepared potatoes and rice and pasta and stuffing#50.19.00.00.00
+unspsc7#50.19.26.01.00#Fresh prepared potatoes or rice or pasta or stuffing#50.19.26.00.00
+unspsc7#50.19.26.02.00#Frozen prepared potatoes or rice or pasta or stuffing#50.19.26.00.00
+unspsc7#50.19.26.03.00#Shelf stable prepared potatoes or rice or pasta or stuffing#50.19.26.00.00
+unspsc7#50.19.27.00.00#Packaged combination meals#50.19.00.00.00
+unspsc7#50.19.27.01.00#Fresh combination meals#50.19.27.00.00
+unspsc7#50.19.27.02.00#Frozen combination meals#50.19.27.00.00
+unspsc7#50.19.27.03.00#Shelf stable combination meals#50.19.27.00.00
+unspsc7#50.19.28.00.00#Savory pies and quiches and pasties#50.19.00.00.00
+unspsc7#50.19.28.01.00#Fresh savory pies or quiches or pasties#50.19.28.00.00
+unspsc7#50.19.28.02.00#Frozen savory pies or quiches or pasties#50.19.28.00.00
+unspsc7#50.19.28.03.00#Shelf stable savory pies or quiches or pasties#50.19.28.00.00
+unspsc7#50.19.29.00.00#Plain pasta and noodles#50.19.00.00.00
+unspsc7#50.19.29.01.00#Fresh plain pasta or noodles#50.19.29.00.00
+unspsc7#50.19.29.02.00#Shelf stable plain pasta or noodles#50.19.29.00.00
+unspsc7#50.19.30.00.00#Infant foods and beverages#50.19.00.00.00
+unspsc7#50.19.30.01.00#Infant foods#50.19.30.00.00
+unspsc7#50.19.30.02.00#Infant beverages#50.19.30.00.00
+unspsc7#50.20.00.00.00#Beverages#50.00.00.00.00
+unspsc7#50.20.15.00.00#Water#50.20.00.00.00
+unspsc7#50.20.15.01.00#Sparkling water#50.20.15.00.00
+unspsc7#50.20.15.02.00#Spring water#50.20.15.00.00
+unspsc7#50.20.15.03.00#Mineral water#50.20.15.00.00
+unspsc7#50.20.15.04.00#Distilled or purified water#50.20.15.00.00
+unspsc7#50.20.16.00.00#Juices#50.20.00.00.00
+unspsc7#50.20.16.01.00#Blended juices#50.20.16.00.00
+unspsc7#50.20.16.02.00#Guava juice#50.20.16.00.00
+unspsc7#50.20.16.03.00#Prune juice#50.20.16.00.00
+unspsc7#50.20.16.04.00#Tomato juice#50.20.16.00.00
+unspsc7#50.20.16.05.00#Cranberry juice#50.20.16.00.00
+unspsc7#50.20.16.06.00#Grapefruit juice#50.20.16.00.00
+unspsc7#50.20.16.07.00#Grape juice#50.20.16.00.00
+unspsc7#50.20.16.08.00#Pineapple juice#50.20.16.00.00
+unspsc7#50.20.16.09.00#Orange juice#50.20.16.00.00
+unspsc7#50.20.16.10.00#Apple juice#50.20.16.00.00
+unspsc7#50.20.16.11.00#Lemon juices or lemonade#50.20.16.00.00
+unspsc7#50.20.16.12.00#Infant juice#50.20.16.00.00
+unspsc7#50.20.17.00.00#Coffee and tea#50.20.00.00.00
+unspsc7#50.20.17.01.00#Instant coffee#50.20.17.00.00
+unspsc7#50.20.17.02.00#Ground coffee#50.20.17.00.00
+unspsc7#50.20.17.03.00#Whole bean coffee#50.20.17.00.00
+unspsc7#50.20.17.04.00#Green coffee#50.20.17.00.00
+unspsc7#50.20.17.05.00#Coffee substitutes#50.20.17.00.00
+unspsc7#50.20.17.06.00#Coffee#50.20.17.00.00
+unspsc7#50.20.17.07.00#Coffee substitutes#50.20.17.00.00
+unspsc7#50.20.17.08.00#Coffee drinks#50.20.17.00.00
+unspsc7#50.20.17.09.00#Instant coffee#50.20.17.00.00
+unspsc7#50.20.17.10.00#Leaf tea#50.20.17.00.00
+unspsc7#50.20.17.11.00#Instant tea#50.20.17.00.00
+unspsc7#50.20.17.12.00#Tea drinks#50.20.17.00.00
+unspsc7#50.20.17.13.00#Tea bags#50.20.17.00.00
+unspsc7#50.20.18.00.00#Tea#50.20.00.00.00
+unspsc7#50.20.18.01.00#Green tea#50.20.18.00.00
+unspsc7#50.20.18.02.00#Black tea#50.20.18.00.00
+unspsc7#50.20.18.03.00#Herbal tea#50.20.18.00.00
+unspsc7#50.20.18.04.00#Powdered tea#50.20.18.00.00
+unspsc7#50.20.18.05.00#Tea bags#50.20.18.00.00
+unspsc7#50.20.19.00.00#Soft drinks#50.20.00.00.00
+unspsc7#50.20.19.01.00#Non carbonated soft drinks#50.20.19.00.00
+unspsc7#50.20.19.02.00#Carbonated soft drinks#50.20.19.00.00
+unspsc7#50.20.19.03.00#Cordials or colourings#50.20.19.00.00
+unspsc7#50.20.19.04.00#Sports or high energy drinks#50.20.19.00.00
+unspsc7#50.20.19.05.00#Soy beverage#50.20.19.00.00
+unspsc7#50.20.20.00.00#Beer and wine#50.20.00.00.00
+unspsc7#50.20.20.01.00#Champagne#50.20.20.00.00
+unspsc7#50.20.20.02.00#Beer#50.20.20.00.00
+unspsc7#50.20.20.03.00#Wine#50.20.20.00.00
+unspsc7#50.20.20.04.00#Sparkling wines#50.20.20.00.00
+unspsc7#50.20.20.05.00#Fortified wine#50.20.20.00.00
+unspsc7#50.20.20.06.00#Port#50.20.20.00.00
+unspsc7#50.20.20.07.00#Sherry#50.20.20.00.00
+unspsc7#50.20.20.08.00#Wine cooler beverage#50.20.20.00.00
+unspsc7#50.20.21.00.00#Spirits and liquors#50.20.00.00.00
+unspsc7#50.20.21.01.00#Brandy#50.20.21.00.00
+unspsc7#50.20.21.02.00#Cognac or armagnac#50.20.21.00.00
+unspsc7#50.20.21.03.00#Whiskey#50.20.21.00.00
+unspsc7#50.20.21.04.00#Vodka#50.20.21.00.00
+unspsc7#50.20.21.05.00#Tequila#50.20.21.00.00
+unspsc7#50.20.21.06.00#Gin#50.20.21.00.00
+unspsc7#50.20.21.07.00#Liqueurs#50.20.21.00.00
+unspsc7#50.20.21.08.00#Rum#50.20.21.00.00
+unspsc7#50.20.21.09.00#Bourbon#50.20.21.00.00
+unspsc7#50.20.21.10.00#Scotch#50.20.21.00.00
+unspsc7#50.20.21.11.00#Cider#50.20.21.00.00
+unspsc7#50.20.21.12.00#Schnapps#50.20.21.00.00
+unspsc7#50.20.21.13.00#Ouzo#50.20.21.00.00
+unspsc7#50.20.21.14.00#Aperitifs or bitters#50.20.21.00.00
+unspsc7#50.20.21.15.00#Vermouth#50.20.21.00.00
+unspsc7#50.20.21.16.00#Sambuca#50.20.21.00.00
+unspsc7#50.20.21.17.00#Sake#50.20.21.00.00
+unspsc7#50.20.21.18.00#Muscat or madeira#50.20.21.00.00
+unspsc7#50.20.22.00.00#Alcoholic beverages#50.20.00.00.00
+unspsc7#50.20.22.01.00#Beer#50.20.22.00.00
+unspsc7#50.20.22.02.00#Cider or perry#50.20.22.00.00
+unspsc7#50.20.22.03.00#Wine#50.20.22.00.00
+unspsc7#50.20.22.04.00#Fortified wine#50.20.22.00.00
+unspsc7#50.20.22.05.00#Sparkling wine#50.20.22.00.00
+unspsc7#50.20.22.06.00#Spirits or liquors#50.20.22.00.00
+unspsc7#50.20.22.07.00#Alcohol cocktails or drink mixes#50.20.22.00.00
+unspsc7#50.20.23.00.00#Non alcoholic beverages#50.20.00.00.00
+unspsc7#50.20.23.01.00#Water#50.20.23.00.00
+unspsc7#50.20.23.02.00#Ice#50.20.23.00.00
+unspsc7#50.20.23.03.00#Frozen juices#50.20.23.00.00
+unspsc7#50.20.23.04.00#Shelf stable juice#50.20.23.00.00
+unspsc7#50.20.23.05.00#Fresh juice#50.20.23.00.00
+unspsc7#50.20.23.06.00#Soft drinks#50.20.23.00.00
+unspsc7#50.20.23.07.00#Chocolate or malt or other hot beverages#50.20.23.00.00
+unspsc7#50.20.23.08.00#Alcohol free cocktails or drink mixes#50.20.23.00.00
+unspsc7#50.20.23.09.00#Sport drink mixes#50.20.23.00.00
+unspsc7#50.20.23.10.00#Spring water#50.20.23.00.00
+unspsc7#50.21.00.00.00#Tobacco and smoking products and substitutes#50.00.00.00.00
+unspsc7#50.21.15.00.00#Tobacco and substitutes#50.21.00.00.00
+unspsc7#50.21.15.01.00#Tobacco leaf#50.21.15.00.00
+unspsc7#50.21.15.02.00#Cigarettes or cigars#50.21.15.00.00
+unspsc7#50.21.15.03.00#Pipe tobacco or leaf tobacco#50.21.15.00.00
+unspsc7#50.21.15.04.00#Chewing tobacco#50.21.15.00.00
+unspsc7#50.21.15.05.00#Herbal cigarettes#50.21.15.00.00
+unspsc7#50.21.16.00.00#Tobacco product accessories and supplies#50.21.00.00.00
+unspsc7#50.21.16.01.00#Pipe tobacco#50.21.16.00.00
+unspsc7#50.21.16.02.00#Cigars#50.21.16.00.00
+unspsc7#50.21.16.03.00#Cigarettes#50.21.16.00.00
+unspsc7#50.21.16.04.00#Smokeless tobacco#50.21.16.00.00
+unspsc7#50.21.16.05.00#Ready rubbed tobacco#50.21.16.00.00
+unspsc7#50.21.16.06.00#Cigarette papers#50.21.16.00.00
+unspsc7#50.21.16.07.00#Cigarette papers or filters#50.21.16.00.00
+unspsc7#50.21.16.08.00#Cigarette lighters or flints#50.21.16.00.00
+unspsc7#50.21.16.09.00#Smoking pipes#50.21.16.00.00
+unspsc7#50.22.00.00.00#Cereal and pulse products#50.00.00.00.00
+unspsc7#50.22.10.00.00#Pulses#50.22.00.00.00
+unspsc7#50.22.10.01.00#Pulse grains#50.22.10.00.00
+unspsc7#50.22.10.02.00#Pulse flour#50.22.10.00.00
+unspsc7#50.22.11.00.00#Cereals#50.22.00.00.00
+unspsc7#50.22.11.01.00#Cereal grains#50.22.11.00.00
+unspsc7#50.22.11.02.00#Cereal flour#50.22.11.00.00
+unspsc7#50.22.12.00.00#Processed cereals#50.22.00.00.00
+unspsc7#50.22.12.01.00#Ready to eat or hot cereals#50.22.12.00.00
+unspsc7#50.22.12.02.00#Health or breakfast bars#50.22.12.00.00
+unspsc7#51.00.00.00.00#Drugs and Pharmaceutical Products#51.00.00.00.00
+unspsc7#51.10.00.00.00#Anti infective drugs#51.00.00.00.00
+unspsc7#51.10.15.00.00#Antibiotics#51.10.00.00.00
+unspsc7#51.10.15.01.00#Aminoglycosides#51.10.15.00.00
+unspsc7#51.10.15.02.00#Cephalosporins#51.10.15.00.00
+unspsc7#51.10.15.03.00#Chloramphenicol#51.10.15.00.00
+unspsc7#51.10.15.04.00#Clindamycin or lincomycin#51.10.15.00.00
+unspsc7#51.10.15.05.00#Fluoroquinolones#51.10.15.00.00
+unspsc7#51.10.15.06.00#Macrolide#51.10.15.00.00
+unspsc7#51.10.15.07.00#Penicillins#51.10.15.00.00
+unspsc7#51.10.15.08.00#Antibiotic sulfonamides#51.10.15.00.00
+unspsc7#51.10.15.09.00#Tetracyclines#51.10.15.00.00
+unspsc7#51.10.16.00.00#Amebicides and Trichomonacides and Antiprotozoals#51.10.00.00.00
+unspsc7#51.10.16.01.00#Atovaquone#51.10.16.00.00
+unspsc7#51.10.16.02.00#Eflornithine hydrochloride#51.10.16.00.00
+unspsc7#51.10.16.03.00#Metronidazole#51.10.16.00.00
+unspsc7#51.10.17.00.00#Anthelmintics#51.10.00.00.00
+unspsc7#51.10.17.01.00#Albendadole#51.10.17.00.00
+unspsc7#51.10.17.02.00#Mebendazole#51.10.17.00.00
+unspsc7#51.10.17.03.00#Oxamniquine#51.10.17.00.00
+unspsc7#51.10.17.04.00#Piperazine citrate#51.10.17.00.00
+unspsc7#51.10.17.05.00#Praziquantel#51.10.17.00.00
+unspsc7#51.10.17.06.00#Pyrantel pamoate#51.10.17.00.00
+unspsc7#51.10.17.07.00#Thiabendazole#51.10.17.00.00
+unspsc7#51.10.18.00.00#Antifungal drugs#51.10.00.00.00
+unspsc7#51.10.18.01.00#Amphotericin b#51.10.18.00.00
+unspsc7#51.10.18.02.00#Butenafine hydrochloride#51.10.18.00.00
+unspsc7#51.10.18.03.00#Butoconazole nitrate#51.10.18.00.00
+unspsc7#51.10.18.04.00#Ciclopirox olamine#51.10.18.00.00
+unspsc7#51.10.18.05.00#Clotrimazole#51.10.18.00.00
+unspsc7#51.10.18.06.00#Econazole nitrate#51.10.18.00.00
+unspsc7#51.10.18.07.00#Fluconazole#51.10.18.00.00
+unspsc7#51.10.18.08.00#Flucytosine#51.10.18.00.00
+unspsc7#51.10.18.09.00#Griseofulvin#51.10.18.00.00
+unspsc7#51.10.18.10.00#Itraconazole#51.10.18.00.00
+unspsc7#51.10.18.11.00#Ketoconazole#51.10.18.00.00
+unspsc7#51.10.18.12.00#Miconazole#51.10.18.00.00
+unspsc7#51.10.18.13.00#Naftifine hydrochloride#51.10.18.00.00
+unspsc7#51.10.18.14.00#Natamycin#51.10.18.00.00
+unspsc7#51.10.18.15.00#Nystatin#51.10.18.00.00
+unspsc7#51.10.18.16.00#Oxiconazole nitrate#51.10.18.00.00
+unspsc7#51.10.18.17.00#Sulconazole nitrate#51.10.18.00.00
+unspsc7#51.10.18.18.00#Terbinafine hydrochloride#51.10.18.00.00
+unspsc7#51.10.18.19.00#Terconazole nitrate#51.10.18.00.00
+unspsc7#51.10.18.20.00#Tioconazole#51.10.18.00.00
+unspsc7#51.10.18.21.00#Tolnaftate#51.10.18.00.00
+unspsc7#51.10.19.00.00#Antimalarial drugs#51.10.00.00.00
+unspsc7#51.10.19.01.00#Aminoquinolines#51.10.19.00.00
+unspsc7#51.10.19.02.00#Mefloquine hydrochloride#51.10.19.00.00
+unspsc7#51.10.19.03.00#Primaquine phosphate#51.10.19.00.00
+unspsc7#51.10.19.04.00#Quinine sulfate#51.10.19.00.00
+unspsc7#51.10.19.05.00#Chloroquine#51.10.19.00.00
+unspsc7#51.10.19.06.00#Proguanil#51.10.19.00.00
+unspsc7#51.10.19.07.00#Pyrimethamine#51.10.19.00.00
+unspsc7#51.10.20.00.00#Antitubercular drugs#51.10.00.00.00
+unspsc7#51.10.20.01.00#Cycloserine#51.10.20.00.00
+unspsc7#51.10.20.02.00#Ethambutol hydrochloride#51.10.20.00.00
+unspsc7#51.10.20.03.00#Isoniazid#51.10.20.00.00
+unspsc7#51.10.20.04.00#Rifubutin#51.10.20.00.00
+unspsc7#51.10.20.05.00#Rifampin#51.10.20.00.00
+unspsc7#51.10.21.00.00#Leprostatics#51.10.00.00.00
+unspsc7#51.10.21.01.00#Clofazimine#51.10.21.00.00
+unspsc7#51.10.21.02.00#Dapsone#51.10.21.00.00
+unspsc7#51.10.22.00.00#Urinary anti infectives and analgesics#51.10.00.00.00
+unspsc7#51.10.22.01.00#Cinoxacin#51.10.22.00.00
+unspsc7#51.10.22.02.00#Flavoxate hydrochloride#51.10.22.00.00
+unspsc7#51.10.22.03.00#Methenamine hippurate#51.10.22.00.00
+unspsc7#51.10.22.04.00#Methenamine mandelate#51.10.22.00.00
+unspsc7#51.10.22.05.00#Nalidixic acid#51.10.22.00.00
+unspsc7#51.10.22.06.00#Nitrofurantoin#51.10.22.00.00
+unspsc7#51.10.22.07.00#Oxybutynin chloride#51.10.22.00.00
+unspsc7#51.10.22.08.00#Pentosan polysulfate sodium#51.10.22.00.00
+unspsc7#51.10.22.09.00#Phenazopyridine hydrochloride#51.10.22.00.00
+unspsc7#51.10.22.10.00#Antiseptic solutions#51.10.22.00.00
+unspsc7#51.10.23.00.00#Antiviral drugs#51.10.00.00.00
+unspsc7#51.10.23.01.00#Acyclovir#51.10.23.00.00
+unspsc7#51.10.23.02.00#Amantadine hydrochloride#51.10.23.00.00
+unspsc7#51.10.23.03.00#Cydofovir#51.10.23.00.00
+unspsc7#51.10.23.04.00#Didanosine#51.10.23.00.00
+unspsc7#51.10.23.05.00#Famciclovir#51.10.23.00.00
+unspsc7#51.10.23.06.00#Foscarnet sodium#51.10.23.00.00
+unspsc7#51.10.23.07.00#Ganciclovir sodium#51.10.23.00.00
+unspsc7#51.10.23.08.00#Idoxuridine#51.10.23.00.00
+unspsc7#51.10.23.09.00#Indinavir sulfate#51.10.23.00.00
+unspsc7#51.10.23.10.00#Lamivudine#51.10.23.00.00
+unspsc7#51.10.23.11.00#Nevirapine#51.10.23.00.00
+unspsc7#51.10.23.12.00#Ribavirin#51.10.23.00.00
+unspsc7#51.10.23.13.00#Rimantadine hydrochloride#51.10.23.00.00
+unspsc7#51.10.23.14.00#Ritonavir#51.10.23.00.00
+unspsc7#51.10.23.15.00#Saquinavir mesylate#51.10.23.00.00
+unspsc7#51.10.23.16.00#Stavidine#51.10.23.00.00
+unspsc7#51.10.23.17.00#Trifluradine#51.10.23.00.00
+unspsc7#51.10.23.18.00#Valacyclovir hydrochloride#51.10.23.00.00
+unspsc7#51.10.23.19.00#Vidarabine#51.10.23.00.00
+unspsc7#51.10.23.20.00#Zalcitabine#51.10.23.00.00
+unspsc7#51.10.23.21.00#Zidovudine#51.10.23.00.00
+unspsc7#51.11.00.00.00#Antineoplastic agents#51.00.00.00.00
+unspsc7#51.11.15.00.00#Alkylating agents#51.11.00.00.00
+unspsc7#51.11.15.01.00#Amifostine#51.11.15.00.00
+unspsc7#51.11.15.02.00#Busulfan#51.11.15.00.00
+unspsc7#51.11.15.03.00#Carboplatin#51.11.15.00.00
+unspsc7#51.11.15.04.00#Carmustine#51.11.15.00.00
+unspsc7#51.11.15.05.00#Chlorambucil#51.11.15.00.00
+unspsc7#51.11.15.06.00#Cisplatin#51.11.15.00.00
+unspsc7#51.11.15.07.00#Cyclophosphamide#51.11.15.00.00
+unspsc7#51.11.15.08.00#Dacarbazine#51.11.15.00.00
+unspsc7#51.11.15.09.00#Ifosfamide#51.11.15.00.00
+unspsc7#51.11.15.10.00#Lomustine#51.11.15.00.00
+unspsc7#51.11.15.11.00#Mechlorethamine hydrochloride#51.11.15.00.00
+unspsc7#51.11.15.12.00#Melphalan#51.11.15.00.00
+unspsc7#51.11.15.13.00#Mesna#51.11.15.00.00
+unspsc7#51.11.15.14.00#Pipobroman#51.11.15.00.00
+unspsc7#51.11.15.15.00#Streptozocin#51.11.15.00.00
+unspsc7#51.11.15.16.00#Thiotepa#51.11.15.00.00
+unspsc7#51.11.15.17.00#Uracil mustard#51.11.15.00.00
+unspsc7#51.11.16.00.00#Antimetabolites#51.11.00.00.00
+unspsc7#51.11.16.01.00#Cladribine#51.11.16.00.00
+unspsc7#51.11.16.02.00#Cytarabine#51.11.16.00.00
+unspsc7#51.11.16.03.00#Floxuridine#51.11.16.00.00
+unspsc7#51.11.16.04.00#Fludarabine phosphate#51.11.16.00.00
+unspsc7#51.11.16.05.00#Fluorouracil#51.11.16.00.00
+unspsc7#51.11.16.06.00#Hydroxyurea#51.11.16.00.00
+unspsc7#51.11.16.07.00#Idarubicin hydrochloride#51.11.16.00.00
+unspsc7#51.11.16.08.00#Levamisole hydrochloride#51.11.16.00.00
+unspsc7#51.11.16.09.00#Mercaptopurine#51.11.16.00.00
+unspsc7#51.11.16.10.00#Methotrexate#51.11.16.00.00
+unspsc7#51.11.16.11.00#Teniposide#51.11.16.00.00
+unspsc7#51.11.16.12.00#Thioguanine#51.11.16.00.00
+unspsc7#51.11.17.00.00#Antineoplastic antibiotics#51.11.00.00.00
+unspsc7#51.11.17.01.00#Bleomycin sulfate#51.11.17.00.00
+unspsc7#51.11.17.02.00#Dactinomycin#51.11.17.00.00
+unspsc7#51.11.17.03.00#Daunorubicins#51.11.17.00.00
+unspsc7#51.11.17.04.00#Mitomycin#51.11.17.00.00
+unspsc7#51.11.17.05.00#Mitotane#51.11.17.00.00
+unspsc7#51.11.17.06.00#Mitoxantrone hydrochloride#51.11.17.00.00
+unspsc7#51.11.17.07.00#Pentostatin#51.11.17.00.00
+unspsc7#51.11.17.08.00#Plicamycin#51.11.17.00.00
+unspsc7#51.11.18.00.00#Hormones and antihormones#51.11.00.00.00
+unspsc7#51.11.18.01.00#Anastrozole#51.11.18.00.00
+unspsc7#51.11.18.02.00#Bicalutamide#51.11.18.00.00
+unspsc7#51.11.18.03.00#Estramustine phosphate sodium#51.11.18.00.00
+unspsc7#51.11.18.04.00#Flutamide#51.11.18.00.00
+unspsc7#51.11.18.05.00#Goserelin acetate#51.11.18.00.00
+unspsc7#51.11.18.06.00#Irinotecan hydrochloride#51.11.18.00.00
+unspsc7#51.11.18.07.00#Leuprolide acetate#51.11.18.00.00
+unspsc7#51.11.18.08.00#Nilutamide#51.11.18.00.00
+unspsc7#51.11.18.09.00#Tamoxifen#51.11.18.00.00
+unspsc7#51.11.18.10.00#Testolactone#51.11.18.00.00
+unspsc7#51.11.18.11.00#Topotecan hydrochloride#51.11.18.00.00
+unspsc7#51.11.18.12.00#Vinblastine sulfate#51.11.18.00.00
+unspsc7#51.11.18.13.00#Vincristine sulfate#51.11.18.00.00
+unspsc7#51.11.18.14.00#Vinorelbine tartrate#51.11.18.00.00
+unspsc7#51.11.19.00.00#Natural antineoplastic products#51.11.00.00.00
+unspsc7#51.11.19.01.00#Asparaginase#51.11.19.00.00
+unspsc7#51.11.19.02.00#Docetaxel#51.11.19.00.00
+unspsc7#51.11.19.03.00#Interferon#51.11.19.00.00
+unspsc7#51.11.19.04.00#Paclitaxel#51.11.19.00.00
+unspsc7#51.11.19.05.00#Porfimer sodium#51.11.19.00.00
+unspsc7#51.12.00.00.00#Cardiovascular drugs#51.00.00.00.00
+unspsc7#51.12.15.00.00#Antiarrythmic agents#51.12.00.00.00
+unspsc7#51.12.15.01.00#Adenosine#51.12.15.00.00
+unspsc7#51.12.15.02.00#Digoxin#51.12.15.00.00
+unspsc7#51.12.15.03.00#Quinidine gluconate#51.12.15.00.00
+unspsc7#51.12.16.00.00#Antianginal drugs#51.12.00.00.00
+unspsc7#51.12.16.01.00#Amyl nitrate#51.12.16.00.00
+unspsc7#51.12.16.02.00#Isosorbide dinitrate#51.12.16.00.00
+unspsc7#51.12.16.03.00#Nitroglycerin#51.12.16.00.00
+unspsc7#51.12.16.04.00#Pentaerythritol tetranitrate#51.12.16.00.00
+unspsc7#51.12.17.00.00#Antihypertensive drugs#51.12.00.00.00
+unspsc7#51.12.17.01.00#Diazoxide#51.12.17.00.00
+unspsc7#51.12.17.02.00#Terazosin#51.12.17.00.00
+unspsc7#51.12.17.03.00#Captopril#51.12.17.00.00
+unspsc7#51.12.17.04.00#Lisinopril#51.12.17.00.00
+unspsc7#51.12.17.05.00#Felodipine#51.12.17.00.00
+unspsc7#51.12.17.06.00#Isradipine#51.12.17.00.00
+unspsc7#51.12.17.07.00#Verapamil#51.12.17.00.00
+unspsc7#51.12.17.08.00#Methyldopa#51.12.17.00.00
+unspsc7#51.12.17.09.00#Carvedilol#51.12.17.00.00
+unspsc7#51.12.17.10.00#Losartan potassium#51.12.17.00.00
+unspsc7#51.12.17.11.00#Minoxidil#51.12.17.00.00
+unspsc7#51.12.18.00.00#Antihyperlipidemic and hypocholesterolemic agents#51.12.00.00.00
+unspsc7#51.12.18.01.00#Fluvastatin sodium#51.12.18.00.00
+unspsc7#51.12.18.02.00#Lovastatin#51.12.18.00.00
+unspsc7#51.12.18.03.00#Simvastatin#51.12.18.00.00
+unspsc7#51.12.18.04.00#Clofibrate#51.12.18.00.00
+unspsc7#51.12.18.05.00#Gemfibrozil#51.12.18.00.00
+unspsc7#51.12.19.00.00#Drugs used for congestive heart failure#51.12.00.00.00
+unspsc7#51.12.19.01.00#Amrinone lactate#51.12.19.00.00
+unspsc7#51.12.19.02.00#Milrinone lactate#51.12.19.00.00
+unspsc7#51.12.19.03.00#Digitoxin#51.12.19.00.00
+unspsc7#51.13.00.00.00#Hematolic drugs#51.00.00.00.00
+unspsc7#51.13.15.00.00#Antianemic drugs#51.13.00.00.00
+unspsc7#51.13.15.01.00#Ferrous fumarate#51.13.15.00.00
+unspsc7#51.13.15.02.00#Ferrous gluconate#51.13.15.00.00
+unspsc7#51.13.15.03.00#Ferrous sulfate#51.13.15.00.00
+unspsc7#51.13.16.00.00#Anticoagulants#51.13.00.00.00
+unspsc7#51.13.16.01.00#Aprotinin#51.13.16.00.00
+unspsc7#51.13.16.02.00#Heparin calcium#51.13.16.00.00
+unspsc7#51.13.16.03.00#Heparin sodium#51.13.16.00.00
+unspsc7#51.13.16.04.00#Warfarin sodium#51.13.16.00.00
+unspsc7#51.13.17.00.00#Thrombolytic drugs and platelet aggregation inhibitors#51.13.00.00.00
+unspsc7#51.13.17.01.00#Abciximab#51.13.17.00.00
+unspsc7#51.13.17.02.00#Alteplase#51.13.17.00.00
+unspsc7#51.13.17.03.00#Streptokinase#51.13.17.00.00
+unspsc7#51.13.17.04.00#Urokinase#51.13.17.00.00
+unspsc7#51.14.00.00.00#Central nervous system drugs#51.00.00.00.00
+unspsc7#51.14.15.00.00#Anticonvulsants#51.14.00.00.00
+unspsc7#51.14.15.01.00#Acetazolamide#51.14.15.00.00
+unspsc7#51.14.15.02.00#Clonazepam#51.14.15.00.00
+unspsc7#51.14.15.03.00#Felbamate#51.14.15.00.00
+unspsc7#51.14.15.04.00#Lamotrigine#51.14.15.00.00
+unspsc7#51.14.15.05.00#Phenobarbital#51.14.15.00.00
+unspsc7#51.14.15.06.00#Phenobarbital sodium#51.14.15.00.00
+unspsc7#51.14.15.07.00#Phenytoin#51.14.15.00.00
+unspsc7#51.14.15.08.00#Ethosuximide#51.14.15.00.00
+unspsc7#51.14.16.00.00#Antidepressants#51.14.00.00.00
+unspsc7#51.14.16.01.00#Amitriptyline hydrochloride#51.14.16.00.00
+unspsc7#51.14.16.02.00#Doxepin hydrochloride#51.14.16.00.00
+unspsc7#51.14.16.03.00#Imipramine pamoate#51.14.16.00.00
+unspsc7#51.14.16.04.00#Mirtazapine#51.14.16.00.00
+unspsc7#51.14.16.05.00#Paroxetine hydrochloride#51.14.16.00.00
+unspsc7#51.14.16.06.00#Trazodone hydrochloride#51.14.16.00.00
+unspsc7#51.14.17.00.00#Antipsychotic agents#51.14.00.00.00
+unspsc7#51.14.17.01.00#Phenothiazines#51.14.17.00.00
+unspsc7#51.14.17.02.00#Haloperidol#51.14.17.00.00
+unspsc7#51.14.17.03.00#Olanzapine#51.14.17.00.00
+unspsc7#51.14.17.04.00#Risperidone#51.14.17.00.00
+unspsc7#51.14.18.00.00#Hypnotics#51.14.00.00.00
+unspsc7#51.14.18.01.00#Pentobarbital#51.14.18.00.00
+unspsc7#51.14.18.02.00#Secobarbital sodium#51.14.18.00.00
+unspsc7#51.14.18.03.00#Chloral hydrate#51.14.18.00.00
+unspsc7#51.14.18.04.00#Estazolam#51.14.18.00.00
+unspsc7#51.14.18.05.00#Triazolam#51.14.18.00.00
+unspsc7#51.14.19.00.00#Tranquilizers and antimanic drugs#51.14.00.00.00
+unspsc7#51.14.19.01.00#Alprazolam#51.14.19.00.00
+unspsc7#51.14.19.02.00#Diazepam#51.14.19.00.00
+unspsc7#51.14.19.03.00#Lithium carbonate#51.14.19.00.00
+unspsc7#51.14.19.04.00#Lithium citrate#51.14.19.00.00
+unspsc7#51.14.19.05.00#Midazolam hydrochloride#51.14.19.00.00
+unspsc7#51.14.19.06.00#Temazepam#51.14.19.00.00
+unspsc7#51.14.20.00.00#Non narcotic analgesics and antipyretics#51.14.00.00.00
+unspsc7#51.14.20.01.00#Acetaminophen#51.14.20.00.00
+unspsc7#51.14.20.02.00#Acetylsalicylic acid#51.14.20.00.00
+unspsc7#51.14.20.03.00#Mesalamine#51.14.20.00.00
+unspsc7#51.14.20.04.00#Meprobromate#51.14.20.00.00
+unspsc7#51.14.21.00.00#Nonsteroidal anti inflammatory drugs (NSAIDs)#51.14.00.00.00
+unspsc7#51.14.21.01.00#Auranofin#51.14.21.00.00
+unspsc7#51.14.21.02.00#Carpofen#51.14.21.00.00
+unspsc7#51.14.21.03.00#Diclofenac potassium#51.14.21.00.00
+unspsc7#51.14.21.04.00#Diclofenac sodium#51.14.21.00.00
+unspsc7#51.14.21.05.00#Flurbiprofen#51.14.21.00.00
+unspsc7#51.14.21.06.00#Ibuprofen#51.14.21.00.00
+unspsc7#51.14.21.07.00#Indomethacin#51.14.21.00.00
+unspsc7#51.14.21.08.00#Ketoprofen#51.14.21.00.00
+unspsc7#51.14.21.09.00#Naproxen#51.14.21.00.00
+unspsc7#51.14.21.10.00#Naproxen sodium#51.14.21.00.00
+unspsc7#51.14.21.11.00#Oxaprozin#51.14.21.00.00
+unspsc7#51.14.21.12.00#Sulindac#51.14.21.00.00
+unspsc7#51.14.21.13.00#Suprofen#51.14.21.00.00
+unspsc7#51.14.22.00.00#Narcotic analgesics#51.14.00.00.00
+unspsc7#51.14.22.01.00#Butorphanol tartrate#51.14.22.00.00
+unspsc7#51.14.22.02.00#Codeine phosphate#51.14.22.00.00
+unspsc7#51.14.22.03.00#Codeine sulfate#51.14.22.00.00
+unspsc7#51.14.22.05.00#Meperidine hydrochloride#51.14.22.00.00
+unspsc7#51.14.22.06.00#Morphine sulfate#51.14.22.00.00
+unspsc7#51.14.22.07.00#Oxycodone#51.14.22.00.00
+unspsc7#51.14.22.08.00#Sufentanil#51.14.22.00.00
+unspsc7#51.14.23.00.00#Narcotic antagonists#51.14.00.00.00
+unspsc7#51.14.23.01.00#Nalmefene hydrochloride#51.14.23.00.00
+unspsc7#51.14.23.02.00#Naloxone hydrochloride#51.14.23.00.00
+unspsc7#51.14.23.03.00#Naltrexone#51.14.23.00.00
+unspsc7#51.14.24.00.00#Drugs used for vascular and migraine headaches#51.14.00.00.00
+unspsc7#51.14.24.01.00#Methysergide maleate#51.14.24.00.00
+unspsc7#51.14.24.02.00#Sumatriptan succinate#51.14.24.00.00
+unspsc7#51.14.25.00.00#Antiparkinson drugs#51.14.00.00.00
+unspsc7#51.14.25.01.00#Bromocriptine mesylate#51.14.25.00.00
+unspsc7#51.14.25.02.00#Carbidopa#51.14.25.00.00
+unspsc7#51.14.25.03.00#Levodopa#51.14.25.00.00
+unspsc7#51.14.25.04.00#Selegiline hydrochloride#51.14.25.00.00
+unspsc7#51.14.26.00.00#Stimulants and anorexiants#51.14.00.00.00
+unspsc7#51.14.26.01.00#Amphetamine sulfate#51.14.26.00.00
+unspsc7#51.14.26.02.00#Fenfluramine#51.14.26.00.00
+unspsc7#51.14.26.03.00#Mazindol#51.14.26.00.00
+unspsc7#51.14.26.04.00#Pemoline#51.14.26.00.00
+unspsc7#51.14.26.05.00#Phendimetrazine tartrate#51.14.26.00.00
+unspsc7#51.15.00.00.00#Autonomic nervous system drugs#51.00.00.00.00
+unspsc7#51.15.15.00.00#Cholinergic drugs and cholinesterase inhibitors#51.15.00.00.00
+unspsc7#51.15.15.01.00#Bethanechol chloride#51.15.15.00.00
+unspsc7#51.15.15.02.00#Edrophonium chloride#51.15.15.00.00
+unspsc7#51.15.15.03.00#Physostigmine salicylate#51.15.15.00.00
+unspsc7#51.15.15.04.00#Pilocarpine nitrate#51.15.15.00.00
+unspsc7#51.15.16.00.00#Cholinergic blocking agents#51.15.00.00.00
+unspsc7#51.15.16.01.00#Atropine sulfate#51.15.16.00.00
+unspsc7#51.15.16.02.00#Benztropine mesylate#51.15.16.00.00
+unspsc7#51.15.16.03.00#Procyclidine hydrochloride#51.15.16.00.00
+unspsc7#51.15.16.04.00#Trihexyphenidyl hydrochloride#51.15.16.00.00
+unspsc7#51.15.17.00.00#Sympathomimetic or adrenergic drugs#51.15.00.00.00
+unspsc7#51.15.17.01.00#Albuterol#51.15.17.00.00
+unspsc7#51.15.17.02.00#Brimonidine tartrate#51.15.17.00.00
+unspsc7#51.15.17.03.00#Epinephrine#51.15.17.00.00
+unspsc7#51.15.17.04.00#Epinephrine borate#51.15.17.00.00
+unspsc7#51.15.17.05.00#Epinephrine hydrochloride#51.15.17.00.00
+unspsc7#51.15.17.06.00#Isoproterenol#51.15.17.00.00
+unspsc7#51.15.17.07.00#Isoproterenol sulfate#51.15.17.00.00
+unspsc7#51.15.17.08.00#Levarterenol bitartrate#51.15.17.00.00
+unspsc7#51.15.17.09.00#Phenylpropanolamine hydrochloride#51.15.17.00.00
+unspsc7#51.15.18.00.00#Adrenergic blocking agents#51.15.00.00.00
+unspsc7#51.15.18.01.00#Atenolol#51.15.18.00.00
+unspsc7#51.15.18.02.00#Esmolol hydrochloride#51.15.18.00.00
+unspsc7#51.15.18.03.00#Nadolol#51.15.18.00.00
+unspsc7#51.15.18.04.00#Pindolol#51.15.18.00.00
+unspsc7#51.15.18.05.00#Timolol maleate#51.15.18.00.00
+unspsc7#51.15.18.10.00#Phentolamine mesylate#51.15.18.00.00
+unspsc7#51.15.19.00.00#Skeletal muscle relaxants and centrally acting#51.15.00.00.00
+unspsc7#51.15.19.01.00#Baclofen#51.15.19.00.00
+unspsc7#51.15.19.02.00#Chlorzoxazone#51.15.19.00.00
+unspsc7#51.15.19.03.00#Dantrolene sodium#51.15.19.00.00
+unspsc7#51.15.19.04.00#Methocarbamol#51.15.19.00.00
+unspsc7#51.15.19.05.00#Carisoprodol#51.15.19.00.00
+unspsc7#51.15.20.00.00#Neuromuscular blocking agents#51.15.00.00.00
+unspsc7#51.15.20.01.00#Atracurium besylate#51.15.20.00.00
+unspsc7#51.15.20.02.00#Mivacurium chyloride#51.15.20.00.00
+unspsc7#51.15.20.03.00#Rocuronium bromide#51.15.20.00.00
+unspsc7#51.15.20.04.00#Vecuronium bromide#51.15.20.00.00
+unspsc7#51.16.00.00.00#Drugs affecting the respiratory tract#51.00.00.00.00
+unspsc7#51.16.15.00.00#Antiasthmatic drugs#51.16.00.00.00
+unspsc7#51.16.15.01.00#Bitolterol mesylate#51.16.15.00.00
+unspsc7#51.16.15.02.00#Nedocromil sodium#51.16.15.00.00
+unspsc7#51.16.15.03.00#Pirbuterol acetate#51.16.15.00.00
+unspsc7#51.16.15.04.00#Aminophylline#51.16.15.00.00
+unspsc7#51.16.15.05.00#Theophylline#51.16.15.00.00
+unspsc7#51.16.16.00.00#Antihistamines or H1 blockers#51.16.00.00.00
+unspsc7#51.16.16.01.00#Astemizole#51.16.16.00.00
+unspsc7#51.16.16.02.00#Clemastine fumarate#51.16.16.00.00
+unspsc7#51.16.16.03.00#Dexchlorpheniramine maleate#51.16.16.00.00
+unspsc7#51.16.16.04.00#Dimenhydrinate#51.16.16.00.00
+unspsc7#51.16.16.05.00#Levocabastine hydrochloride#51.16.16.00.00
+unspsc7#51.16.16.06.00#Loratidine#51.16.16.00.00
+unspsc7#51.16.16.07.00#Terfenadine#51.16.16.00.00
+unspsc7#51.16.17.00.00#Drugs used for respiratory tract disorders#51.16.00.00.00
+unspsc7#51.16.17.01.00#Acetylcysteine#51.16.17.00.00
+unspsc7#51.16.17.02.00#Beractant#51.16.17.00.00
+unspsc7#51.16.17.03.00#Budesonide#51.16.17.00.00
+unspsc7#51.16.17.04.00#Colfosceril palmitate#51.16.17.00.00
+unspsc7#51.16.17.05.00#Ipratropium bromide#51.16.17.00.00
+unspsc7#51.16.18.00.00#Cough and cold and antiallergy products#51.16.00.00.00
+unspsc7#51.16.18.01.00#Benzonatate#51.16.18.00.00
+unspsc7#51.16.18.02.00#Guaifenesin#51.16.18.00.00
+unspsc7#51.16.19.00.00#Nasal decongestants#51.16.00.00.00
+unspsc7#51.16.19.01.00#Oxymetazoline hydrochloride#51.16.19.00.00
+unspsc7#51.16.19.02.00#Pseudoephedrine hydrochloride#51.16.19.00.00
+unspsc7#51.16.19.03.00#Xylometazoline hydrochloride#51.16.19.00.00
+unspsc7#51.17.00.00.00#Drugs affecting the gastrointestinal system#51.00.00.00.00
+unspsc7#51.17.15.00.00#Antacids#51.17.00.00.00
+unspsc7#51.17.15.01.00#Calcium carbonate#51.17.15.00.00
+unspsc7#51.17.15.02.00#Magaldrate#51.17.15.00.00
+unspsc7#51.17.15.03.00#Magnesium hydroxide#51.17.15.00.00
+unspsc7#51.17.15.04.00#Sodium bicarbonate antacids#51.17.15.00.00
+unspsc7#51.17.16.00.00#Laxatives#51.17.00.00.00
+unspsc7#51.17.16.01.00#Cascara sagrada#51.17.16.00.00
+unspsc7#51.17.16.02.00#Docusate calcium#51.17.16.00.00
+unspsc7#51.17.16.03.00#Docusate potassium#51.17.16.00.00
+unspsc7#51.17.16.04.00#Docusate sodium#51.17.16.00.00
+unspsc7#51.17.16.05.00#Lactulose#51.17.16.00.00
+unspsc7#51.17.16.06.00#Magnesium sulfate#51.17.16.00.00
+unspsc7#51.17.16.07.00#Psyllium hydrophilic muciloid#51.17.16.00.00
+unspsc7#51.17.17.00.00#Antidiarrheals#51.17.00.00.00
+unspsc7#51.17.17.01.00#Difenoxin hydrochloride#51.17.17.00.00
+unspsc7#51.17.17.02.00#Loperamide hydrochloride#51.17.17.00.00
+unspsc7#51.17.17.03.00#Paregoric#51.17.17.00.00
+unspsc7#51.17.18.00.00#Antiemetics and antinauseants#51.17.00.00.00
+unspsc7#51.17.18.01.00#Dronabinol#51.17.18.00.00
+unspsc7#51.17.18.02.00#Granisetron hydrochloride#51.17.18.00.00
+unspsc7#51.17.18.03.00#Meclizine hydrochloride#51.17.18.00.00
+unspsc7#51.17.18.04.00#Ondansetron hydrochloride#51.17.18.00.00
+unspsc7#51.17.18.05.00#Trimethobenzamide hydrochloride#51.17.18.00.00
+unspsc7#51.17.19.00.00#Antiulcer and related gastrointestinal (GI) drugs#51.17.00.00.00
+unspsc7#51.17.19.01.00#Cimetidine#51.17.19.00.00
+unspsc7#51.17.19.02.00#Famotidine#51.17.19.00.00
+unspsc7#51.17.19.03.00#Nizatidine#51.17.19.00.00
+unspsc7#51.17.19.04.00#Ranitidine hydrochloride#51.17.19.00.00
+unspsc7#51.17.19.05.00#Cisapride#51.17.19.00.00
+unspsc7#51.17.19.06.00#Lansoprazole#51.17.19.00.00
+unspsc7#51.17.19.07.00#Librax#51.17.19.00.00
+unspsc7#51.17.19.08.00#Misoprostol#51.17.19.00.00
+unspsc7#51.17.20.00.00#Drugs used for gallbladder disease#51.17.00.00.00
+unspsc7#51.17.20.01.00#Chenodiol#51.17.20.00.00
+unspsc7#51.17.20.02.00#Monoctanoin#51.17.20.00.00
+unspsc7#51.17.20.03.00#Ursodiol#51.17.20.00.00
+unspsc7#51.18.00.00.00#Hormones and hormone antagonists#51.00.00.00.00
+unspsc7#51.18.15.00.00#Antidiabetic agents and hyperglycemic agents#51.18.00.00.00
+unspsc7#51.18.15.01.00#Acarbose#51.18.15.00.00
+unspsc7#51.18.15.02.00#Acetohexamide#51.18.15.00.00
+unspsc7#51.18.15.03.00#Chlorpropamide#51.18.15.00.00
+unspsc7#51.18.15.04.00#Glimepiride#51.18.15.00.00
+unspsc7#51.18.15.05.00#Glipizide#51.18.15.00.00
+unspsc7#51.18.15.06.00#Insulin#51.18.15.00.00
+unspsc7#51.18.15.08.00#Glucagon#51.18.15.00.00
+unspsc7#51.18.16.00.00#Thyroid and antithyroid drugs#51.18.00.00.00
+unspsc7#51.18.16.01.00#Levothyroxine sodium#51.18.16.00.00
+unspsc7#51.18.16.02.00#Liothyronine sodium#51.18.16.00.00
+unspsc7#51.18.16.03.00#Liotrix#51.18.16.00.00
+unspsc7#51.18.16.04.00#Thyrotropin#51.18.16.00.00
+unspsc7#51.18.16.05.00#Methimazole#51.18.16.00.00
+unspsc7#51.18.16.06.00#Propylthiouracil#51.18.16.00.00
+unspsc7#51.18.17.00.00#Corticosteroids#51.18.00.00.00
+unspsc7#51.18.17.01.00#Betamethasone#51.18.17.00.00
+unspsc7#51.18.17.02.00#Corticotropin#51.18.17.00.00
+unspsc7#51.18.17.03.00#Cosyntropin#51.18.17.00.00
+unspsc7#51.18.17.04.00#Dexamethasone#51.18.17.00.00
+unspsc7#51.18.17.05.00#Flunisolide#51.18.17.00.00
+unspsc7#51.18.17.06.00#Hydrocortisone#51.18.17.00.00
+unspsc7#51.18.17.07.00#Methylprednisolone#51.18.17.00.00
+unspsc7#51.18.17.08.00#Prednisolone#51.18.17.00.00
+unspsc7#51.18.17.09.00#Triamcinolone#51.18.17.00.00
+unspsc7#51.18.18.00.00#Estrogens and progestins and internal contraceptives#51.18.00.00.00
+unspsc7#51.18.18.01.00#Chlorotrianisene#51.18.18.00.00
+unspsc7#51.18.18.02.00#Estrone#51.18.18.00.00
+unspsc7#51.18.18.03.00#Estrogens conjugated#51.18.18.00.00
+unspsc7#51.18.18.04.00#Estropipate#51.18.18.00.00
+unspsc7#51.18.18.05.00#Levonorgestrel#51.18.18.00.00
+unspsc7#51.18.18.06.00#Megestrol acetate#51.18.18.00.00
+unspsc7#51.18.18.07.00#Ethinyl estradiol#51.18.18.00.00
+unspsc7#51.18.18.08.00#Mestranol#51.18.18.00.00
+unspsc7#51.18.19.00.00#Gonadotropic hormones and ovarian stimulants and inhibitors#51.18.00.00.00
+unspsc7#51.18.19.01.00#Chorionic gonadotropin#51.18.19.00.00
+unspsc7#51.18.19.02.00#Danazol#51.18.19.00.00
+unspsc7#51.18.19.03.00#Gonadorelin acetate#51.18.19.00.00
+unspsc7#51.18.19.04.00#Histrelin acetate#51.18.19.00.00
+unspsc7#51.18.19.05.00#Menotropins#51.18.19.00.00
+unspsc7#51.18.19.06.00#Urofollitropin#51.18.19.00.00
+unspsc7#51.18.20.00.00#Androgens and androgen inhibitors#51.18.00.00.00
+unspsc7#51.18.20.01.00#Finasteride#51.18.20.00.00
+unspsc7#51.18.20.02.00#Testosterone#51.18.20.00.00
+unspsc7#51.18.20.03.00#Testosterone cypionate#51.18.20.00.00
+unspsc7#51.18.20.04.00#Testosterone enanthate#51.18.20.00.00
+unspsc7#51.18.20.05.00#Testosterone propionate#51.18.20.00.00
+unspsc7#51.18.21.00.00#Posterior pituitary hormones#51.18.00.00.00
+unspsc7#51.18.21.01.00#Desmopressin acetate#51.18.21.00.00
+unspsc7#51.18.21.02.00#Vasopressin#51.18.21.00.00
+unspsc7#51.18.22.00.00#Drugs for inducing labor#51.18.00.00.00
+unspsc7#51.18.22.01.00#Dinoprostone#51.18.22.00.00
+unspsc7#51.18.22.02.00#Methylergonovine maleate#51.18.22.00.00
+unspsc7#51.18.22.03.00#Oxytocin#51.18.22.00.00
+unspsc7#51.18.23.00.00#Growth hormones#51.18.00.00.00
+unspsc7#51.18.23.01.00#Somatrem#51.18.23.00.00
+unspsc7#51.18.23.02.00#Somatropin#51.18.23.00.00
+unspsc7#51.18.24.00.00#Calcium salts and calcium regulators#51.18.00.00.00
+unspsc7#51.18.24.01.00#Calcium chloride#51.18.24.00.00
+unspsc7#51.18.24.02.00#Calcium citrate#51.18.24.00.00
+unspsc7#51.18.24.03.00#Calcium gluconate#51.18.24.00.00
+unspsc7#51.18.24.04.00#Calcium lactate#51.18.24.00.00
+unspsc7#51.18.24.05.00#Dibase calcium phosphate#51.18.24.00.00
+unspsc7#51.18.24.06.00#Alendronate sodium#51.18.24.00.00
+unspsc7#51.18.24.07.00#Calcitonin#51.18.24.00.00
+unspsc7#51.18.24.08.00#Cellulose sodium phosphate#51.18.24.00.00
+unspsc7#51.18.24.09.00#Gallium nitrate#51.18.24.00.00
+unspsc7#51.19.00.00.00#Agents affecting water and electrolytes#51.00.00.00.00
+unspsc7#51.19.15.00.00#Diuretics#51.19.00.00.00
+unspsc7#51.19.15.01.00#Chlorothiazide#51.19.15.00.00
+unspsc7#51.19.15.02.00#Chlorthalidone#51.19.15.00.00
+unspsc7#51.19.15.03.00#Mentolazone#51.19.15.00.00
+unspsc7#51.19.15.04.00#Bumetanide#51.19.15.00.00
+unspsc7#51.19.15.05.00#Ethacrynate sodium#51.19.15.00.00
+unspsc7#51.19.15.06.00#Amiloride hydrochloride#51.19.15.00.00
+unspsc7#51.19.15.07.00#Spironolactone#51.19.15.00.00
+unspsc7#51.19.15.08.00#Triamterene#51.19.15.00.00
+unspsc7#51.19.15.09.00#Mannitol#51.19.15.00.00
+unspsc7#51.19.16.00.00#Electrolytes#51.19.00.00.00
+unspsc7#51.19.16.01.00#Dextrose#51.19.16.00.00
+unspsc7#51.19.16.02.00#Sodium chloride electrolytes#51.19.16.00.00
+unspsc7#51.19.17.00.00#Alkalinizing agents#51.19.00.00.00
+unspsc7#51.19.17.01.00#Tromethamine#51.19.17.00.00
+unspsc7#51.19.18.00.00#Potassium salts#51.19.00.00.00
+unspsc7#51.19.18.01.00#Potassium bicarbonate#51.19.18.00.00
+unspsc7#51.19.18.02.00#Potassium chloride#51.19.18.00.00
+unspsc7#51.19.18.03.00#Potassium gluconate#51.19.18.00.00
+unspsc7#51.20.00.00.00#Immunomodulating drugs#51.00.00.00.00
+unspsc7#51.20.15.00.00#Immunosuppressants#51.20.00.00.00
+unspsc7#51.20.15.01.00#Azathioprine#51.20.15.00.00
+unspsc7#51.20.15.02.00#Cyclosporine#51.20.15.00.00
+unspsc7#51.20.15.03.00#Mycophenolate mofetil#51.20.15.00.00
+unspsc7#51.20.15.04.00#Tacrolimus#51.20.15.00.00
+unspsc7#51.20.16.00.00#Vaccines#51.20.00.00.00
+unspsc7#51.20.16.01.00#Anthrax antigen#51.20.16.00.00
+unspsc7#51.20.16.02.00#Brucella antigen#51.20.16.00.00
+unspsc7#51.20.16.03.00#Cholera#51.20.16.00.00
+unspsc7#51.20.16.04.00#Diphteria#51.20.16.00.00
+unspsc7#51.20.16.05.00#Encephalitis#51.20.16.00.00
+unspsc7#51.20.16.06.00#Hemophilus influenzae#51.20.16.00.00
+unspsc7#51.20.16.07.00#Hepatitis b#51.20.16.00.00
+unspsc7#51.20.16.08.00#Influenza#51.20.16.00.00
+unspsc7#51.20.16.09.00#Measles#51.20.16.00.00
+unspsc7#51.20.16.10.00#Meningococcus#51.20.16.00.00
+unspsc7#51.20.16.11.00#Morbilli#51.20.16.00.00
+unspsc7#51.20.16.12.00#Mumps#51.20.16.00.00
+unspsc7#51.20.16.13.00#Parotitis#51.20.16.00.00
+unspsc7#51.20.16.14.00#Pertussis#51.20.16.00.00
+unspsc7#51.20.16.15.00#Pneumococcus#51.20.16.00.00
+unspsc7#51.20.16.16.00#Poliomyelitis#51.20.16.00.00
+unspsc7#51.20.16.17.00#Rabies#51.20.16.00.00
+unspsc7#51.20.16.18.00#Rota virus#51.20.16.00.00
+unspsc7#51.20.16.19.00#Rubella#51.20.16.00.00
+unspsc7#51.20.16.20.00#Smallpox#51.20.16.00.00
+unspsc7#51.20.16.21.00#Tetanus toxoid#51.20.16.00.00
+unspsc7#51.20.16.22.00#Tuberculosis#51.20.16.00.00
+unspsc7#51.20.16.23.00#Typhoid#51.20.16.00.00
+unspsc7#51.20.16.24.00#Varicella#51.20.16.00.00
+unspsc7#51.20.16.25.00#Yellow fever#51.20.16.00.00
+unspsc7#51.20.16.26.00#Hepatitis a#51.20.16.00.00
+unspsc7#51.21.00.00.00#Miscellaneous drug categories#51.00.00.00.00
+unspsc7#51.21.15.00.00#Antigout drugs#51.21.00.00.00
+unspsc7#51.21.15.01.00#Allopurinol#51.21.15.00.00
+unspsc7#51.21.15.02.00#Colchicine#51.21.15.00.00
+unspsc7#51.21.15.03.00#Probenecid#51.21.15.00.00
+unspsc7#51.21.15.04.00#Sulfinpyrazone#51.21.15.00.00
+unspsc7#51.21.16.00.00#Antidotes#51.21.00.00.00
+unspsc7#51.21.16.01.00#Deferoxamine mesylate#51.21.16.00.00
+unspsc7#51.21.16.02.00#Dexrazoxane#51.21.16.00.00
+unspsc7#51.21.16.03.00#Digoxin immune fab#51.21.16.00.00
+unspsc7#51.21.16.04.00#Dimercaprol#51.21.16.00.00
+unspsc7#51.21.16.05.00#Edetate disodium#51.21.16.00.00
+unspsc7#51.21.16.06.00#Flumazenil#51.21.16.00.00
+unspsc7#51.21.16.07.00#Ipecac#51.21.16.00.00
+unspsc7#51.21.16.08.00#Penicillamine#51.21.16.00.00
+unspsc7#51.21.16.09.00#Protamine sulfate#51.21.16.00.00
+unspsc7#51.21.16.10.00#Sodium polystyrene sulfonate#51.21.16.00.00
+unspsc7#51.21.16.11.00#Trientine#51.21.16.00.00
+unspsc7#51.21.17.00.00#Nutritious food#51.21.00.00.00
+unspsc7#51.21.17.01.00#Residue of maize germ#51.21.17.00.00
+unspsc7#51.21.18.00.00#Anaesthetic drugs#51.21.00.00.00
+unspsc7#51.21.18.01.00#Chloroform#51.21.18.00.00
+unspsc7#52.00.00.00.00#Domestic Appliances and Supplies and Consumer Electronic Products#52.00.00.00.00
+unspsc7#52.10.00.00.00#Floor coverings#52.00.00.00.00
+unspsc7#52.10.15.00.00#Rugs and mats#52.10.00.00.00
+unspsc7#52.10.15.01.00#Oriental rugs#52.10.15.00.00
+unspsc7#52.10.15.02.00#Area rugs#52.10.15.00.00
+unspsc7#52.10.15.03.00#Wool rugs#52.10.15.00.00
+unspsc7#52.10.15.04.00#Cotton rugs#52.10.15.00.00
+unspsc7#52.10.15.05.00#Synthetic rugs#52.10.15.00.00
+unspsc7#52.10.15.06.00#Braided rugs#52.10.15.00.00
+unspsc7#52.10.15.07.00#Bath mats#52.10.15.00.00
+unspsc7#52.10.15.08.00#Door mats#52.10.15.00.00
+unspsc7#52.10.15.09.00#Decorative mats#52.10.15.00.00
+unspsc7#52.10.15.10.00#Anti fatigue mats#52.10.15.00.00
+unspsc7#52.10.15.11.00#Rubber or vinyl mats#52.10.15.00.00
+unspsc7#52.10.15.12.00#Chair mat#52.10.15.00.00
+unspsc7#52.10.15.13.00#Carpet protector#52.10.15.00.00
+unspsc7#52.11.00.00.00#Accommodation furniture#52.00.00.00.00
+unspsc7#52.11.15.00.00#Furniture#52.11.00.00.00
+unspsc7#52.11.15.01.00#Sofas#52.11.15.00.00
+unspsc7#52.11.15.02.00#Stands#52.11.15.00.00
+unspsc7#52.11.15.03.00#Bookcases#52.11.15.00.00
+unspsc7#52.11.15.04.00#Entertainment centers#52.11.15.00.00
+unspsc7#52.11.15.05.00#Futons#52.11.15.00.00
+unspsc7#52.11.15.06.00#Chairs#52.11.15.00.00
+unspsc7#52.11.15.07.00#Coat racks#52.11.15.00.00
+unspsc7#52.11.15.08.00#Wall racks#52.11.15.00.00
+unspsc7#52.11.15.09.00#Mattresses#52.11.15.00.00
+unspsc7#52.11.15.10.00#Cots#52.11.15.00.00
+unspsc7#52.11.15.11.00#Beds#52.11.15.00.00
+unspsc7#52.11.15.12.00#Foot stools#52.11.15.00.00
+unspsc7#52.11.15.13.00#Tables#52.11.15.00.00
+unspsc7#52.11.15.14.00#Chests#52.11.15.00.00
+unspsc7#52.11.15.15.00#Stools#52.11.15.00.00
+unspsc7#52.11.15.16.00#Dressers#52.11.15.00.00
+unspsc7#52.11.15.17.00#Partitions#52.11.15.00.00
+unspsc7#52.11.16.00.00#Outdoor furniture#52.11.00.00.00
+unspsc7#52.11.16.01.00#Outdoor chairs#52.11.16.00.00
+unspsc7#52.11.16.02.00#Outdoor tables or picnic tables#52.11.16.00.00
+unspsc7#52.11.16.03.00#Outdoor swings#52.11.16.00.00
+unspsc7#52.11.16.04.00#Outdoor benches#52.11.16.00.00
+unspsc7#52.11.16.05.00#Outdoor umbrellas#52.11.16.00.00
+unspsc7#52.11.17.00.00#Office furniture#52.11.00.00.00
+unspsc7#52.11.17.01.00#Credenzas#52.11.17.00.00
+unspsc7#52.11.17.03.00#Desks#52.11.17.00.00
+unspsc7#52.12.00.00.00#Bedclothes and table and kitchen linen and towels#52.00.00.00.00
+unspsc7#52.12.15.00.00#Bedclothes#52.12.00.00.00
+unspsc7#52.12.15.01.00#Quilts#52.12.15.00.00
+unspsc7#52.12.15.02.00#Comforters#52.12.15.00.00
+unspsc7#52.12.15.03.00#Comforter covers#52.12.15.00.00
+unspsc7#52.12.15.04.00#Mattress covers#52.12.15.00.00
+unspsc7#52.12.15.05.00#Pillows#52.12.15.00.00
+unspsc7#52.12.15.06.00#Mattress pads#52.12.15.00.00
+unspsc7#52.12.15.07.00#Featherbeds#52.12.15.00.00
+unspsc7#52.12.15.08.00#Blankets#52.12.15.00.00
+unspsc7#52.12.15.09.00#Sheets#52.12.15.00.00
+unspsc7#52.12.15.10.00#Dust ruffles#52.12.15.00.00
+unspsc7#52.12.15.11.00#Duvets#52.12.15.00.00
+unspsc7#52.12.15.12.00#Pillow cases#52.12.15.00.00
+unspsc7#52.12.15.13.00#Bed spreads#52.12.15.00.00
+unspsc7#52.12.16.00.00#Table and kitchen linen#52.12.00.00.00
+unspsc7#52.12.16.01.00#Dish towels#52.12.16.00.00
+unspsc7#52.12.16.02.00#Napkins#52.12.16.00.00
+unspsc7#52.12.16.03.00#Table runners#52.12.16.00.00
+unspsc7#52.12.16.04.00#Table cloths#52.12.16.00.00
+unspsc7#52.12.16.05.00#Domestic oven mits or pot holders#52.12.16.00.00
+unspsc7#52.12.16.06.00#Place mats#52.12.16.00.00
+unspsc7#52.12.16.07.00#Table skirts#52.12.16.00.00
+unspsc7#52.12.17.00.00#Towels#52.12.00.00.00
+unspsc7#52.12.17.01.00#Bath towels#52.12.17.00.00
+unspsc7#52.12.17.02.00#Beach towels#52.12.17.00.00
+unspsc7#52.12.17.03.00#Wash cloths#52.12.17.00.00
+unspsc7#52.12.17.04.00#Hand towels#52.12.17.00.00
+unspsc7#52.13.00.00.00#Window treatments#52.00.00.00.00
+unspsc7#52.13.15.00.00#Curtains and draperies#52.13.00.00.00
+unspsc7#52.13.15.01.00#Curtains#52.13.15.00.00
+unspsc7#52.13.15.03.00#Draperies#52.13.15.00.00
+unspsc7#52.13.16.00.00#Blinds and shades#52.13.00.00.00
+unspsc7#52.13.16.01.00#Venetian blinds#52.13.16.00.00
+unspsc7#52.13.16.02.00#Roll up shades#52.13.16.00.00
+unspsc7#52.13.16.03.00#Interior shutters#52.13.16.00.00
+unspsc7#52.13.16.04.00#Vertical blinds#52.13.16.00.00
+unspsc7#52.13.17.00.00#Window treatment accessories and hardware#52.13.00.00.00
+unspsc7#52.13.17.01.00#Valances#52.13.17.00.00
+unspsc7#52.13.17.02.00#Curtain rods#52.13.17.00.00
+unspsc7#52.13.17.03.00#Rod finials#52.13.17.00.00
+unspsc7#52.13.17.04.00#Curtain rings or clips#52.13.17.00.00
+unspsc7#52.14.00.00.00#Domestic appliances#52.00.00.00.00
+unspsc7#52.14.15.00.00#Domestic kitchen appliances#52.14.00.00.00
+unspsc7#52.14.15.01.00#Domestic refrigerators#52.14.15.00.00
+unspsc7#52.14.15.02.00#Domestic microwave ovens#52.14.15.00.00
+unspsc7#52.14.15.03.00#Domestic garbage disposals#52.14.15.00.00
+unspsc7#52.14.15.04.00#Domestic ranges#52.14.15.00.00
+unspsc7#52.14.15.05.00#Domestic dish washers#52.14.15.00.00
+unspsc7#52.14.15.06.00#Domestic freezers#52.14.15.00.00
+unspsc7#52.14.15.07.00#Domestic upright freezers#52.14.15.00.00
+unspsc7#52.14.15.08.00#Domestic chest freezers#52.14.15.00.00
+unspsc7#52.14.15.09.00#Domestic combination refrigerator freezers#52.14.15.00.00
+unspsc7#52.14.15.10.00#Domestic portable air conditioners#52.14.15.00.00
+unspsc7#52.14.15.11.00#Domestic juicers#52.14.15.00.00
+unspsc7#52.14.15.12.00#Domestic waffle irons#52.14.15.00.00
+unspsc7#52.14.15.13.00#Domestic electric can openers#52.14.15.00.00
+unspsc7#52.14.15.14.00#Domestic food processors#52.14.15.00.00
+unspsc7#52.14.15.15.00#Domestic trash compactors#52.14.15.00.00
+unspsc7#52.14.15.16.00#Domestic deep fryers#52.14.15.00.00
+unspsc7#52.14.15.17.00#Domestic popcorn poppers#52.14.15.00.00
+unspsc7#52.14.15.18.00#Domestic bread making machines#52.14.15.00.00
+unspsc7#52.14.15.19.00#Domestic convectional ovens#52.14.15.00.00
+unspsc7#52.14.15.20.00#Domestic mixers#52.14.15.00.00
+unspsc7#52.14.15.21.00#Domestic toaster ovens#52.14.15.00.00
+unspsc7#52.14.15.22.00#Domestic toasters#52.14.15.00.00
+unspsc7#52.14.15.23.00#Domestic electrical kettles#52.14.15.00.00
+unspsc7#52.14.15.24.00#Domestic blenders#52.14.15.00.00
+unspsc7#52.14.15.25.00#Domestic hot plates#52.14.15.00.00
+unspsc7#52.14.15.26.00#Domestic coffee makers#52.14.15.00.00
+unspsc7#52.14.15.27.00#Domestic electric knives#52.14.15.00.00
+unspsc7#52.14.15.28.00#Domestic electric woks#52.14.15.00.00
+unspsc7#52.14.15.29.00#Domestic coffee grinders#52.14.15.00.00
+unspsc7#52.14.15.30.00#Parts of dishwashing machines#52.14.15.00.00
+unspsc7#52.14.15.31.00#Domestic food choppers#52.14.15.00.00
+unspsc7#52.14.15.32.00#Domestic electric skillets#52.14.15.00.00
+unspsc7#52.14.15.33.00#Domestic electric griddles#52.14.15.00.00
+unspsc7#52.14.15.34.00#Domestic electric sandwich maker#52.14.15.00.00
+unspsc7#52.14.15.35.00#Domestic indoor electric grills#52.14.15.00.00
+unspsc7#52.14.15.36.00#Domestic pizelle or cookie maker#52.14.15.00.00
+unspsc7#52.14.15.37.00#Domestic crock pot#52.14.15.00.00
+unspsc7#52.14.16.00.00#Domestic laundry appliances and supplies#52.14.00.00.00
+unspsc7#52.14.16.01.00#Domestic clothes washers#52.14.16.00.00
+unspsc7#52.14.16.02.00#Domestic tumble dryers#52.14.16.00.00
+unspsc7#52.14.16.03.00#Domestic clothing irons#52.14.16.00.00
+unspsc7#52.14.16.04.00#Footwear dryers#52.14.16.00.00
+unspsc7#52.14.16.05.00#Laundry hampers#52.14.16.00.00
+unspsc7#52.14.16.06.00#Laundry baskets#52.14.16.00.00
+unspsc7#52.14.17.00.00#Domestic bath appliances#52.14.00.00.00
+unspsc7#52.14.17.01.00#Domestic electric toothbrushes#52.14.17.00.00
+unspsc7#52.14.17.03.00#Domestic hair dryers#52.14.17.00.00
+unspsc7#52.14.17.04.00#Domestic electric razors#52.14.17.00.00
+unspsc7#52.14.17.05.00#Parts of shavers or hair removers#52.14.17.00.00
+unspsc7#52.14.17.06.00#Nail dryers#52.14.17.00.00
+unspsc7#52.14.18.00.00#Other domestic household appliances#52.14.00.00.00
+unspsc7#52.14.18.01.00#Domestic sewing machines#52.14.18.00.00
+unspsc7#52.14.18.02.00#Domestic space heaters#52.14.18.00.00
+unspsc7#52.14.18.03.00#Domestic electric blankets#52.14.18.00.00
+unspsc7#52.15.00.00.00#Domestic kitchenware#52.00.00.00.00
+unspsc7#52.15.15.00.00#Domestic disposable kitchenware#52.15.00.00.00
+unspsc7#52.15.15.01.00#Domestic disposable cookware#52.15.15.00.00
+unspsc7#52.15.15.02.00#Domestic disposable dishes#52.15.15.00.00
+unspsc7#52.15.15.03.00#Domestic disposable flatware#52.15.15.00.00
+unspsc7#52.15.15.04.00#Domestic disposable cups or glasses or lids#52.15.15.00.00
+unspsc7#52.15.15.05.00#Domestic disposable stirrers#52.15.15.00.00
+unspsc7#52.15.15.06.00#Domestic disposable food containers#52.15.15.00.00
+unspsc7#52.15.15.07.00#Domestic disposable drinking straws#52.15.15.00.00
+unspsc7#52.15.16.00.00#Domestic kitchen tools and utensils#52.15.00.00.00
+unspsc7#52.15.16.01.00#Domestic rolling pins#52.15.16.00.00
+unspsc7#52.15.16.02.00#Domestic mixing bowls#52.15.16.00.00
+unspsc7#52.15.16.03.00#Domestic graters#52.15.16.00.00
+unspsc7#52.15.16.04.00#Domestic strainers or colanders#52.15.16.00.00
+unspsc7#52.15.16.05.00#Domestic can or bottle openers#52.15.16.00.00
+unspsc7#52.15.16.06.00#Domestic cutting boards#52.15.16.00.00
+unspsc7#52.15.16.07.00#Domestic measuring cups#52.15.16.00.00
+unspsc7#52.15.16.08.00#Basters or basting brushes#52.15.16.00.00
+unspsc7#52.15.16.09.00#Vegetable peeler#52.15.16.00.00
+unspsc7#52.15.16.10.00#Cookie cutters#52.15.16.00.00
+unspsc7#52.15.16.11.00#Domestic kitchen tongs#52.15.16.00.00
+unspsc7#52.15.16.12.00#Domestic kitchen wire whips#52.15.16.00.00
+unspsc7#52.15.16.13.00#Domestic food scrapers#52.15.16.00.00
+unspsc7#52.15.16.14.00#Domestic cooling racks#52.15.16.00.00
+unspsc7#52.15.16.15.00#Domestic pizza cutters#52.15.16.00.00
+unspsc7#52.15.16.16.00#Domestic kitchen spatulas#52.15.16.00.00
+unspsc7#52.15.16.17.00#Domestic wooden spoons#52.15.16.00.00
+unspsc7#52.15.16.18.00#Domestic wooden oven paddle#52.15.16.00.00
+unspsc7#52.15.16.19.00#Domestic pastry blender#52.15.16.00.00
+unspsc7#52.15.16.20.00#Domestic sifter#52.15.16.00.00
+unspsc7#52.15.16.21.00#Domestic cookie stampers#52.15.16.00.00
+unspsc7#52.15.16.22.00#Domestic pastry decorating gun#52.15.16.00.00
+unspsc7#52.15.16.23.00#Domestic cookie press#52.15.16.00.00
+unspsc7#52.15.16.24.00#Domestic knife sharpeners#52.15.16.00.00
+unspsc7#52.15.16.25.00#Domestic biscuit cutters#52.15.16.00.00
+unspsc7#52.15.16.26.00#Domestic mandolin#52.15.16.00.00
+unspsc7#52.15.16.27.00#Domestic garlic press#52.15.16.00.00
+unspsc7#52.15.16.28.00#Domestic egg slicer#52.15.16.00.00
+unspsc7#52.15.16.29.00#Domestic egg separator#52.15.16.00.00
+unspsc7#52.15.16.30.00#Domestic cheese slicer#52.15.16.00.00
+unspsc7#52.15.16.31.00#Domestic food mill#52.15.16.00.00
+unspsc7#52.15.16.32.00#Domestic kitchen funnels#52.15.16.00.00
+unspsc7#52.15.16.33.00#Domestic garnishing tools#52.15.16.00.00
+unspsc7#52.15.16.34.00#Domestic apple corer#52.15.16.00.00
+unspsc7#52.15.16.35.00#Domestic melon or butter baller#52.15.16.00.00
+unspsc7#52.15.16.36.00#Domestic food scoops#52.15.16.00.00
+unspsc7#52.15.16.37.00#Domestic pumpkin carver#52.15.16.00.00
+unspsc7#52.15.16.38.00#Domestic vegetable brush#52.15.16.00.00
+unspsc7#52.15.16.39.00#Domestic egg beater#52.15.16.00.00
+unspsc7#52.15.16.40.00#Domestic pasta drying rack#52.15.16.00.00
+unspsc7#52.15.16.41.00#Domestic whipped cream maker#52.15.16.00.00
+unspsc7#52.15.16.42.00#Domestic dough press#52.15.16.00.00
+unspsc7#52.15.16.43.00#Domestic ravioli maker#52.15.16.00.00
+unspsc7#52.15.16.44.00#Domestic mist sprayer#52.15.16.00.00
+unspsc7#52.15.16.45.00#Domestic pastry brush#52.15.16.00.00
+unspsc7#52.15.16.46.00#Domestic kitchen or diet scales#52.15.16.00.00
+unspsc7#52.15.16.47.00#Domestic kitchen timers#52.15.16.00.00
+unspsc7#52.15.16.48.00#Domestic kitchen or food thermometers#52.15.16.00.00
+unspsc7#52.15.16.49.00#Domestic bread slicing guide#52.15.16.00.00
+unspsc7#52.15.16.50.00#Domestic drain boards#52.15.16.00.00
+unspsc7#52.15.17.00.00#Domestic flatware and cutlery#52.15.00.00.00
+unspsc7#52.15.17.01.00#Domestic serving utensils#52.15.17.00.00
+unspsc7#52.15.17.02.00#Domestic knives#52.15.17.00.00
+unspsc7#52.15.17.03.00#Domestic forks#52.15.17.00.00
+unspsc7#52.15.17.04.00#Domestic spoons#52.15.17.00.00
+unspsc7#52.15.17.05.00#Spoon rests#52.15.17.00.00
+unspsc7#52.15.17.06.00#Chopsticks#52.15.17.00.00
+unspsc7#52.15.18.00.00#Domestic cookware#52.15.00.00.00
+unspsc7#52.15.18.01.00#Domestic dutch ovens#52.15.18.00.00
+unspsc7#52.15.18.02.00#Domestic frying pans#52.15.18.00.00
+unspsc7#52.15.18.03.00#Domestic saucepans#52.15.18.00.00
+unspsc7#52.15.18.04.00#Domestic kettles#52.15.18.00.00
+unspsc7#52.15.18.05.00#Domestic woks#52.15.18.00.00
+unspsc7#52.15.18.06.00#Domestic steamers#52.15.18.00.00
+unspsc7#52.15.18.07.00#Domestic stock pots#52.15.18.00.00
+unspsc7#52.15.18.08.00#Domestic pressure cookers#52.15.18.00.00
+unspsc7#52.15.18.09.00#Domestic saute pans#52.15.18.00.00
+unspsc7#52.15.18.10.00#Domestic chafing dishes#52.15.18.00.00
+unspsc7#52.15.18.11.00#Domestic griddles#52.15.18.00.00
+unspsc7#52.15.18.12.00#Domestic double boilers#52.15.18.00.00
+unspsc7#52.15.18.13.00#Domestic splatter shield#52.15.18.00.00
+unspsc7#52.15.19.00.00#Domestic bakeware#52.15.00.00.00
+unspsc7#52.15.19.01.00#Domestic muffin pans#52.15.19.00.00
+unspsc7#52.15.19.02.00#Domestic baking pans#52.15.19.00.00
+unspsc7#52.15.19.03.00#Domestic cake or pie pans#52.15.19.00.00
+unspsc7#52.15.19.04.00#Domestic roasting pans#52.15.19.00.00
+unspsc7#52.15.19.05.00#Domestic baking sheets#52.15.19.00.00
+unspsc7#52.15.19.06.00#Domestic broiling pans#52.15.19.00.00
+unspsc7#52.15.19.07.00#Domestic baking molds#52.15.19.00.00
+unspsc7#52.15.19.08.00#Domestic pizza pans#52.15.19.00.00
+unspsc7#52.15.19.09.00#Domestic tortilla bakers#52.15.19.00.00
+unspsc7#52.15.20.00.00#Domestic dishes and servingware and storage containers#52.15.00.00.00
+unspsc7#52.15.20.01.00#Domestic pitchers#52.15.20.00.00
+unspsc7#52.15.20.02.00#Domestic food storage containers#52.15.20.00.00
+unspsc7#52.15.20.03.00#Domestic punch bowls#52.15.20.00.00
+unspsc7#52.15.20.04.00#Domestic plates#52.15.20.00.00
+unspsc7#52.15.20.05.00#Domestic saucers#52.15.20.00.00
+unspsc7#52.15.20.06.00#Domestic trays or platters#52.15.20.00.00
+unspsc7#52.15.20.07.00#Domestic serving bowls#52.15.20.00.00
+unspsc7#52.15.20.08.00#Domestic tea or coffee pots#52.15.20.00.00
+unspsc7#52.15.20.09.00#Domestic soup or salad bowls#52.15.20.00.00
+unspsc7#52.15.20.10.00#Domestic vacuum flasks#52.15.20.00.00
+unspsc7#52.15.20.11.00#Inners for vaccum flasks#52.15.20.00.00
+unspsc7#52.15.20.12.00#Ice trays#52.15.20.00.00
+unspsc7#52.15.20.13.00#Spice or salt or pepper shakers#52.15.20.00.00
+unspsc7#52.15.20.14.00#Carafe sets#52.15.20.00.00
+unspsc7#52.15.20.15.00#Domestic cake plate with dome#52.15.20.00.00
+unspsc7#52.15.21.00.00#Domestic drinking utensils#52.15.00.00.00
+unspsc7#52.15.21.01.00#Domestic coffee or tea cups#52.15.21.00.00
+unspsc7#52.15.21.02.00#Domestic drinking glasses#52.15.21.00.00
+unspsc7#52.15.21.03.00#Domestic mugs#52.15.21.00.00
+unspsc7#52.15.21.04.00#Domestic stemware#52.15.21.00.00
+unspsc7#52.15.22.00.00#Dishwashing and dish storage accessories#52.15.00.00.00
+unspsc7#52.15.22.01.00#Shelf liner#52.15.22.00.00
+unspsc7#52.15.22.02.00#Dish drainer#52.15.22.00.00
+unspsc7#52.15.22.03.00#Soap dispensing brush#52.15.22.00.00
+unspsc7#52.16.00.00.00#Consumer electronics#52.00.00.00.00
+unspsc7#52.16.15.00.00#Audio and visual equipment#52.16.00.00.00
+unspsc7#52.16.15.01.00#Compact disc players#52.16.15.00.00
+unspsc7#52.16.15.02.00#Cassette players or recorders#52.16.15.00.00
+unspsc7#52.16.15.03.00#Digital video disc players#52.16.15.00.00
+unspsc7#52.16.15.04.00#Video cassette recorders#52.16.15.00.00
+unspsc7#52.16.15.05.00#Televisions#52.16.15.00.00
+unspsc7#52.16.15.06.00#Headphones#52.16.15.00.00
+unspsc7#52.16.15.07.00#Clock radios#52.16.15.00.00
+unspsc7#52.16.15.08.00#Laser disc players#52.16.15.00.00
+unspsc7#52.16.15.09.00#Portable stereo systems#52.16.15.00.00
+unspsc7#52.16.15.10.00#Home stereo systems#52.16.15.00.00
+unspsc7#52.16.15.11.00#Radios#52.16.15.00.00
+unspsc7#52.16.15.12.00#Speakers#52.16.15.00.00
+unspsc7#52.16.15.13.00#Combination television video cassette recorders#52.16.15.00.00
+unspsc7#52.16.15.14.00#Headphones#52.16.15.00.00
+unspsc7#52.16.15.15.00#Compact disk players or recorders#52.16.15.00.00
+unspsc7#52.16.15.16.00#Digital video disk players or recorders#52.16.15.00.00
+unspsc7#52.16.15.17.00#Equalizers#52.16.15.00.00
+unspsc7#52.16.15.18.00#Global positioning system receivers#52.16.15.00.00
+unspsc7#52.16.15.19.00#Headphones#52.16.15.00.00
+unspsc7#52.16.15.20.00#Microphones#52.16.15.00.00
+unspsc7#52.16.15.21.00#Multimedia receivers#52.16.15.00.00
+unspsc7#52.16.15.22.00#Radio frequency scanners#52.16.15.00.00
+unspsc7#52.16.15.23.00#Radio frequency transmittersreceivers#52.16.15.00.00
+unspsc7#52.16.15.24.00#Radio receivers#52.16.15.00.00
+unspsc7#52.16.15.25.00#Remote control#52.16.15.00.00
+unspsc7#52.16.15.26.00#Satellite receivers#52.16.15.00.00
+unspsc7#52.16.15.27.00#Subwoofers#52.16.15.00.00
+unspsc7#52.16.15.28.00#Televisions#52.16.15.00.00
+unspsc7#52.16.15.29.00#Video cassette players or recorders#52.16.15.00.00
+unspsc7#52.16.15.30.00#Video monitors#52.16.15.00.00
+unspsc7#52.16.15.31.00#Radio phonographs#52.16.15.00.00
+unspsc7#52.16.15.32.00#Karaoke systems#52.16.15.00.00
+unspsc7#52.16.15.33.00#Megaphones#52.16.15.00.00
+unspsc7#52.16.15.34.00#Integrated circut IC chip recorder#52.16.15.00.00
+unspsc7#52.16.15.35.00#Digital voice recorders#52.16.15.00.00
+unspsc7#52.16.15.36.00#Minidisc players or recorders#52.16.15.00.00
+unspsc7#52.16.16.00.00#Audio visual equipment accessories#52.16.00.00.00
+unspsc7#52.16.16.01.00#Cassette storage#52.16.16.00.00
+unspsc7#52.16.16.02.00#Audio or video head cleaners#52.16.16.00.00
+unspsc7#52.17.00.00.00#Domestic wall treatments#52.00.00.00.00
+unspsc7#52.17.10.00.00#Bathroom wall treatments#52.17.00.00.00
+unspsc7#52.17.10.01.00#Hanging toiletry organizer or shelf#52.17.10.00.00
+unspsc7#53.00.00.00.00#Apparel and Luggage and Personal Care Products#53.00.00.00.00
+unspsc7#53.10.00.00.00#Clothing#53.00.00.00.00
+unspsc7#53.10.15.00.00#Slacks and trousers and shorts#53.10.00.00.00
+unspsc7#53.10.15.01.00#Boys slacks or trousers or shorts#53.10.15.00.00
+unspsc7#53.10.15.02.00#Mens slacks or trousers or shorts#53.10.15.00.00
+unspsc7#53.10.15.03.00#Girls slacks or trousers or shorts#53.10.15.00.00
+unspsc7#53.10.15.04.00#Womens slacks or trousers or shorts#53.10.15.00.00
+unspsc7#53.10.15.05.00#Infants slacks or trousers or shorts#53.10.15.00.00
+unspsc7#53.10.16.00.00#Shirts and blouses#53.10.00.00.00
+unspsc7#53.10.16.01.00#Boys shirts#53.10.16.00.00
+unspsc7#53.10.16.02.00#Mens shirts#53.10.16.00.00
+unspsc7#53.10.16.03.00#Girls shirts or blouses#53.10.16.00.00
+unspsc7#53.10.16.04.00#Womens shirts or blouses#53.10.16.00.00
+unspsc7#53.10.16.05.00#Infants shirts or blouses#53.10.16.00.00
+unspsc7#53.10.17.00.00#Sweaters#53.10.00.00.00
+unspsc7#53.10.17.01.00#Boys sweaters#53.10.17.00.00
+unspsc7#53.10.17.02.00#Mens sweaters#53.10.17.00.00
+unspsc7#53.10.17.03.00#Girls sweaters#53.10.17.00.00
+unspsc7#53.10.17.04.00#Womens sweaters#53.10.17.00.00
+unspsc7#53.10.17.05.00#Infants sweaters#53.10.17.00.00
+unspsc7#53.10.18.00.00#Coats and jackets#53.10.00.00.00
+unspsc7#53.10.18.01.00#Boys coats or jackets#53.10.18.00.00
+unspsc7#53.10.18.02.00#Mens coats or jackets#53.10.18.00.00
+unspsc7#53.10.18.03.00#Girls coats or jackets#53.10.18.00.00
+unspsc7#53.10.18.04.00#Womens coats or jackets#53.10.18.00.00
+unspsc7#53.10.18.05.00#Infants coats or jackets#53.10.18.00.00
+unspsc7#53.10.19.00.00#Suits#53.10.00.00.00
+unspsc7#53.10.19.01.00#Boys suits#53.10.19.00.00
+unspsc7#53.10.19.02.00#Mens suits#53.10.19.00.00
+unspsc7#53.10.19.03.00#Girls suits#53.10.19.00.00
+unspsc7#53.10.19.04.00#Womens suits#53.10.19.00.00
+unspsc7#53.10.19.05.00#Infants suits#53.10.19.00.00
+unspsc7#53.10.20.00.00#Dresses and skirts and saris and kimonos#53.10.00.00.00
+unspsc7#53.10.20.01.00#Girls dresses or skirts or saris or kimonos#53.10.20.00.00
+unspsc7#53.10.20.02.00#Womens dresses or skirts or saris or kimonos#53.10.20.00.00
+unspsc7#53.10.20.03.00#Infants dresses or skirts or saris or kimonos#53.10.20.00.00
+unspsc7#53.10.21.00.00#Overalls and coveralls#53.10.00.00.00
+unspsc7#53.10.21.01.00#Boys overalls or coveralls#53.10.21.00.00
+unspsc7#53.10.21.02.00#Mens overalls or coveralls#53.10.21.00.00
+unspsc7#53.10.21.03.00#Girls overalls or coveralls#53.10.21.00.00
+unspsc7#53.10.21.04.00#Womens overalls or coveralls#53.10.21.00.00
+unspsc7#53.10.21.05.00#Infants overalls or coveralls#53.10.21.00.00
+unspsc7#53.10.22.00.00#Folkloric clothing#53.10.00.00.00
+unspsc7#53.10.22.01.00#Boys folkloric clothing#53.10.22.00.00
+unspsc7#53.10.22.02.00#Mens folkloric clothing#53.10.22.00.00
+unspsc7#53.10.22.03.00#Girls folkloric clothing#53.10.22.00.00
+unspsc7#53.10.22.04.00#Womens folkloric clothing#53.10.22.00.00
+unspsc7#53.10.22.05.00#Infants folkloric clothing#53.10.22.00.00
+unspsc7#53.10.23.00.00#Undergarments#53.10.00.00.00
+unspsc7#53.10.23.01.00#Undershirts#53.10.23.00.00
+unspsc7#53.10.23.02.00#Slips#53.10.23.00.00
+unspsc7#53.10.23.03.00#Underpants#53.10.23.00.00
+unspsc7#53.10.23.04.00#Brassieres#53.10.23.00.00
+unspsc7#53.10.23.05.00#Infant diapers#53.10.23.00.00
+unspsc7#53.10.23.06.00#Adult diapers#53.10.23.00.00
+unspsc7#53.10.23.07.00#Body shaping garments#53.10.23.00.00
+unspsc7#53.10.24.00.00#Hosiery#53.10.00.00.00
+unspsc7#53.10.24.01.00#Stockings#53.10.24.00.00
+unspsc7#53.10.24.02.00#Socks#53.10.24.00.00
+unspsc7#53.10.24.03.00#Panty hose#53.10.24.00.00
+unspsc7#53.10.24.04.00#Tights#53.10.24.00.00
+unspsc7#53.10.25.00.00#Clothing accessories#53.10.00.00.00
+unspsc7#53.10.25.01.00#Belts or suspenders#53.10.25.00.00
+unspsc7#53.10.25.02.00#Ties or scarves or mufflers#53.10.25.00.00
+unspsc7#53.10.25.03.00#Hats#53.10.25.00.00
+unspsc7#53.10.25.04.00#Gloves or mittens#53.10.25.00.00
+unspsc7#53.10.25.05.00#Umbrellas#53.10.25.00.00
+unspsc7#53.10.25.06.00#Sweat bands#53.10.25.00.00
+unspsc7#53.10.25.07.00#Clothing hangers#53.10.25.00.00
+unspsc7#53.10.25.08.00#Armbands#53.10.25.00.00
+unspsc7#53.10.25.09.00#Garters#53.10.25.00.00
+unspsc7#53.10.25.10.00#Tassles#53.10.25.00.00
+unspsc7#53.10.25.11.00#Bandannas#53.10.25.00.00
+unspsc7#53.10.25.12.00#Handkerchiefs#53.10.25.00.00
+unspsc7#53.10.25.13.00#Headbands#53.10.25.00.00
+unspsc7#53.10.25.14.00#Pocket protectors#53.10.25.00.00
+unspsc7#53.10.25.15.00#Button covers#53.10.25.00.00
+unspsc7#53.10.26.00.00#Nightwear#53.10.00.00.00
+unspsc7#53.10.26.01.00#Boys pajamas or nightshirts#53.10.26.00.00
+unspsc7#53.10.26.02.00#Mens pajamas or nightshirts#53.10.26.00.00
+unspsc7#53.10.26.03.00#Girls pajamas or nightshirts#53.10.26.00.00
+unspsc7#53.10.26.04.00#Womens pajamas or nightshirts#53.10.26.00.00
+unspsc7#53.10.26.05.00#Infants pajamas or nightshirts#53.10.26.00.00
+unspsc7#53.10.26.06.00#Bath robes#53.10.26.00.00
+unspsc7#53.10.27.00.00#Uniforms#53.10.00.00.00
+unspsc7#53.10.27.01.00#Military uniforms#53.10.27.00.00
+unspsc7#53.10.27.02.00#Customs uniforms#53.10.27.00.00
+unspsc7#53.10.27.03.00#Police uniforms#53.10.27.00.00
+unspsc7#53.10.28.00.00#Swimwear#53.10.00.00.00
+unspsc7#53.10.28.01.00#Mens swimwear#53.10.28.00.00
+unspsc7#53.10.28.02.00#Womens swimwear#53.10.28.00.00
+unspsc7#53.10.28.03.00#Boys swimwear#53.10.28.00.00
+unspsc7#53.10.28.04.00#Girls swimwear#53.10.28.00.00
+unspsc7#53.10.28.05.00#Infants swimwear#53.10.28.00.00
+unspsc7#53.10.29.00.00#Athletic wear#53.10.00.00.00
+unspsc7#53.10.29.01.00#Womens athletic wear#53.10.29.00.00
+unspsc7#53.10.29.02.00#Mens athletic wear#53.10.29.00.00
+unspsc7#53.10.29.03.00#Boys athletic wear#53.10.29.00.00
+unspsc7#53.10.29.04.00#Girls athletic wear#53.10.29.00.00
+unspsc7#53.11.00.00.00#Footwear#53.00.00.00.00
+unspsc7#53.11.15.00.00#Boots#53.11.00.00.00
+unspsc7#53.11.15.01.00#Mens boots#53.11.15.00.00
+unspsc7#53.11.15.02.00#Womens boots#53.11.15.00.00
+unspsc7#53.11.15.03.00#Boys boots#53.11.15.00.00
+unspsc7#53.11.15.04.00#Girls boots#53.11.15.00.00
+unspsc7#53.11.15.05.00#Infants boots#53.11.15.00.00
+unspsc7#53.11.16.00.00#Shoes#53.11.00.00.00
+unspsc7#53.11.16.01.00#Mens shoes#53.11.16.00.00
+unspsc7#53.11.16.02.00#Womens shoes#53.11.16.00.00
+unspsc7#53.11.16.03.00#Boys shoes#53.11.16.00.00
+unspsc7#53.11.16.04.00#Girls shoes#53.11.16.00.00
+unspsc7#53.11.16.05.00#Infants shoes#53.11.16.00.00
+unspsc7#53.11.17.00.00#Slippers#53.11.00.00.00
+unspsc7#53.11.17.01.00#Mens slippers#53.11.17.00.00
+unspsc7#53.11.17.02.00#Womens slippers#53.11.17.00.00
+unspsc7#53.11.17.03.00#Boys slippers#53.11.17.00.00
+unspsc7#53.11.17.04.00#Girls slippers#53.11.17.00.00
+unspsc7#53.11.17.05.00#Infants slippers#53.11.17.00.00
+unspsc7#53.11.18.00.00#Sandals#53.11.00.00.00
+unspsc7#53.11.18.01.00#Mens sandals#53.11.18.00.00
+unspsc7#53.11.18.02.00#Womens sandals#53.11.18.00.00
+unspsc7#53.11.18.03.00#Boys sandals#53.11.18.00.00
+unspsc7#53.11.18.04.00#Girls sandals#53.11.18.00.00
+unspsc7#53.11.18.05.00#Infants sandals#53.11.18.00.00
+unspsc7#53.11.19.00.00#Athletic footwear#53.11.00.00.00
+unspsc7#53.11.19.01.00#Mens athletic footwear#53.11.19.00.00
+unspsc7#53.11.19.02.00#Womens athletic footwear#53.11.19.00.00
+unspsc7#53.11.19.03.00#Boys athletic footwear#53.11.19.00.00
+unspsc7#53.11.19.04.00#Girls athletic footwear#53.11.19.00.00
+unspsc7#53.11.19.05.00#Infants athletic footwear#53.11.19.00.00
+unspsc7#53.11.20.00.00#Shoe accessories#53.11.00.00.00
+unspsc7#53.11.20.01.00#Shoehorns#53.11.20.00.00
+unspsc7#53.11.20.02.00#Shoelaces#53.11.20.00.00
+unspsc7#53.12.00.00.00#Luggage and handbags and packs and cases#53.00.00.00.00
+unspsc7#53.12.15.00.00#Luggage#53.12.00.00.00
+unspsc7#53.12.15.01.00#Garment bags#53.12.15.00.00
+unspsc7#53.12.15.02.00#Luggage sets#53.12.15.00.00
+unspsc7#53.12.15.03.00#Individual luggage pieces#53.12.15.00.00
+unspsc7#53.12.16.00.00#Purses and handbags and bags#53.12.00.00.00
+unspsc7#53.12.16.01.00#Handbags or purses#53.12.16.00.00
+unspsc7#53.12.16.02.00#Duffle bags#53.12.16.00.00
+unspsc7#53.12.16.03.00#Backpacks#53.12.16.00.00
+unspsc7#53.12.16.04.00#Eyeglass cases#53.12.16.00.00
+unspsc7#53.12.16.05.00#Coin purses#53.12.16.00.00
+unspsc7#53.12.16.06.00#Lipstick cases#53.12.16.00.00
+unspsc7#53.12.16.07.00#Cigar case#53.12.16.00.00
+unspsc7#53.12.17.00.00#Business cases#53.12.00.00.00
+unspsc7#53.12.17.01.00#Briefcases#53.12.17.00.00
+unspsc7#53.12.17.02.00#Attaches#53.12.17.00.00
+unspsc7#53.12.17.04.00#Portfolios#53.12.17.00.00
+unspsc7#53.12.17.05.00#Equipment cases#53.12.17.00.00
+unspsc7#53.12.17.06.00#Computer bags#53.12.17.00.00
+unspsc7#53.12.18.00.00#Travel kits and accessories#53.12.00.00.00
+unspsc7#53.12.18.01.00#Travel kits#53.12.18.00.00
+unspsc7#53.12.18.02.00#Travel carts#53.12.18.00.00
+unspsc7#53.12.18.03.00#Garment brushes#53.12.18.00.00
+unspsc7#53.12.18.04.00#Makeup or manicure cases#53.12.18.00.00
+unspsc7#53.13.00.00.00#Personal care products#53.00.00.00.00
+unspsc7#53.13.15.00.00#Dental#53.13.00.00.00
+unspsc7#53.13.15.01.00#Mouthwash#53.13.15.00.00
+unspsc7#53.13.15.02.00#Toothpaste#53.13.15.00.00
+unspsc7#53.13.15.03.00#Toothbrushes#53.13.15.00.00
+unspsc7#53.13.15.04.00#Dental floss#53.13.15.00.00
+unspsc7#53.13.15.05.00#Infant soother or pacifier or dummy#53.13.15.00.00
+unspsc7#53.13.15.06.00#Dental kits#53.13.15.00.00
+unspsc7#53.13.15.07.00#Toothpicks#53.13.15.00.00
+unspsc7#53.13.15.08.00#Denture cleaning tablets#53.13.15.00.00
+unspsc7#53.13.16.00.00#Bath and body#53.13.00.00.00
+unspsc7#53.13.16.01.00#Shower caps#53.13.16.00.00
+unspsc7#53.13.16.02.00#Hair care supplies#53.13.16.00.00
+unspsc7#53.13.16.03.00#Razors#53.13.16.00.00
+unspsc7#53.13.16.04.00#Hair combs or brushes#53.13.16.00.00
+unspsc7#53.13.16.05.00#Vanity kits#53.13.16.00.00
+unspsc7#53.13.16.06.00#Deodorants#53.13.16.00.00
+unspsc7#53.13.16.07.00#Hand or body lotions#53.13.16.00.00
+unspsc7#53.13.16.08.00#Soaps#53.13.16.00.00
+unspsc7#53.13.16.09.00#Sun protection products#53.13.16.00.00
+unspsc7#53.13.16.10.00#Eye care supplies#53.13.16.00.00
+unspsc7#53.13.16.11.00#Shaving creams#53.13.16.00.00
+unspsc7#53.13.16.12.00#Bath gels#53.13.16.00.00
+unspsc7#53.13.16.13.00#Skin care products#53.13.16.00.00
+unspsc7#53.13.16.14.00#Foot care products#53.13.16.00.00
+unspsc7#53.13.16.15.00#Feminine hygiene products#53.13.16.00.00
+unspsc7#53.13.16.16.00#Para pharmaceutical creams or lotions#53.13.16.00.00
+unspsc7#53.13.16.17.00#Manicure implements#53.13.16.00.00
+unspsc7#53.13.16.18.00#Pedicure implements#53.13.16.00.00
+unspsc7#53.13.16.19.00#Cosmetics#53.13.16.00.00
+unspsc7#53.13.16.20.00#Perfumes or colognes or fragrances#53.13.16.00.00
+unspsc7#53.13.16.21.00#Nail clippers#53.13.16.00.00
+unspsc7#53.13.16.22.00#Condoms#53.13.16.00.00
+unspsc7#53.13.16.23.00#Hair removal or depilatory products#53.13.16.00.00
+unspsc7#53.13.16.24.00#Disposable personal wipes#53.13.16.00.00
+unspsc7#53.13.16.25.00#Hair or beard nets#53.13.16.00.00
+unspsc7#53.13.16.26.00#Hand sanitizer#53.13.16.00.00
+unspsc7#53.13.16.27.00#Hand cleaner#53.13.16.00.00
+unspsc7#53.13.16.28.00#Shampoos#53.13.16.00.00
+unspsc7#53.13.16.29.00#Makeup kits#53.13.16.00.00
+unspsc7#53.13.16.30.00#Lip balm#53.13.16.00.00
+unspsc7#53.13.16.31.00#Tattoos#53.13.16.00.00
+unspsc7#53.13.16.32.00#Hot rollers#53.13.16.00.00
+unspsc7#53.13.16.33.00#Barrettes#53.13.16.00.00
+unspsc7#53.13.16.34.00#Chemical protection products#53.13.16.00.00
+unspsc7#53.13.16.35.00#Shaving brushes#53.13.16.00.00
+unspsc7#53.13.17.00.00#Eyewear#53.13.00.00.00
+unspsc7#53.13.17.01.00#Optical glasses or spectacles#53.13.17.00.00
+unspsc7#53.13.17.02.00#Contact lenses#53.13.17.00.00
+unspsc7#53.13.17.03.00#Sunglasses#53.13.17.00.00
+unspsc7#53.14.00.00.00#Sewing supplies and accessories#53.00.00.00.00
+unspsc7#53.14.15.00.00#Sewing fasteners#53.14.00.00.00
+unspsc7#53.14.15.01.00#Straight pins#53.14.15.00.00
+unspsc7#53.14.15.02.00#Safety pins#53.14.15.00.00
+unspsc7#53.14.15.03.00#Zippers#53.14.15.00.00
+unspsc7#53.14.15.04.00#Buckles#53.14.15.00.00
+unspsc7#53.14.15.05.00#Buttons#53.14.15.00.00
+unspsc7#53.14.15.06.00#Snaps#53.14.15.00.00
+unspsc7#53.14.15.07.00#Clasps#53.14.15.00.00
+unspsc7#53.14.15.08.00#Garment rivet#53.14.15.00.00
+unspsc7#53.14.16.00.00#Miscellaneous sewing supplies#53.14.00.00.00
+unspsc7#53.14.16.01.00#Pin cushions#53.14.16.00.00
+unspsc7#53.14.16.02.00#Sewing kits#53.14.16.00.00
+unspsc7#53.14.16.03.00#Thimbles#53.14.16.00.00
+unspsc7#53.14.16.04.00#Sewing patterns#53.14.16.00.00
+unspsc7#53.14.16.05.00#Sewing needles#53.14.16.00.00
+unspsc7#53.14.16.06.00#Bobbins or bobbin holders#53.14.16.00.00
+unspsc7#53.14.16.07.00#Seam gauge#53.14.16.00.00
+unspsc7#53.14.16.08.00#Bodkin#53.14.16.00.00
+unspsc7#53.14.16.09.00#Loop turner#53.14.16.00.00
+unspsc7#53.14.16.10.00#Fabric or tailors chalk holders#53.14.16.00.00
+unspsc7#53.14.16.11.00#Fabric markers or fabric pencils or fabric chalk#53.14.16.00.00
+unspsc7#53.14.16.12.00#Serrated pattern tracing wheel#53.14.16.00.00
+unspsc7#53.14.16.13.00#Transfer paper#53.14.16.00.00
+unspsc7#53.14.16.14.00#Tapestry needles#53.14.16.00.00
+unspsc7#53.14.16.15.00#Weaving needles#53.14.16.00.00
+unspsc7#53.14.16.16.00#Looper looms#53.14.16.00.00
+unspsc7#53.14.16.17.00#Cotton jersey loops#53.14.16.00.00
+unspsc7#53.14.16.18.00#Needlepoint canvas#53.14.16.00.00
+unspsc7#53.14.16.19.00#Magnet wands#53.14.16.00.00
+unspsc7#53.14.16.20.00#Seam ripper#53.14.16.00.00
+unspsc7#53.14.16.21.00#Needle threader#53.14.16.00.00
+unspsc7#53.14.16.22.00#Dressmakers ruler#53.14.16.00.00
+unspsc7#53.14.16.23.00#Liquid thread lock or reinforcer#53.14.16.00.00
+unspsc7#53.14.16.24.00#Cross stitch fabric or needles#53.14.16.00.00
+unspsc7#53.14.16.25.00#Cross stitch designs#53.14.16.00.00
+unspsc7#53.14.16.26.00#Embroidery hoops#53.14.16.00.00
+unspsc7#53.14.16.27.00#Crochet hooks#53.14.16.00.00
+unspsc7#53.14.16.28.00#Quilters basting tools#53.14.16.00.00
+unspsc7#53.14.16.29.00#Quilters pins#53.14.16.00.00
+unspsc7#53.14.16.30.00#Pattern cutting mats or boards#53.14.16.00.00
+unspsc7#54.00.00.00.00#Timepieces and Jewelry and Gemstone Products#54.00.00.00.00
+unspsc7#54.10.00.00.00#Jewelry#54.00.00.00.00
+unspsc7#54.10.15.00.00#Fine jewelry#54.10.00.00.00
+unspsc7#54.10.15.01.00#Gold or silver or platinum chains#54.10.15.00.00
+unspsc7#54.10.15.02.00#Fine jewelry necklaces#54.10.15.00.00
+unspsc7#54.10.15.03.00#Fine jewelry rings#54.10.15.00.00
+unspsc7#54.10.15.04.00#Fine jewelry earrings#54.10.15.00.00
+unspsc7#54.10.15.05.00#Fine body jewelry#54.10.15.00.00
+unspsc7#54.10.15.06.00#Fine jewelry bracelets#54.10.15.00.00
+unspsc7#54.10.15.07.00#Tiaras#54.10.15.00.00
+unspsc7#54.10.16.00.00#Imitation jewelry#54.10.00.00.00
+unspsc7#54.10.16.01.00#Bracelets#54.10.16.00.00
+unspsc7#54.10.16.02.00#Necklaces#54.10.16.00.00
+unspsc7#54.10.16.03.00#Rings#54.10.16.00.00
+unspsc7#54.10.16.04.00#Earrings#54.10.16.00.00
+unspsc7#54.10.16.05.00#Body jewelry#54.10.16.00.00
+unspsc7#54.11.00.00.00#Timepieces#54.00.00.00.00
+unspsc7#54.11.15.00.00#Watches#54.11.00.00.00
+unspsc7#54.11.15.01.00#Wrist watches#54.11.15.00.00
+unspsc7#54.11.15.02.00#Pocket watches#54.11.15.00.00
+unspsc7#54.11.16.00.00#Clocks#54.11.00.00.00
+unspsc7#54.11.16.01.00#Wall clocks#54.11.16.00.00
+unspsc7#54.11.16.02.00#Mantel or table clocks#54.11.16.00.00
+unspsc7#54.11.16.03.00#Free standing clocks#54.11.16.00.00
+unspsc7#54.11.16.04.00#Hourglasses#54.11.16.00.00
+unspsc7#54.11.17.00.00#Watch or clock parts#54.11.00.00.00
+unspsc7#54.11.17.01.00#Watch or clock dials#54.11.17.00.00
+unspsc7#54.11.17.02.00#Watch or clock crystals#54.11.17.00.00
+unspsc7#54.11.17.03.00#Watch or clock plates or bridges#54.11.17.00.00
+unspsc7#54.11.17.04.00#Watch straps or bands or bracelets or fobs#54.11.17.00.00
+unspsc7#54.12.00.00.00#Gemstones#54.00.00.00.00
+unspsc7#54.12.15.00.00#Precious stones#54.12.00.00.00
+unspsc7#54.12.15.01.00#Diamond gemstones#54.12.15.00.00
+unspsc7#54.12.15.02.00#Emerald gemstones#54.12.15.00.00
+unspsc7#54.12.15.03.00#Ruby gemstones#54.12.15.00.00
+unspsc7#54.12.15.04.00#Sapphire gemstones#54.12.15.00.00
+unspsc7#54.12.16.00.00#Semi precious stones#54.12.00.00.00
+unspsc7#54.12.16.01.00#Garnet gemstones#54.12.16.00.00
+unspsc7#54.12.16.02.00#Jade gemstones#54.12.16.00.00
+unspsc7#54.12.16.03.00#Opal gemstones#54.12.16.00.00
+unspsc7#54.12.17.00.00#Pearls#54.12.00.00.00
+unspsc7#54.12.17.01.00#Cultured pearls#54.12.17.00.00
+unspsc7#54.12.17.02.00#Natural pearls#54.12.17.00.00
+unspsc7#54.12.18.00.00#Industrial precious and semi precious stones#54.12.00.00.00
+unspsc7#54.12.18.01.00#Industrial diamonds#54.12.18.00.00
+unspsc7#54.12.18.02.00#Industrial garnets#54.12.18.00.00
+unspsc7#55.00.00.00.00#Published Products#55.00.00.00.00
+unspsc7#55.10.00.00.00#Printed media#55.00.00.00.00
+unspsc7#55.10.15.00.00#Printed publications#55.10.00.00.00
+unspsc7#55.10.15.01.00#Charts or maps or atlases#55.10.15.00.00
+unspsc7#55.10.15.02.00#Directories#55.10.15.00.00
+unspsc7#55.10.15.03.00#Catalogs#55.10.15.00.00
+unspsc7#55.10.15.04.00#Newspapers#55.10.15.00.00
+unspsc7#55.10.15.05.00#Comic books#55.10.15.00.00
+unspsc7#55.10.15.06.00#Magazines#55.10.15.00.00
+unspsc7#55.10.15.07.00#Picture or drawing or coloring books for children#55.10.15.00.00
+unspsc7#55.10.15.08.00#Encyclopedias#55.10.15.00.00
+unspsc7#55.10.15.09.00#Educational or vocational textbooks#55.10.15.00.00
+unspsc7#55.10.15.10.00#Leisure reading books#55.10.15.00.00
+unspsc7#55.10.15.11.00#Reference books#55.10.15.00.00
+unspsc7#55.10.15.12.00#Dictionaries#55.10.15.00.00
+unspsc7#55.10.15.13.00#Trading cards#55.10.15.00.00
+unspsc7#55.10.15.14.00#Sheet music#55.10.15.00.00
+unspsc7#55.10.15.15.00#Promotional material or annual reports#55.10.15.00.00
+unspsc7#55.10.15.16.00#Operation and instruction manuals#55.10.15.00.00
+unspsc7#55.10.15.17.00#Clearance and dimensional drawings#55.10.15.00.00
+unspsc7#55.10.15.18.00#Technical diagrams or drawings#55.10.15.00.00
+unspsc7#55.10.15.19.00#Periodicals#55.10.15.00.00
+unspsc7#55.10.15.20.00#Instruction sheets or booklets#55.10.15.00.00
+unspsc7#55.10.15.21.00#Owner or user manuals#55.10.15.00.00
+unspsc7#55.10.15.22.00#Terrestrial or celestial globes#55.10.15.00.00
+unspsc7#55.10.15.23.00#Exercise books#55.10.15.00.00
+unspsc7#55.10.15.24.00#Reference books#55.10.15.00.00
+unspsc7#55.10.15.25.00#Encyclopedias#55.10.15.00.00
+unspsc7#55.10.15.26.00#Dictionaries#55.10.15.00.00
+unspsc7#55.11.00.00.00#Electronic reference material#55.00.00.00.00
+unspsc7#55.11.15.00.00#Electronic publications and music#55.11.00.00.00
+unspsc7#55.11.15.01.00#Electronic directories#55.11.15.00.00
+unspsc7#55.11.15.02.00#Electronic dictionaries#55.11.15.00.00
+unspsc7#55.11.15.03.00#Electronic encyclopedias#55.11.15.00.00
+unspsc7#55.11.15.04.00#Electronic catalogs#55.11.15.00.00
+unspsc7#55.11.15.05.00#Books on tape or compact disc#55.11.15.00.00
+unspsc7#55.11.15.06.00#Electronic magazines#55.11.15.00.00
+unspsc7#55.11.15.07.00#Electronic newspapers#55.11.15.00.00
+unspsc7#55.11.15.08.00#Electronic charts or maps or atlases#55.11.15.00.00
+unspsc7#55.11.15.09.00#Background music#55.11.15.00.00
+unspsc7#55.11.15.10.00#Motion pictures on celluloid#55.11.15.00.00
+unspsc7#55.11.15.11.00#Motion pictures on video tape#55.11.15.00.00
+unspsc7#55.11.15.12.00#Music on tape or compact disc#55.11.15.00.00
+unspsc7#55.11.16.00.00#Electronic Software reference material#55.11.00.00.00
+unspsc7#55.11.16.01.00#Electronic Software Documentation and User Manuals#55.11.16.00.00
+unspsc7#55.12.00.00.00#Signage and accessories#55.00.00.00.00
+unspsc7#55.12.15.00.00#Tags#55.12.00.00.00
+unspsc7#55.12.15.01.00#Luggage tags#55.12.15.00.00
+unspsc7#55.12.15.02.00#Security tags#55.12.15.00.00
+unspsc7#55.12.15.03.00#Identification tags#55.12.15.00.00
+unspsc7#55.12.16.00.00#Labels#55.12.00.00.00
+unspsc7#55.12.16.01.00#Label removing kits#55.12.16.00.00
+unspsc7#55.12.16.02.00#Clothing labels#55.12.16.00.00
+unspsc7#55.12.16.03.00#Pressure sensitive labels#55.12.16.00.00
+unspsc7#55.12.16.04.00#Canning or bottling labels#55.12.16.00.00
+unspsc7#55.12.16.05.00#Addressing or mailing labels#55.12.16.00.00
+unspsc7#55.12.16.06.00#Self adhesive labels#55.12.16.00.00
+unspsc7#55.12.16.07.00#Decals#55.12.16.00.00
+unspsc7#55.12.16.08.00#Bar code labels#55.12.16.00.00
+unspsc7#55.12.16.09.00#Packaging labels#55.12.16.00.00
+unspsc7#55.12.16.10.00#Consecutively numbered labels#55.12.16.00.00
+unspsc7#55.12.16.11.00#Label making tapes#55.12.16.00.00
+unspsc7#55.12.16.12.00#Printer labels#55.12.16.00.00
+unspsc7#55.12.16.13.00#Color coding labels#55.12.16.00.00
+unspsc7#55.12.16.14.00#Removable labels#55.12.16.00.00
+unspsc7#55.12.16.15.00#Adhesive dots or arrows#55.12.16.00.00
+unspsc7#55.12.16.16.00#Self adhesive flags#55.12.16.00.00
+unspsc7#55.12.17.00.00#Signage#55.12.00.00.00
+unspsc7#55.12.17.01.00#Metallic nameplates#55.12.17.00.00
+unspsc7#55.12.17.02.00#Non metallic nameplates#55.12.17.00.00
+unspsc7#55.12.17.03.00#Illuminated signs#55.12.17.00.00
+unspsc7#55.12.17.04.00#Safety signs#55.12.17.00.00
+unspsc7#55.12.17.05.00#Self adhesive signs#55.12.17.00.00
+unspsc7#55.12.17.06.00#Banners#55.12.17.00.00
+unspsc7#55.12.17.07.00#Magnetic signs#55.12.17.00.00
+unspsc7#55.12.17.08.00#Neon signs#55.12.17.00.00
+unspsc7#55.12.17.09.00#Moving message signs#55.12.17.00.00
+unspsc7#55.12.17.10.00#Traffic signs#55.12.17.00.00
+unspsc7#55.12.17.11.00#Billboards#55.12.17.00.00
+unspsc7#55.12.17.12.00#Directional signs#55.12.17.00.00
+unspsc7#55.12.17.13.00#Point of purchase signs#55.12.17.00.00
+unspsc7#55.12.17.14.00#Pennants#55.12.17.00.00
+unspsc7#55.12.17.15.00#Flags#55.12.17.00.00
+unspsc7#55.12.17.16.00#Wooden signs#55.12.17.00.00
+unspsc7#55.12.17.17.00#Marker plates#55.12.17.00.00
+unspsc7#55.12.17.18.00#Informational signs#55.12.17.00.00
+unspsc7#55.12.17.19.00#Signalling components#55.12.17.00.00
+unspsc7#55.12.17.20.00#Emblems#55.12.17.00.00
+unspsc7#55.12.17.21.00#Vinyl letters or numbers#55.12.17.00.00
+unspsc7#55.12.17.22.00#Flagpoles#55.12.17.00.00
+unspsc7#55.12.17.23.00#Sign holders#55.12.17.00.00
+unspsc7#55.12.18.00.00#Identification documents#55.12.00.00.00
+unspsc7#55.12.18.01.00#Car tax discs#55.12.18.00.00
+unspsc7#55.12.18.02.00#Identification cards#55.12.18.00.00
+unspsc7#55.12.18.03.00#Passports#55.12.18.00.00
+unspsc7#55.12.18.04.00#Badges or badge holders#55.12.18.00.00
+unspsc7#56.00.00.00.00#Furniture and Furnishings#56.00.00.00.00
+unspsc7#56.10.00.00.00#Accommodation furniture#56.00.00.00.00
+unspsc7#56.10.15.00.00#Furniture#56.10.00.00.00
+unspsc7#56.10.15.01.00#Stands#56.10.15.00.00
+unspsc7#56.10.15.02.00#Sofas#56.10.15.00.00
+unspsc7#56.10.15.03.00#Coat racks#56.10.15.00.00
+unspsc7#56.10.15.04.00#Chairs#56.10.15.00.00
+unspsc7#56.10.15.05.00#Entertainment centers#56.10.15.00.00
+unspsc7#56.10.15.06.00#Futons#56.10.15.00.00
+unspsc7#56.10.15.07.00#Bookcases#56.10.15.00.00
+unspsc7#56.10.15.08.00#Mattresses#56.10.15.00.00
+unspsc7#56.10.15.09.00#Dressers or armoires#56.10.15.00.00
+unspsc7#56.10.15.10.00#Partitions#56.10.15.00.00
+unspsc7#56.10.15.12.00#Stools#56.10.15.00.00
+unspsc7#56.10.15.13.00#Cots#56.10.15.00.00
+unspsc7#56.10.15.14.00#Foot stools#56.10.15.00.00
+unspsc7#56.10.15.15.00#Beds#56.10.15.00.00
+unspsc7#56.10.15.16.00#Chests#56.10.15.00.00
+unspsc7#56.10.15.18.00#Wall racks#56.10.15.00.00
+unspsc7#56.10.15.19.00#Tables#56.10.15.00.00
+unspsc7#56.10.15.20.00#Lockers#56.10.15.00.00
+unspsc7#56.10.15.21.00#Bed headboard or footboard#56.10.15.00.00
+unspsc7#56.10.15.22.00#Arm chair#56.10.15.00.00
+unspsc7#56.10.15.23.00#Umbrella stands#56.10.15.00.00
+unspsc7#56.10.15.24.00#Ironing boards#56.10.15.00.00
+unspsc7#56.10.15.25.00#Ironing board covers#56.10.15.00.00
+unspsc7#56.10.15.26.00#Fridge bar#56.10.15.00.00
+unspsc7#56.10.15.27.00#Household type linen driers#56.10.15.00.00
+unspsc7#56.10.15.28.00#Artificial plants#56.10.15.00.00
+unspsc7#56.10.15.29.00#Magazine racks#56.10.15.00.00
+unspsc7#56.10.16.00.00#Outdoor furniture#56.10.00.00.00
+unspsc7#56.10.16.01.00#Outdoor umbrellas#56.10.16.00.00
+unspsc7#56.10.16.02.00#Outdoor chairs#56.10.16.00.00
+unspsc7#56.10.16.03.00#Outdoor tables or picnic tables#56.10.16.00.00
+unspsc7#56.10.16.04.00#Outdoor swings#56.10.16.00.00
+unspsc7#56.10.16.05.00#Outdoor benches#56.10.16.00.00
+unspsc7#56.10.16.06.00#Flower stands#56.10.16.00.00
+unspsc7#56.10.16.07.00#Outside clothes dryer#56.10.16.00.00
+unspsc7#56.10.17.00.00#Office furniture#56.10.00.00.00
+unspsc7#56.10.17.01.00#Credenzas#56.10.17.00.00
+unspsc7#56.10.17.02.00#Filing cabinets or accesories#56.10.17.00.00
+unspsc7#56.10.17.03.00#Desks#56.10.17.00.00
+unspsc7#56.10.17.04.00#Table base#56.10.17.00.00
+unspsc7#56.10.17.05.00#Showcases#56.10.17.00.00
+unspsc7#56.10.17.06.00#Conferencing tables#56.10.17.00.00
+unspsc7#56.10.17.07.00#Drafting tables#56.10.17.00.00
+unspsc7#56.10.17.08.00#Mobile files or equipment carts#56.10.17.00.00
+unspsc7#56.10.17.09.00#Table tops#56.10.17.00.00
+unspsc7#56.10.18.00.00#Baby and toddler furniture and accessories#56.10.00.00.00
+unspsc7#56.10.18.03.00#Carriages or perambulators or strollers#56.10.18.00.00
+unspsc7#56.10.18.04.00#Cribs or playpens#56.10.18.00.00
+unspsc7#56.10.18.05.00#Car seats#56.10.18.00.00
+unspsc7#56.10.18.06.00#High chairs or accessories#56.10.18.00.00
+unspsc7#56.10.18.07.00#Bouncer seats or jumpers#56.10.18.00.00
+unspsc7#56.10.18.08.00#Swings or jumpers or accessories#56.10.18.00.00
+unspsc7#56.10.18.09.00#Potty seats#56.10.18.00.00
+unspsc7#56.10.18.10.00#Baby baths or tubs#56.10.18.00.00
+unspsc7#56.10.18.11.00#Bassinets or cradles#56.10.18.00.00
+unspsc7#56.10.18.12.00#Changing tables or accessories#56.10.18.00.00
+unspsc7#56.11.00.00.00#Commercial and industrial furniture#56.00.00.00.00
+unspsc7#56.11.15.00.00#Workstations and office packages#56.11.00.00.00
+unspsc7#56.11.15.01.00#Modular reception office packages#56.11.15.00.00
+unspsc7#56.11.15.02.00#Casegood or non modular executive office packages#56.11.15.00.00
+unspsc7#56.11.15.03.00#Modular executive office packages#56.11.15.00.00
+unspsc7#56.11.15.04.00#Casegood or non modular managerial office packages#56.11.15.00.00
+unspsc7#56.11.15.05.00#Modular managerial office packages#56.11.15.00.00
+unspsc7#56.11.15.06.00#Casegood or non modular staff office packages#56.11.15.00.00
+unspsc7#56.11.15.07.00#Modular staff office packages#56.11.15.00.00
+unspsc7#56.11.15.08.00#Casegood or non modular technical office packages#56.11.15.00.00
+unspsc7#56.11.15.09.00#Modular technical office packages#56.11.15.00.00
+unspsc7#56.11.15.10.00#Casegood or non modular clerical office packages#56.11.15.00.00
+unspsc7#56.11.15.11.00#Modular clerical office packages#56.11.15.00.00
+unspsc7#56.11.15.12.00#Casegood or non modular reception office packages#56.11.15.00.00
+unspsc7#56.11.15.13.00#Conference or non modular room packages#56.11.15.00.00
+unspsc7#56.11.16.00.00#Panel systems#56.11.00.00.00
+unspsc7#56.11.16.01.00#Screens for panel systems#56.11.16.00.00
+unspsc7#56.11.16.02.00#Storage for panel systems#56.11.16.00.00
+unspsc7#56.11.16.03.00#Organization for panel systems#56.11.16.00.00
+unspsc7#56.11.16.04.00#Work surfaces for panel systems#56.11.16.00.00
+unspsc7#56.11.16.05.00#Lighting or power or data componets for panel systems#56.11.16.00.00
+unspsc7#56.11.16.06.00#Parts or accessories panel systems#56.11.16.00.00
+unspsc7#56.11.17.00.00#Casegood and non modular systems#56.11.00.00.00
+unspsc7#56.11.17.01.00#Casegood or non modular desk#56.11.17.00.00
+unspsc7#56.11.17.02.00#Casegood or non modular credenza#56.11.17.00.00
+unspsc7#56.11.17.03.00#Casegood or non modular storage#56.11.17.00.00
+unspsc7#56.11.17.04.00#Casegood or non modular organization#56.11.17.00.00
+unspsc7#56.11.17.05.00#Casegood or non modular lighting or power or data components#56.11.17.00.00
+unspsc7#56.11.17.06.00#Casegood or non modular parts or accessories#56.11.17.00.00
+unspsc7#56.11.18.00.00#Freestanding furniture#56.11.00.00.00
+unspsc7#56.11.18.01.00#Freestanding lighting or power or data components#56.11.18.00.00
+unspsc7#56.11.18.02.00#Freestanding tables#56.11.18.00.00
+unspsc7#56.11.18.03.00#Freestanding storage#56.11.18.00.00
+unspsc7#56.11.18.04.00#Freestanding organization#56.11.18.00.00
+unspsc7#56.11.18.05.00#Freestanding parts or accessories#56.11.18.00.00
+unspsc7#56.11.19.00.00#Industrial furniture#56.11.00.00.00
+unspsc7#56.11.19.01.00#Industrial lighting or power or data components#56.11.19.00.00
+unspsc7#56.11.19.02.00#Industrial work surfaces#56.11.19.00.00
+unspsc7#56.11.19.03.00#Industrial storage units#56.11.19.00.00
+unspsc7#56.11.19.04.00#Industrial organization#56.11.19.00.00
+unspsc7#56.11.19.05.00#Industrial parts or accessories#56.11.19.00.00
+unspsc7#56.11.20.00.00#Computer support furniture#56.11.00.00.00
+unspsc7#56.11.20.01.00#Computer support lighting or power or data components#56.11.20.00.00
+unspsc7#56.11.20.02.00#Computer support work surfaces#56.11.20.00.00
+unspsc7#56.11.20.03.00#Computer support storage accessories#56.11.20.00.00
+unspsc7#56.11.20.04.00#Computer support organization#56.11.20.00.00
+unspsc7#56.11.20.05.00#Computer support parts or accessories#56.11.20.00.00
+unspsc7#56.11.21.00.00#Seating#56.11.00.00.00
+unspsc7#56.11.21.01.00#Auditorium or stadium or special use seating#56.11.21.00.00
+unspsc7#56.11.21.02.00#Task seating#56.11.21.00.00
+unspsc7#56.11.21.03.00#Guest seating#56.11.21.00.00
+unspsc7#56.11.21.04.00#Executive seating#56.11.21.00.00
+unspsc7#56.11.21.05.00#Lounge seating#56.11.21.00.00
+unspsc7#56.11.21.06.00#Stool seating#56.11.21.00.00
+unspsc7#56.11.21.07.00#Seating parts or accessories#56.11.21.00.00
+unspsc7#56.11.21.08.00#Combination chair with desk#56.11.21.00.00
+unspsc7#56.11.21.09.00#Benches#56.11.21.00.00
+unspsc7#56.12.00.00.00#Classroom and instructional and institutional furniture and fixtures#56.00.00.00.00
+unspsc7#56.12.10.00.00#Library furnishings#56.12.00.00.00
+unspsc7#56.12.10.01.00#Book carts or book trucks#56.12.10.00.00
+unspsc7#56.12.10.02.00#Circulation or librarian desks or components#56.12.10.00.00
+unspsc7#56.12.10.03.00#Book returns#56.12.10.00.00
+unspsc7#56.12.10.04.00#Card catalog units#56.12.10.00.00
+unspsc7#56.12.10.05.00#Dictionary stands#56.12.10.00.00
+unspsc7#56.12.10.06.00#Upholstered benches#56.12.10.00.00
+unspsc7#56.12.10.07.00#Public access tables#56.12.10.00.00
+unspsc7#56.12.10.08.00#Book browser units#56.12.10.00.00
+unspsc7#56.12.10.09.00#Sloped reading tables#56.12.10.00.00
+unspsc7#56.12.10.10.00#Book kiosks#56.12.10.00.00
+unspsc7#56.12.10.11.00#Library compact disc or audio cassette displayers#56.12.10.00.00
+unspsc7#56.12.10.12.00#Rotary island stands#56.12.10.00.00
+unspsc7#56.12.10.14.00#Hang up bag racks or bags#56.12.10.00.00
+unspsc7#56.12.11.00.00#Art classroom furnishings#56.12.00.00.00
+unspsc7#56.12.11.01.00#Art horse#56.12.11.00.00
+unspsc7#56.12.11.02.00#Art student bench#56.12.11.00.00
+unspsc7#56.12.12.00.00#First aid room furnishings#56.12.00.00.00
+unspsc7#56.12.12.01.00#First aid couches#56.12.12.00.00
+unspsc7#56.12.13.00.00#General educational facility fixtures#56.12.00.00.00
+unspsc7#56.12.13.01.00#Standing risers#56.12.13.00.00
+unspsc7#56.12.13.02.00#Table or chair movers or caddys#56.12.13.00.00
+unspsc7#56.12.13.03.00#Rubber brush floor matting#56.12.13.00.00
+unspsc7#56.12.13.04.00#Planning tables#56.12.13.00.00
+unspsc7#56.12.14.00.00#Cafeteria and lunchroom furnishings#56.12.00.00.00
+unspsc7#56.12.14.01.00#Mobile bench tables#56.12.14.00.00
+unspsc7#56.12.14.02.00#Mobile stool tables#56.12.14.00.00
+unspsc7#56.12.14.03.00#Mobile tables#56.12.14.00.00
+unspsc7#56.12.15.00.00#General classroom furnishings#56.12.00.00.00
+unspsc7#56.12.15.01.00#Activity tables#56.12.15.00.00
+unspsc7#56.12.15.02.00#Classroom chairs#56.12.15.00.00
+unspsc7#56.12.15.03.00#Classroom benches#56.12.15.00.00
+unspsc7#56.12.15.04.00#Clasroom stools#56.12.15.00.00
+unspsc7#56.12.15.05.00#Classroom tables#56.12.15.00.00
+unspsc7#56.12.15.06.00#Student desks#56.12.15.00.00
+unspsc7#56.12.15.07.00#Study carrels#56.12.15.00.00
+unspsc7#56.12.15.08.00#Student computer desks#56.12.15.00.00
+unspsc7#56.12.15.09.00#Student computer tables#56.12.15.00.00
+unspsc7#56.12.16.00.00#Creative play and rest time furnishings for daycare and early childhood facilities#56.12.00.00.00
+unspsc7#56.12.16.01.00#Toddler or child size living room sets#56.12.16.00.00
+unspsc7#56.12.16.02.00#Toddler or child size sofas#56.12.16.00.00
+unspsc7#56.12.16.03.00#Toddler or child size easy chairs#56.12.16.00.00
+unspsc7#56.12.16.04.00#Toddler or child size bean bag chairs#56.12.16.00.00
+unspsc7#56.12.16.05.00#Low rise room dividers or play panels#56.12.16.00.00
+unspsc7#56.12.16.06.00#Childs rest mats#56.12.16.00.00
+unspsc7#56.12.16.07.00#Childs rest mat racks or holders#56.12.16.00.00
+unspsc7#56.12.16.08.00#Childrens cots#56.12.16.00.00
+unspsc7#56.12.16.09.00#Childrens cot carriers#56.12.16.00.00
+unspsc7#56.12.16.10.00#Childrens cot activity systems#56.12.16.00.00
+unspsc7#56.12.17.00.00#Book and general storage units for classrooms#56.12.00.00.00
+unspsc7#56.12.17.01.00#General storage units#56.12.17.00.00
+unspsc7#56.12.17.02.00#Book storage units#56.12.17.00.00
+unspsc7#56.12.17.03.00#Cubbie units#56.12.17.00.00
+unspsc7#56.12.17.04.00#Institutional Storage Cabinets#56.12.17.00.00
+unspsc7#56.12.18.00.00#Vocational classroom furnishings and fixtures#56.12.00.00.00
+unspsc7#56.12.18.01.00#Technical education tool storage cabinets or cabinets with tools#56.12.18.00.00
+unspsc7#56.12.18.02.00#General shop tool storage cabinets or cabinets with tools#56.12.18.00.00
+unspsc7#56.12.18.03.00#Wordworking tool storage cabinets or cabinets with tools#56.12.18.00.00
+unspsc7#56.12.18.04.00#Instructors technical desk#56.12.18.00.00
+unspsc7#56.12.18.05.00#Flat files#56.12.18.00.00
+unspsc7#56.12.19.00.00#Demonstration furnishings#56.12.00.00.00
+unspsc7#56.12.19.01.00#Sewing machine demonstrator tables#56.12.19.00.00
+unspsc7#56.12.20.00.00#Laboratory furniture#56.12.00.00.00
+unspsc7#56.12.20.01.00#Laboratory benches#56.12.20.00.00
+unspsc7#56.12.20.02.00#Laboratory storage units or accessories#56.12.20.00.00
+unspsc7#56.12.20.03.00#Laboratory workstations#56.12.20.00.00
+unspsc7#60.00.00.00.00#Musical Instruments and Games and Toys and Arts and Crafts and Educational Equipment and Materials and Accessories and Supplies#60.00.00.00.00
+unspsc7#60.10.00.00.00#Developmental and professional teaching aids and materials and accessories and supplies#60.00.00.00.00
+unspsc7#60.10.10.00.00#Math kits#60.10.00.00.00
+unspsc7#60.10.10.01.00#Addition math kits#60.10.10.00.00
+unspsc7#60.10.10.02.00#Division math kits#60.10.10.00.00
+unspsc7#60.10.10.03.00#Fraction math kits#60.10.10.00.00
+unspsc7#60.10.10.04.00#Middle School math kits#60.10.10.00.00
+unspsc7#60.10.10.05.00#Early childhood math kits#60.10.10.00.00
+unspsc7#60.10.10.06.00#Measurement math kits#60.10.10.00.00
+unspsc7#60.10.10.07.00#Multiplication math kits#60.10.10.00.00
+unspsc7#60.10.10.08.00#Elementary math kits#60.10.10.00.00
+unspsc7#60.10.10.09.00#Subtraction math kits#60.10.10.00.00
+unspsc7#60.10.10.10.00#High school math kits#60.10.10.00.00
+unspsc7#60.10.11.00.00#Electronic learning aids#60.10.00.00.00
+unspsc7#60.10.11.01.00#Electronic card readers#60.10.11.00.00
+unspsc7#60.10.11.02.00#Curriculum based electronic learning aids#60.10.11.00.00
+unspsc7#60.10.11.03.00#Electronic globes#60.10.11.00.00
+unspsc7#60.10.11.04.00#Electronic quiz machines#60.10.11.00.00
+unspsc7#60.10.12.00.00#Educational incentives#60.10.00.00.00
+unspsc7#60.10.12.01.00#Bible based chart stickers#60.10.12.00.00
+unspsc7#60.10.12.02.00#Bible based incentive charts#60.10.12.00.00
+unspsc7#60.10.12.03.00#Incentive chart stickers#60.10.12.00.00
+unspsc7#60.10.12.04.00#Incentive charts#60.10.12.00.00
+unspsc7#60.10.12.05.00#Incentive punchcards#60.10.12.00.00
+unspsc7#60.10.13.00.00#Educational stickers and supplies#60.10.00.00.00
+unspsc7#60.10.13.01.00#Bible based stickers#60.10.13.00.00
+unspsc7#60.10.13.02.00#Giant stickers#60.10.13.00.00
+unspsc7#60.10.13.03.00#Notary seal stickers#60.10.13.00.00
+unspsc7#60.10.13.04.00#Photo stickers#60.10.13.00.00
+unspsc7#60.10.13.05.00#Reward stickers#60.10.13.00.00
+unspsc7#60.10.13.06.00#Scented stickers#60.10.13.00.00
+unspsc7#60.10.13.07.00#Shape stickers#60.10.13.00.00
+unspsc7#60.10.13.08.00#Sparkle stickers#60.10.13.00.00
+unspsc7#60.10.13.09.00#Reward star stickers#60.10.13.00.00
+unspsc7#60.10.13.10.00#Sticker assortments#60.10.13.00.00
+unspsc7#60.10.13.11.00#Sticker books#60.10.13.00.00
+unspsc7#60.10.13.12.00#Sticker boxes#60.10.13.00.00
+unspsc7#60.10.13.13.00#Tattoo stickers#60.10.13.00.00
+unspsc7#60.10.13.14.00#Addition flash cards#60.10.13.00.00
+unspsc7#60.10.13.15.00#All facts flash cards#60.10.13.00.00
+unspsc7#60.10.13.16.00#Blank flash cards#60.10.13.00.00
+unspsc7#60.10.13.17.00#Division flash cards#60.10.13.00.00
+unspsc7#60.10.13.18.00#Electronic flash cards#60.10.13.00.00
+unspsc7#60.10.13.19.00#Equivalent flash cards#60.10.13.00.00
+unspsc7#60.10.13.20.00#Fraction flash cards#60.10.13.00.00
+unspsc7#60.10.13.21.00#Greater than or less than flash cards#60.10.13.00.00
+unspsc7#60.10.13.22.00#Multiplication flash cards#60.10.13.00.00
+unspsc7#60.10.13.23.00#Subtraction flash cards#60.10.13.00.00
+unspsc7#60.10.13.24.00#Alphabet flash cards#60.10.13.00.00
+unspsc7#60.10.13.25.00#Word building flash cards#60.10.13.00.00
+unspsc7#60.10.13.26.00#Phonics flash cards#60.10.13.00.00
+unspsc7#60.10.13.27.00#Handwriting or writing flash cards#60.10.13.00.00
+unspsc7#60.10.13.28.00#Number clash cards#60.10.13.00.00
+unspsc7#60.10.13.29.00#Money flash cards#60.10.13.00.00
+unspsc7#60.10.13.30.00#Time flash cards#60.10.13.00.00
+unspsc7#60.10.13.31.00#State flash cards#60.10.13.00.00
+unspsc7#60.10.14.00.00#Classroom awards#60.10.00.00.00
+unspsc7#60.10.14.01.00#Badges#60.10.14.00.00
+unspsc7#60.10.14.02.00#Award buttons#60.10.14.00.00
+unspsc7#60.10.14.03.00#Celebration crowns#60.10.14.00.00
+unspsc7#60.10.14.04.00#Reward jewlery#60.10.14.00.00
+unspsc7#60.10.14.05.00#Classroom ribbons or rosettes#60.10.14.00.00
+unspsc7#60.10.16.00.00#Educational certificates or diplomas#60.10.00.00.00
+unspsc7#60.10.16.01.00#Bible based certificates#60.10.16.00.00
+unspsc7#60.10.16.02.00#Blank certificates#60.10.16.00.00
+unspsc7#60.10.16.03.00#Certificate frames#60.10.16.00.00
+unspsc7#60.10.16.04.00#Certificate holders#60.10.16.00.00
+unspsc7#60.10.16.05.00#Certificate ribbons#60.10.16.00.00
+unspsc7#60.10.16.06.00#Diplomas#60.10.16.00.00
+unspsc7#60.10.16.07.00#Foreign language certificates#60.10.16.00.00
+unspsc7#60.10.16.08.00#General praise certificates#60.10.16.00.00
+unspsc7#60.10.16.09.00#Grade specific certificates#60.10.16.00.00
+unspsc7#60.10.16.10.00#Subject specific certificates#60.10.16.00.00
+unspsc7#60.10.17.00.00#Teacher resource materials#60.10.00.00.00
+unspsc7#60.10.17.01.00#Assessment resource books#60.10.17.00.00
+unspsc7#60.10.17.02.00#Calendars or cut outs#60.10.17.00.00
+unspsc7#60.10.17.03.00#Character education resource materials#60.10.17.00.00
+unspsc7#60.10.17.04.00#Classroom activity books#60.10.17.00.00
+unspsc7#60.10.17.05.00#Critical thinking resource materials#60.10.17.00.00
+unspsc7#60.10.17.06.00#Cross curriculum guides#60.10.17.00.00
+unspsc7#60.10.17.07.00#Curriculum guides#60.10.17.00.00
+unspsc7#60.10.17.08.00#Fabric charts#60.10.17.00.00
+unspsc7#60.10.17.09.00#Flannel board aids#60.10.17.00.00
+unspsc7#60.10.17.10.00#Educator gifts#60.10.17.00.00
+unspsc7#60.10.17.11.00#Grading stamps#60.10.17.00.00
+unspsc7#60.10.17.12.00#Hall passes#60.10.17.00.00
+unspsc7#60.10.17.13.00#Home education resource materials#60.10.17.00.00
+unspsc7#60.10.17.14.00#Homework assignment resources#60.10.17.00.00
+unspsc7#60.10.17.15.00#Idea books#60.10.17.00.00
+unspsc7#60.10.17.16.00#Magnetic board aids#60.10.17.00.00
+unspsc7#60.10.17.17.00#Name plates or tags#60.10.17.00.00
+unspsc7#60.10.17.18.00#Teacher plan books#60.10.17.00.00
+unspsc7#60.10.17.19.00#Pocket charts#60.10.17.00.00
+unspsc7#60.10.17.20.00#Teacher communication postcards#60.10.17.00.00
+unspsc7#60.10.17.21.00#Professional teacher resource books#60.10.17.00.00
+unspsc7#60.10.17.22.00#Teacher classroom grading books#60.10.17.00.00
+unspsc7#60.10.17.23.00#Classroom student seating charts#60.10.17.00.00
+unspsc7#60.10.17.24.00#Substitute teacher folders or forms#60.10.17.00.00
+unspsc7#60.10.17.25.00#Technology activity or resource books#60.10.17.00.00
+unspsc7#60.10.17.26.00#Technology reference guides#60.10.17.00.00
+unspsc7#60.10.17.27.00#Test taking resource materials#60.10.17.00.00
+unspsc7#60.10.17.28.00#Theme unit resource materials#60.10.17.00.00
+unspsc7#60.10.17.29.00#Middle or junior school teaching kits#60.10.17.00.00
+unspsc7#60.10.17.30.00#Laboratory manuals#60.10.17.00.00
+unspsc7#60.10.18.00.00#Church school educational resources#60.10.00.00.00
+unspsc7#60.10.18.01.00#Bible reference guides#60.10.18.00.00
+unspsc7#60.10.18.02.00#Bible based dramas#60.10.18.00.00
+unspsc7#60.10.18.03.00#Bible based resource or activity books#60.10.18.00.00
+unspsc7#60.10.18.04.00#Sunday school activity resource books#60.10.18.00.00
+unspsc7#60.10.18.05.00#Vacation bible school resources#60.10.18.00.00
+unspsc7#60.10.19.00.00#Alphabet skills materials and resources#60.10.00.00.00
+unspsc7#60.10.19.01.00#Alphabet activity books#60.10.19.00.00
+unspsc7#60.10.19.02.00#Alphabet cubes#60.10.19.00.00
+unspsc7#60.10.19.03.00#Alphabet desk tapes#60.10.19.00.00
+unspsc7#60.10.19.04.00#Alphabet kits#60.10.19.00.00
+unspsc7#60.10.19.05.00#Alphabet letter tiles#60.10.19.00.00
+unspsc7#60.10.19.06.00#Alphabet poster cards#60.10.19.00.00
+unspsc7#60.10.19.07.00#Alphabet reference guides#60.10.19.00.00
+unspsc7#60.10.19.08.00#Alphabet resource books#60.10.19.00.00
+unspsc7#60.10.19.09.00#Alphabet stamps#60.10.19.00.00
+unspsc7#60.10.19.10.00#Alphabet wall cards#60.10.19.00.00
+unspsc7#60.10.19.11.00#Tactile alphabets#60.10.19.00.00
+unspsc7#60.10.20.00.00#Word building resource materials and accessories#60.10.00.00.00
+unspsc7#60.10.20.01.00#Speech mirror#60.10.20.00.00
+unspsc7#60.10.20.02.00#Spelling resource materials#60.10.20.00.00
+unspsc7#60.10.20.03.00#Word building activity books#60.10.20.00.00
+unspsc7#60.10.20.04.00#Word building kits#60.10.20.00.00
+unspsc7#60.10.20.05.00#Word building resource books#60.10.20.00.00
+unspsc7#60.10.20.06.00#Word building tiles#60.10.20.00.00
+unspsc7#60.10.20.07.00#Word walls#60.10.20.00.00
+unspsc7#60.10.21.00.00#Language arts resource materials#60.10.00.00.00
+unspsc7#60.10.21.01.00#Adjective resource books#60.10.21.00.00
+unspsc7#60.10.21.02.00#Adverb resource books#60.10.21.00.00
+unspsc7#60.10.21.03.00#Grammar resource books#60.10.21.00.00
+unspsc7#60.10.21.04.00#Noun resource books#60.10.21.00.00
+unspsc7#60.10.21.05.00#Punctutation resource books#60.10.21.00.00
+unspsc7#60.10.21.06.00#Verb resource books#60.10.21.00.00
+unspsc7#60.10.22.00.00#Phonics resource materials and accessories#60.10.00.00.00
+unspsc7#60.10.22.01.00#Phonics activity books#60.10.22.00.00
+unspsc7#60.10.22.02.00#Phonics drill cards#60.10.22.00.00
+unspsc7#60.10.22.03.00#Phonics kit#60.10.22.00.00
+unspsc7#60.10.22.04.00#Phonics picture cards#60.10.22.00.00
+unspsc7#60.10.22.05.00#Phonics resource books#60.10.22.00.00
+unspsc7#60.10.22.06.00#Phonics tiles#60.10.22.00.00
+unspsc7#60.10.23.00.00#Reading books and resources#60.10.00.00.00
+unspsc7#60.10.23.01.00#Reading activity books#60.10.23.00.00
+unspsc7#60.10.23.02.00#Beginning reading books#60.10.23.00.00
+unspsc7#60.10.23.03.00#Bible based childrens literature books#60.10.23.00.00
+unspsc7#60.10.23.04.00#Childrens literature books#60.10.23.00.00
+unspsc7#60.10.23.05.00#Critical reading skills#60.10.23.00.00
+unspsc7#60.10.23.06.00#Flannel boards#60.10.23.00.00
+unspsc7#60.10.23.07.00#Poetry resource books#60.10.23.00.00
+unspsc7#60.10.23.08.00#Reading comprehension materials#60.10.23.00.00
+unspsc7#60.10.23.09.00#Reading development materials or kits#60.10.23.00.00
+unspsc7#60.10.23.10.00#Reading resource books#60.10.23.00.00
+unspsc7#60.10.23.11.00#Reading thematic units#60.10.23.00.00
+unspsc7#60.10.23.12.00#Vocabulary activity or resource books#60.10.23.00.00
+unspsc7#60.10.24.00.00#Early learning math and counting resources and accessories#60.10.00.00.00
+unspsc7#60.10.24.01.00#Abacus or counting frames#60.10.24.00.00
+unspsc7#60.10.24.02.00#Activity or resource books for working with early math manipulatives#60.10.24.00.00
+unspsc7#60.10.24.03.00#Activity cards for working with early math manipulatives#60.10.24.00.00
+unspsc7#60.10.24.04.00#Beads or bead activity sets for early math#60.10.24.00.00
+unspsc7#60.10.24.05.00#Counters or counter activity sets for early math#60.10.24.00.00
+unspsc7#60.10.24.06.00#Counting or sorting trays or bowls for early math#60.10.24.00.00
+unspsc7#60.10.24.07.00#Laces or lacing sets for early math#60.10.24.00.00
+unspsc7#60.10.24.08.00#Linking manipulatives or linking activity sets for early math#60.10.24.00.00
+unspsc7#60.10.24.09.00#Math game chips or tokens#60.10.24.00.00
+unspsc7#60.10.24.10.00#Number cards#60.10.24.00.00
+unspsc7#60.10.24.11.00#Number forms models or accessories#60.10.24.00.00
+unspsc7#60.10.24.12.00#Pegboards for early math#60.10.24.00.00
+unspsc7#60.10.24.13.00#Pegs for early math#60.10.24.00.00
+unspsc7#60.10.24.14.00#Sorting manipulatives or sorting activity sets for early math#60.10.24.00.00
+unspsc7#60.10.25.00.00#Basic math operations and numeration resources and materials#60.10.00.00.00
+unspsc7#60.10.25.01.00#Addition activity or resource books#60.10.25.00.00
+unspsc7#60.10.25.02.00#Basic operations models#60.10.25.00.00
+unspsc7#60.10.25.03.00#Basic operations reference guides#60.10.25.00.00
+unspsc7#60.10.25.04.00#Division activity or resource books#60.10.25.00.00
+unspsc7#60.10.25.05.00#Multiplication activity or resource books#60.10.25.00.00
+unspsc7#60.10.25.06.00#Subtraction activity or resource books#60.10.25.00.00
+unspsc7#60.10.25.07.00#Number desk tapes#60.10.25.00.00
+unspsc7#60.10.25.08.00#Hundreds charts or boards#60.10.25.00.00
+unspsc7#60.10.25.09.00#Hundreds number tiles#60.10.25.00.00
+unspsc7#60.10.25.10.00#Number kits#60.10.25.00.00
+unspsc7#60.10.25.11.00#Number lines#60.10.25.00.00
+unspsc7#60.10.25.12.00#Numberation activity or resource books#60.10.25.00.00
+unspsc7#60.10.25.13.00#Dominoes#60.10.25.00.00
+unspsc7#60.10.26.00.00#Probability or chance or data or problem solving teacher resource materials#60.10.00.00.00
+unspsc7#60.10.26.01.00#Two sided counters or tokens#60.10.26.00.00
+unspsc7#60.10.26.02.00#Spinners#60.10.26.00.00
+unspsc7#60.10.26.03.00#Dice sets#60.10.26.00.00
+unspsc7#60.10.26.04.00#Probability activity or resource books#60.10.26.00.00
+unspsc7#60.10.26.05.00#Logic activity or resource books#60.10.26.00.00
+unspsc7#60.10.26.06.00#Attribute blocks#60.10.26.00.00
+unspsc7#60.10.26.07.00#Attribute blocks activity cards#60.10.26.00.00
+unspsc7#60.10.26.08.00#Attribute activity or resource books#60.10.26.00.00
+unspsc7#60.10.26.09.00#Graphing mat#60.10.26.00.00
+unspsc7#60.10.26.10.00#Graphing activity or resource books#60.10.26.00.00
+unspsc7#60.10.26.11.00#Logic games#60.10.26.00.00
+unspsc7#60.10.26.12.00#Attribute sets or kits#60.10.26.00.00
+unspsc7#60.10.26.13.00#Problem solving activity or resource books#60.10.26.00.00
+unspsc7#60.10.26.14.00#Problem solving activity cards#60.10.26.00.00
+unspsc7#60.10.27.00.00#Patterning or matching or spatial perception or logical thinking teacher resource materials#60.10.00.00.00
+unspsc7#60.10.27.01.00#Pattern blocks or parquetry blocks activity or resource books#60.10.27.00.00
+unspsc7#60.10.27.02.00#Pattern blocks#60.10.27.00.00
+unspsc7#60.10.27.03.00#Pattern block activity or pattern cards#60.10.27.00.00
+unspsc7#60.10.27.04.00#Pattern block games or activity sets#60.10.27.00.00
+unspsc7#60.10.27.05.00#Pattern block stickers#60.10.27.00.00
+unspsc7#60.10.27.06.00#Pattern blocks mirror#60.10.27.00.00
+unspsc7#60.10.27.07.00#Pattern blocks charts or posters#60.10.27.00.00
+unspsc7#60.10.27.08.00#Parquetry blocks#60.10.27.00.00
+unspsc7#60.10.27.09.00#Parquetry blocks activity or pattern cards#60.10.27.00.00
+unspsc7#60.10.27.10.00#Parquetry blocks activity sets#60.10.27.00.00
+unspsc7#60.10.27.11.00#Tangrams activity or resource books#60.10.27.00.00
+unspsc7#60.10.27.12.00#Tangram activity or pattern cards#60.10.27.00.00
+unspsc7#60.10.27.13.00#Tangram puzzle activity sets#60.10.27.00.00
+unspsc7#60.10.27.14.00#Tangrams puzzles#60.10.27.00.00
+unspsc7#60.10.27.15.00#Pentominoes activity and resource books#60.10.27.00.00
+unspsc7#60.10.27.16.00#Pentominoes activity or pattern cards#60.10.27.00.00
+unspsc7#60.10.27.17.00#Pentominoes#60.10.27.00.00
+unspsc7#60.10.27.18.00#Pentominoes activity sets#60.10.27.00.00
+unspsc7#60.10.28.00.00#Base ten and place value teacher resource materials#60.10.00.00.00
+unspsc7#60.10.28.01.00#Base ten blocks#60.10.28.00.00
+unspsc7#60.10.28.02.00#Base ten or place value activity or resource books#60.10.28.00.00
+unspsc7#60.10.28.03.00#Base ten or place value activity cards#60.10.28.00.00
+unspsc7#60.10.28.04.00#Base ten rubber stamps#60.10.28.00.00
+unspsc7#60.10.28.05.00#Place value grids#60.10.28.00.00
+unspsc7#60.10.28.06.00#Place value games or activity sets#60.10.28.00.00
+unspsc7#60.10.28.07.00#Place value models or accessories#60.10.28.00.00
+unspsc7#60.10.29.00.00#Money and time teacher resource materials#60.10.00.00.00
+unspsc7#60.10.29.01.00#Money activity or resource books#60.10.29.00.00
+unspsc7#60.10.29.02.00#Bulk bills for the classroom#60.10.29.00.00
+unspsc7#60.10.29.03.00#Bulk coins for the classroom#60.10.29.00.00
+unspsc7#60.10.29.04.00#Coin cubes or dice#60.10.29.00.00
+unspsc7#60.10.29.05.00#Magnetic money#60.10.29.00.00
+unspsc7#60.10.29.06.00#Overhead bills#60.10.29.00.00
+unspsc7#60.10.29.07.00#Overhead coins#60.10.29.00.00
+unspsc7#60.10.29.08.00#Money puzzles#60.10.29.00.00
+unspsc7#60.10.29.09.00#Money rubber stamps#60.10.29.00.00
+unspsc7#60.10.29.10.00#Coin bank#60.10.29.00.00
+unspsc7#60.10.29.11.00#Money games or kits#60.10.29.00.00
+unspsc7#60.10.29.12.00#Play cash registers#60.10.29.00.00
+unspsc7#60.10.29.13.00#Money reference guides#60.10.29.00.00
+unspsc7#60.10.29.14.00#Time activity or resource books#60.10.29.00.00
+unspsc7#60.10.29.15.00#Time rubber stamps#60.10.29.00.00
+unspsc7#60.10.29.16.00#Time kits#60.10.29.00.00
+unspsc7#60.10.29.17.00#Time reference guides#60.10.29.00.00
+unspsc7#60.10.30.00.00#Fractions and pentominoes and decimals teaching aids#60.10.00.00.00
+unspsc7#60.10.30.01.00#Fraction circles or squares#60.10.30.00.00
+unspsc7#60.10.30.02.00#Decimal squares#60.10.30.00.00
+unspsc7#60.10.30.03.00#Fraction activity books#60.10.30.00.00
+unspsc7#60.10.30.04.00#Fraction bars#60.10.30.00.00
+unspsc7#60.10.30.05.00#Fraction charts#60.10.30.00.00
+unspsc7#60.10.30.06.00#Fraction dice#60.10.30.00.00
+unspsc7#60.10.30.07.00#Fraction games#60.10.30.00.00
+unspsc7#60.10.30.08.00#Fraction kits#60.10.30.00.00
+unspsc7#60.10.30.09.00#Fraction tiles#60.10.30.00.00
+unspsc7#60.10.30.10.00#Fractions discs#60.10.30.00.00
+unspsc7#60.10.30.12.00#Pentominoes activity book#60.10.30.00.00
+unspsc7#60.10.30.13.00#Pentominoes pattern cards#60.10.30.00.00
+unspsc7#60.10.31.00.00#Geometry teacher resource materials#60.10.00.00.00
+unspsc7#60.10.31.01.00#Geometry activity or resource books#60.10.31.00.00
+unspsc7#60.10.31.02.00#Geometry charts or posters#60.10.31.00.00
+unspsc7#60.10.31.03.00#Geoboards#60.10.31.00.00
+unspsc7#60.10.31.04.00#Geometric construction sets#60.10.31.00.00
+unspsc7#60.10.31.05.00#Double sided geoboards#60.10.31.00.00
+unspsc7#60.10.31.06.00#Geoboard games or activity kits#60.10.31.00.00
+unspsc7#60.10.31.07.00#Geoboard rubber bands#60.10.31.00.00
+unspsc7#60.10.31.08.00#Geoboards activity cards#60.10.31.00.00
+unspsc7#60.10.31.09.00#Geometric chalkboard drawing instruments#60.10.31.00.00
+unspsc7#60.10.31.10.00#Geometry reference guides#60.10.31.00.00
+unspsc7#60.10.31.11.00#GeoMirror#60.10.31.00.00
+unspsc7#60.10.31.12.00#Geometric solids models#60.10.31.00.00
+unspsc7#60.10.32.00.00#Algebra teacher resource materials#60.10.00.00.00
+unspsc7#60.10.32.01.00#Algebra activity or resource books#60.10.32.00.00
+unspsc7#60.10.32.02.00#Centimeter cubes#60.10.32.00.00
+unspsc7#60.10.32.03.00#Algebra or pre algebra reference guides#60.10.32.00.00
+unspsc7#60.10.32.04.00#Algebra models or accessories#60.10.32.00.00
+unspsc7#60.10.33.00.00#Precalculus and calculus teacher resource materials#60.10.00.00.00
+unspsc7#60.10.33.01.00#Calculus activity or resources books#60.10.33.00.00
+unspsc7#60.10.33.02.00#Precalculus or calculus reference guides#60.10.33.00.00
+unspsc7#60.10.33.03.00#Precalculus activity or resource books#60.10.33.00.00
+unspsc7#60.10.34.00.00#Geography and map skills resources and accessories#60.10.00.00.00
+unspsc7#60.10.34.01.00#Goegraphy charts or posters#60.10.34.00.00
+unspsc7#60.10.34.02.00#Continents activity or resource books#60.10.34.00.00
+unspsc7#60.10.34.03.00#Electronic social studies learning aids#60.10.34.00.00
+unspsc7#60.10.34.04.00#Geography reference guides#60.10.34.00.00
+unspsc7#60.10.34.05.00#Map racks#60.10.34.00.00
+unspsc7#60.10.34.06.00#Map stencil kits#60.10.34.00.00
+unspsc7#60.10.34.07.00#Portable wall maps#60.10.34.00.00
+unspsc7#60.10.34.08.00#Geography resource or activity books#60.10.34.00.00
+unspsc7#60.10.35.00.00#Political science#60.10.00.00.00
+unspsc7#60.10.35.01.00#Economics activity or resource books#60.10.35.00.00
+unspsc7#60.10.35.02.00#Government activity or resource books#60.10.35.00.00
+unspsc7#60.10.35.03.00#Government reference guides#60.10.35.00.00
+unspsc7#60.10.35.04.00#State theme units#60.10.35.00.00
+unspsc7#60.10.36.00.00#Multicultural activities and resources#60.10.00.00.00
+unspsc7#60.10.36.01.00#Ancient civilizations resources#60.10.36.00.00
+unspsc7#60.10.36.02.00#Customs or rituals or traditions resources#60.10.36.00.00
+unspsc7#60.10.36.03.00#Ethnic diversity resources#60.10.36.00.00
+unspsc7#60.10.36.04.00#Genealogy resources#60.10.36.00.00
+unspsc7#60.10.36.05.00#Multicultural holidays resources#60.10.36.00.00
+unspsc7#60.10.36.06.00#Multicultural theme units#60.10.36.00.00
+unspsc7#60.10.37.00.00#Foreign languages resources#60.10.00.00.00
+unspsc7#60.10.37.01.00#Resources for Learning to speak spanish#60.10.37.00.00
+unspsc7#60.10.37.02.00#Resources for Learning to speak french#60.10.37.00.00
+unspsc7#60.10.37.03.00#Resources for Learning to speak german#60.10.37.00.00
+unspsc7#60.10.37.04.00#Resources for Learning to speak english#60.10.37.00.00
+unspsc7#60.10.37.05.00#Resources for Learning to speak latin#60.10.37.00.00
+unspsc7#60.10.37.06.00#Resources for Learning to speak italian#60.10.37.00.00
+unspsc7#60.10.38.00.00#History teaching resources#60.10.00.00.00
+unspsc7#60.10.38.01.00#African history resource books#60.10.38.00.00
+unspsc7#60.10.38.02.00#History charts or posters#60.10.38.00.00
+unspsc7#60.10.38.03.00#European history resource books#60.10.38.00.00
+unspsc7#60.10.38.04.00#Historical maps#60.10.38.00.00
+unspsc7#60.10.38.05.00#History theme units#60.10.38.00.00
+unspsc7#60.10.38.06.00#History photo cards#60.10.38.00.00
+unspsc7#60.10.38.07.00#History resource books#60.10.38.00.00
+unspsc7#60.10.38.08.00#Womans history resources#60.10.38.00.00
+unspsc7#60.10.38.09.00#World history resources#60.10.38.00.00
+unspsc7#60.10.39.00.00#Living organisms and preserved specimens and related materials#60.10.00.00.00
+unspsc7#60.10.39.01.00#Live amphibia#60.10.39.00.00
+unspsc7#60.10.39.02.00#Preserved amphibia#60.10.39.00.00
+unspsc7#60.10.39.03.00#Amphibia models#60.10.39.00.00
+unspsc7#60.10.39.04.00#Fungi cultures#60.10.39.00.00
+unspsc7#60.10.39.05.00#Culture kits or supplies#60.10.39.00.00
+unspsc7#60.10.39.06.00#Protozoan cultures#60.10.39.00.00
+unspsc7#60.10.39.07.00#Aquaria plants#60.10.39.00.00
+unspsc7#60.10.39.08.00#Terrarium plants#60.10.39.00.00
+unspsc7#60.10.39.09.00#Live invertebrates#60.10.39.00.00
+unspsc7#60.10.39.10.00#Preserved invertebrates#60.10.39.00.00
+unspsc7#60.10.39.11.00#Live vertebrates#60.10.39.00.00
+unspsc7#60.10.39.12.00#Preserved vertebrates#60.10.39.00.00
+unspsc7#60.10.39.13.00#Live reptilia#60.10.39.00.00
+unspsc7#60.10.39.14.00#Preserved reptilla#60.10.39.00.00
+unspsc7#60.10.39.15.00#Dissection kits or supplies#60.10.39.00.00
+unspsc7#60.10.39.18.00#Biospheres#60.10.39.00.00
+unspsc7#60.10.39.19.00#Biology experiment kits or supplies#60.10.39.00.00
+unspsc7#60.10.39.20.00#Staining kits or supplies#60.10.39.00.00
+unspsc7#60.10.39.21.00#Preserved life cycle specimens#60.10.39.00.00
+unspsc7#60.10.39.22.00#Biology reference guides#60.10.39.00.00
+unspsc7#60.10.39.23.00#Skeleton or bone or shell specimen#60.10.39.00.00
+unspsc7#60.10.39.24.00#Biology resource or activity books#60.10.39.00.00
+unspsc7#60.10.39.25.00#Biology study or activity kits#60.10.39.00.00
+unspsc7#60.10.39.26.00#Biology charts or posters#60.10.39.00.00
+unspsc7#60.10.39.27.00#Preserved plant body or organ specimens#60.10.39.00.00
+unspsc7#60.10.39.28.00#Biology activity or photo cards#60.10.39.00.00
+unspsc7#60.10.39.29.00#Plant life cycle specimens#60.10.39.00.00
+unspsc7#60.10.39.30.00#Combination organism specimens#60.10.39.00.00
+unspsc7#60.10.39.31.00#Animal body or body part or organ specimens#60.10.39.00.00
+unspsc7#60.10.39.32.00#Ecosystem displays#60.10.39.00.00
+unspsc7#60.10.39.33.00#Human body or body part or organ specimens#60.10.39.00.00
+unspsc7#60.10.39.34.00#Tissue cultures#60.10.39.00.00
+unspsc7#60.10.40.00.00#Biotechnology and bio chemistry and genetics and microbiology and related materials#60.10.00.00.00
+unspsc7#60.10.40.01.00#Deoxyribonucleic acid DNA models#60.10.40.00.00
+unspsc7#60.10.40.02.00#Deoxyribonucleic acid DNA experiment kits#60.10.40.00.00
+unspsc7#60.10.40.03.00#Genetic books#60.10.40.00.00
+unspsc7#60.10.40.04.00#Genetic kits#60.10.40.00.00
+unspsc7#60.10.40.05.00#Bacteria teaching kits#60.10.40.00.00
+unspsc7#60.10.40.06.00#Bacteria testing supplies#60.10.40.00.00
+unspsc7#60.10.40.07.00#Enzymology kits or supplies#60.10.40.00.00
+unspsc7#60.10.40.08.00#Protein testing kits or supplies#60.10.40.00.00
+unspsc7#60.10.41.00.00#Body systems and related materials#60.10.00.00.00
+unspsc7#60.10.41.01.00#Body models#60.10.41.00.00
+unspsc7#60.10.41.02.00#Cell models#60.10.41.00.00
+unspsc7#60.10.41.03.00#Cell teaching kits#60.10.41.00.00
+unspsc7#60.10.41.04.00#Body systems teaching kits#60.10.41.00.00
+unspsc7#60.10.41.05.00#Body systems teaching aids#60.10.41.00.00
+unspsc7#60.10.42.00.00#Water testing and conservation and ecology#60.10.00.00.00
+unspsc7#60.10.42.01.00#Water testing chemicals#60.10.42.00.00
+unspsc7#60.10.42.02.00#Water testing and sampling kits#60.10.42.00.00
+unspsc7#60.10.42.03.00#Water models#60.10.42.00.00
+unspsc7#60.10.42.04.00#Water ecology supplies#60.10.42.00.00
+unspsc7#60.10.43.00.00#Astronomy#60.10.00.00.00
+unspsc7#60.10.43.01.00#Astronomy models#60.10.43.00.00
+unspsc7#60.10.43.02.00#Astronomy charts#60.10.43.00.00
+unspsc7#60.10.43.03.00#Astronomy study kits#60.10.43.00.00
+unspsc7#60.10.44.00.00#Geology and earth science#60.10.00.00.00
+unspsc7#60.10.44.01.00#Rock specimen sets#60.10.44.00.00
+unspsc7#60.10.44.02.00#Rock specimens#60.10.44.00.00
+unspsc7#60.10.44.03.00#Fossils#60.10.44.00.00
+unspsc7#60.10.44.04.00#Landform models#60.10.44.00.00
+unspsc7#60.10.44.05.00#Fossil models#60.10.44.00.00
+unspsc7#60.10.44.06.00#Geology tools or field#60.10.44.00.00
+unspsc7#60.10.44.07.00#Stream tables#60.10.44.00.00
+unspsc7#60.10.44.08.00#Geology study kits#60.10.44.00.00
+unspsc7#60.10.45.00.00#Chemistry and electrochemistry and microchemistry#60.10.00.00.00
+unspsc7#60.10.45.01.00#Periodic table posters or boards#60.10.45.00.00
+unspsc7#60.10.45.02.00#Consumer analysis kits#60.10.45.00.00
+unspsc7#60.10.45.03.00#Chemistry class kits#60.10.45.00.00
+unspsc7#60.10.45.04.00#Chemistry demonstration kits#60.10.45.00.00
+unspsc7#60.10.45.05.00#Atomic models#60.10.45.00.00
+unspsc7#60.10.45.06.00#Molecular models#60.10.45.00.00
+unspsc7#60.10.45.07.00#Electrochemical demonstration tools#60.10.45.00.00
+unspsc7#60.10.45.08.00#Electrochemical kits#60.10.45.00.00
+unspsc7#60.10.45.09.00#Fuel cells#60.10.45.00.00
+unspsc7#60.10.45.10.00#Microchemistry kits#60.10.45.00.00
+unspsc7#60.10.45.11.00#Microchemistry tools#60.10.45.00.00
+unspsc7#60.10.46.00.00#Mechanical physics materials#60.10.00.00.00
+unspsc7#60.10.46.01.00#Force tables#60.10.46.00.00
+unspsc7#60.10.46.02.00#Gravity models or model sets#60.10.46.00.00
+unspsc7#60.10.46.04.00#Inclined planes#60.10.46.00.00
+unspsc7#60.10.46.05.00#Friction apparatus#60.10.46.00.00
+unspsc7#60.10.46.06.00#Physic cars#60.10.46.00.00
+unspsc7#60.10.46.07.00#Pendulum apparatus#60.10.46.00.00
+unspsc7#60.10.46.08.00#Torque apparatus#60.10.46.00.00
+unspsc7#60.10.46.09.00#Projectile apparatus#60.10.46.00.00
+unspsc7#60.10.46.10.00#Air tables#60.10.46.00.00
+unspsc7#60.10.46.11.00#Air apparatus#60.10.46.00.00
+unspsc7#60.10.46.12.00#Light or photo apparatus#60.10.46.00.00
+unspsc7#60.10.47.00.00#Energy and power physics materials#60.10.00.00.00
+unspsc7#60.10.47.01.00#Solar collecting devices#60.10.47.00.00
+unspsc7#60.10.47.02.00#Solar kits#60.10.47.00.00
+unspsc7#60.10.47.03.00#Energy demonstration kits#60.10.47.00.00
+unspsc7#60.10.47.04.00#Energy class kits#60.10.47.00.00
+unspsc7#60.10.47.05.00#Matter demonstration kits#60.10.47.00.00
+unspsc7#60.10.47.06.00#Matter class kits#60.10.47.00.00
+unspsc7#60.10.47.07.00#Monometers#60.10.47.00.00
+unspsc7#60.10.47.08.00#Gas diffusion apparatus#60.10.47.00.00
+unspsc7#60.10.48.00.00#Wave and sound physics materials#60.10.00.00.00
+unspsc7#60.10.48.01.00#Wave generators#60.10.48.00.00
+unspsc7#60.10.48.02.00#Wave tanks#60.10.48.00.00
+unspsc7#60.10.48.03.00#Wave springs#60.10.48.00.00
+unspsc7#60.10.48.04.00#Wave demonstration sets#60.10.48.00.00
+unspsc7#60.10.48.05.00#Tuning forks#60.10.48.00.00
+unspsc7#60.10.48.06.00#Doppler demonstrators#60.10.48.00.00
+unspsc7#60.10.48.07.00#Resonance apparatus#60.10.48.00.00
+unspsc7#60.10.48.08.00#Sound meters#60.10.48.00.00
+unspsc7#60.10.48.09.00#Wave apparatus#60.10.48.00.00
+unspsc7#60.10.48.10.00#Spectroscopes#60.10.48.00.00
+unspsc7#60.10.48.11.00#Spectrum charts#60.10.48.00.00
+unspsc7#60.10.48.12.00#Light demonstration kits#60.10.48.00.00
+unspsc7#60.10.48.13.00#Color charts or samples#60.10.48.00.00
+unspsc7#60.10.48.14.00#Radiometer#60.10.48.00.00
+unspsc7#60.10.48.15.00#Reflection or refraction apparatus#60.10.48.00.00
+unspsc7#60.10.48.16.00#Optics sets or kits#60.10.48.00.00
+unspsc7#60.10.49.00.00#Electrical physics materials#60.10.00.00.00
+unspsc7#60.10.49.01.00#Van degraff generators#60.10.49.00.00
+unspsc7#60.10.49.02.00#Electrostatic apparatus#60.10.49.00.00
+unspsc7#60.10.49.03.00#Electrostatic kits#60.10.49.00.00
+unspsc7#60.10.49.04.00#Electricity kits#60.10.49.00.00
+unspsc7#60.10.49.05.00#Electricity demonstration boards#60.10.49.00.00
+unspsc7#60.10.49.06.00#Battery kits#60.10.49.00.00
+unspsc7#60.10.49.07.00#Hand held generators#60.10.49.00.00
+unspsc7#60.10.49.08.00#Electromagnetic apparatus#60.10.49.00.00
+unspsc7#60.10.49.09.00#Magnetism apparatus#60.10.49.00.00
+unspsc7#60.10.49.10.00#Electromagnets#60.10.49.00.00
+unspsc7#60.10.49.11.00#Electric bells#60.10.49.00.00
+unspsc7#60.10.49.12.00#Electric lead wires or cables#60.10.49.00.00
+unspsc7#60.10.50.00.00#Nuclear physics materials#60.10.00.00.00
+unspsc7#60.10.50.01.00#Radioactivity sets#60.10.50.00.00
+unspsc7#60.10.50.02.00#Geiger counters#60.10.50.00.00
+unspsc7#60.10.50.03.00#Electron apparatus#60.10.50.00.00
+unspsc7#60.10.50.04.00#Radiation warning signs#60.10.50.00.00
+unspsc7#60.10.50.05.00#Nuclear physics transparencies#60.10.50.00.00
+unspsc7#60.10.50.06.00#Nuclear physics charts#60.10.50.00.00
+unspsc7#60.10.51.00.00#Rocketry and flight materials and supplies#60.10.00.00.00
+unspsc7#60.10.51.01.00#Rocket sets#60.10.51.00.00
+unspsc7#60.10.51.02.00#Launching apparatus#60.10.51.00.00
+unspsc7#60.10.51.03.00#Altitude measuring devices#60.10.51.00.00
+unspsc7#60.10.51.04.00#Airplane kits#60.10.51.00.00
+unspsc7#60.10.52.00.00#Life skills resources instructional materials#60.10.00.00.00
+unspsc7#60.10.52.01.00#Building listening skills instructional materials#60.10.52.00.00
+unspsc7#60.10.52.02.00#Study skills instructional materials#60.10.52.00.00
+unspsc7#60.10.52.03.00#Test preparation instructional materials#60.10.52.00.00
+unspsc7#60.10.53.00.00#Career education instructional materials#60.10.00.00.00
+unspsc7#60.10.53.01.00#Career education or planning or decision making skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.02.00#Basic job skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.03.00#Job search skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.04.00#Time management skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.05.00#Interview skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.06.00#Resume skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.07.00#Work ethics or attitude training instructional materials#60.10.53.00.00
+unspsc7#60.10.53.08.00#Team building skills instructional materials#60.10.53.00.00
+unspsc7#60.10.53.09.00#Business etiquette instructional materials#60.10.53.00.00
+unspsc7#60.10.54.00.00#Consumer economics and money management and independent living instructional materials#60.10.00.00.00
+unspsc7#60.10.54.01.00#Personal finance or money management education instructional materials#60.10.54.00.00
+unspsc7#60.10.54.02.00#Shopping or consumer skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.03.00#Independent living instructional materials#60.10.54.00.00
+unspsc7#60.10.54.04.00#Understanding consumer credit or loans instructional materials#60.10.54.00.00
+unspsc7#60.10.54.05.00#Insurance coverage or insurance comparison instructional materials#60.10.54.00.00
+unspsc7#60.10.54.06.00#Home buying instructional materials#60.10.54.00.00
+unspsc7#60.10.54.07.00#Apartment rental instructional materials#60.10.54.00.00
+unspsc7#60.10.54.08.00#Car buying educational aids#60.10.54.00.00
+unspsc7#60.10.54.09.00#Brand marketing or advertising instructional materials#60.10.54.00.00
+unspsc7#60.10.54.10.00#Relationship building or family life skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.11.00#Developing self concept and self esteem instuctional materials#60.10.54.00.00
+unspsc7#60.10.54.12.00#Violence avoidance education or violence prevention instructional materials#60.10.54.00.00
+unspsc7#60.10.54.13.00#Anger resolution training instructional materials#60.10.54.00.00
+unspsc7#60.10.54.14.00#Teaching patience skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.15.00#Tolerance training instructional materials#60.10.54.00.00
+unspsc7#60.10.54.16.00#Personal safety instructional materials#60.10.54.00.00
+unspsc7#60.10.54.17.00#Personal conflict resolution instructional materials#60.10.54.00.00
+unspsc7#60.10.54.18.00#Practical teen advice guides#60.10.54.00.00
+unspsc7#60.10.54.19.00#Developing social skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.20.00#Manners or etiquette or courtesy instructional aids#60.10.54.00.00
+unspsc7#60.10.54.21.00#Understanding or dealing with cultural diversity instructional materials#60.10.54.00.00
+unspsc7#60.10.54.22.00#How to read body language instructional materials#60.10.54.00.00
+unspsc7#60.10.54.23.00#Developing resiliency instructional materials#60.10.54.00.00
+unspsc7#60.10.54.24.00#Understanding community service instructional materials#60.10.54.00.00
+unspsc7#60.10.54.25.00#Developing refusal skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.26.00#Responsibility or Ddecision making skills instructional materials#60.10.54.00.00
+unspsc7#60.10.54.27.00#Understanding teens legal rights instructional materials#60.10.54.00.00
+unspsc7#60.10.54.28.00#Repercussions of dropping out of school instructional materials#60.10.54.00.00
+unspsc7#60.10.54.29.00#Race relations videos#60.10.54.00.00
+unspsc7#60.10.55.00.00#Home and interior design instructional materials#60.10.00.00.00
+unspsc7#60.10.55.01.00#Feng shui instructional materials#60.10.55.00.00
+unspsc7#60.10.55.02.00#Instructional materials for using color or paint for home decoration#60.10.55.00.00
+unspsc7#60.10.55.03.00#Instructional materials for home planning or design#60.10.55.00.00
+unspsc7#60.10.55.04.00#Landscaping design instructional materials#60.10.55.00.00
+unspsc7#60.10.55.05.00#Instructional materials for home decorating or furnishing#60.10.55.00.00
+unspsc7#60.10.56.00.00#Health education and nutrition and food preparation instructional materials#60.10.00.00.00
+unspsc7#60.10.56.01.00#Dietary guidelines or balanced diets educational resources#60.10.56.00.00
+unspsc7#60.10.56.02.00#Nutritional curriculum menu planning skills instructional materials#60.10.56.00.00
+unspsc7#60.10.56.03.00#Understanding nutrition labeling instructional materials#60.10.56.00.00
+unspsc7#60.10.56.04.00#Food shopping instructional materials#60.10.56.00.00
+unspsc7#60.10.56.05.00#Healthy food choices demonstration units#60.10.56.00.00
+unspsc7#60.10.56.06.00#Understanding the effects of dietary fat instructional materials#60.10.56.00.00
+unspsc7#60.10.56.07.00#Understanding vegetarianism instructional materials#60.10.56.00.00
+unspsc7#60.10.56.08.00#Recipe books or cook books#60.10.56.00.00
+unspsc7#60.10.56.09.00#Eating disorders education instructional materials#60.10.56.00.00
+unspsc7#60.10.56.10.00#Weight control or exercise instructional materials#60.10.56.00.00
+unspsc7#60.10.56.11.00#Kitchen measurements of solids or liquids instructional aids#60.10.56.00.00
+unspsc7#60.10.56.12.00#Kitchen equivalants or kitchen math instructional aids#60.10.56.00.00
+unspsc7#60.10.56.13.00#Kitchen utensils instructional aids#60.10.56.00.00
+unspsc7#60.10.56.14.00#Kitchen safety or sanitation instructional materials#60.10.56.00.00
+unspsc7#60.10.56.15.00#Food safety instructional materials#60.10.56.00.00
+unspsc7#60.10.56.16.00#Food science activities instructional materials#60.10.56.00.00
+unspsc7#60.10.56.17.00#Cooking skills instruction instructional materials#60.10.56.00.00
+unspsc7#60.10.56.18.00#Table manners or eating etiquette instructional materials#60.10.56.00.00
+unspsc7#60.10.56.19.00#Table setting instructional materials#60.10.56.00.00
+unspsc7#60.10.56.20.00#Food service training instructional materials#60.10.56.00.00
+unspsc7#60.10.56.21.00#Drug or tobacco or alcohol abuse education instructional materials#60.10.56.00.00
+unspsc7#60.10.56.22.00#Smoking Simulators#60.10.56.00.00
+unspsc7#60.10.56.23.00#Understanding addiction or addiction avoidance instructional materials#60.10.56.00.00
+unspsc7#60.10.56.24.00#Teen depression symptoms instructional materials#60.10.56.00.00
+unspsc7#60.10.56.25.00#Teen suicide avoidance training instructional materials#60.10.56.00.00
+unspsc7#60.10.56.26.00#Coping with stress instructional materials#60.10.56.00.00
+unspsc7#60.10.57.00.00#Memory books and supplies#60.10.00.00.00
+unspsc7#60.10.57.01.00#Memory books#60.10.57.00.00
+unspsc7#60.10.57.02.00#Memory book posts or extenders#60.10.57.00.00
+unspsc7#60.10.57.03.00#Memory book paper#60.10.57.00.00
+unspsc7#60.10.57.04.00#Acid free memory book glue sticks#60.10.57.00.00
+unspsc7#60.10.57.05.00#Acid free memory book tape#60.10.57.00.00
+unspsc7#60.10.58.00.00#Clothing and textile design instructional materials#60.10.00.00.00
+unspsc7#60.10.58.01.00#Sewing skills instructional materials#60.10.58.00.00
+unspsc7#60.10.58.02.00#Sewing project materials#60.10.58.00.00
+unspsc7#60.10.58.03.00#Understanding clothing construction or workmanship instructional materials#60.10.58.00.00
+unspsc7#60.10.58.04.00#Clothing design or fashion instructional materials#60.10.58.00.00
+unspsc7#60.10.58.05.00#Personal color analysis instructional materials#60.10.58.00.00
+unspsc7#60.10.58.06.00#Fashion merchandising or retail fundamentals instructional materials#60.10.58.00.00
+unspsc7#60.10.58.07.00#Science of fabrics or fibers instructional materials#60.10.58.00.00
+unspsc7#60.10.58.08.00#Clothing care or maintenance or laundering instructional materials#60.10.58.00.00
+unspsc7#60.10.58.09.00#Materials for teaching the art of design color on fabric#60.10.58.00.00
+unspsc7#60.10.58.10.00#Fabric dyes or paints instructional materials#60.10.58.00.00
+unspsc7#60.10.58.11.00#Quilting projects instructional materials#60.10.58.00.00
+unspsc7#60.10.59.00.00#Dating and sex and teen pregnancy and parenting skills and child development instructional materials#60.10.00.00.00
+unspsc7#60.10.59.01.00#Sex education or sexually transmitted disease instructional materials#60.10.59.00.00
+unspsc7#60.10.59.02.00#Prenatal nutrition resources or fetal abuse instructional materials#60.10.59.00.00
+unspsc7#60.10.59.03.00#Parenting skills instructional materials#60.10.59.00.00
+unspsc7#60.10.59.04.00#Child development instructional materials#60.10.59.00.00
+unspsc7#60.10.59.05.00#Understanding date rape or dating skills or harassment instructional materials#60.10.59.00.00
+unspsc7#60.10.59.06.00#Childbirth education instructional materials#60.10.59.00.00
+unspsc7#60.10.59.07.00#Pregnancy from conception through birth instructional materials#60.10.59.00.00
+unspsc7#60.10.59.08.00#Understanding the risks of birth defects instructional materials#60.10.59.00.00
+unspsc7#60.10.59.09.00#Pregnancy simulators#60.10.59.00.00
+unspsc7#60.10.59.10.00#Infant simulators and accessories#60.10.59.00.00
+unspsc7#60.10.59.11.00#Infant care training instructional materials#60.10.59.00.00
+unspsc7#60.10.59.12.00#Understanding physical or emotional child abuse instructional materials#60.10.59.00.00
+unspsc7#60.10.59.13.00#Discipline skill education instructional materials for parents#60.10.59.00.00
+unspsc7#60.10.59.14.00#Home safety or childproofing instructional materials#60.10.59.00.00
+unspsc7#60.10.59.15.00#Cardio pulmonary resusitation or basic life support instructional materials#60.10.59.00.00
+unspsc7#60.10.59.16.00#Understanding childhood illnesses instructional materials#60.10.59.00.00
+unspsc7#60.10.59.17.00#Understanding attention deficit hyperactivity disorder instructional materials#60.10.59.00.00
+unspsc7#60.10.59.18.00#Child caregiver instructional materials#60.10.59.00.00
+unspsc7#60.10.59.19.00#Babysitting instructional materials#60.10.59.00.00
+unspsc7#60.10.60.00.00#Curriculum guides and projects and activities and lessons#60.10.00.00.00
+unspsc7#60.10.60.01.00#Middle school curriculum resource or idea books#60.10.60.00.00
+unspsc7#60.10.60.02.00#High School curriculum resource or idea books#60.10.60.00.00
+unspsc7#60.10.60.03.00#Home economics independent study projects#60.10.60.00.00
+unspsc7#60.10.60.04.00#Home economics projects or activities resources or guides#60.10.60.00.00
+unspsc7#60.10.61.00.00#Vocational teaching aids and materials#60.10.00.00.00
+unspsc7#60.10.61.01.00#Automotive teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.02.00#Construction teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.03.00#Drafting or design teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.04.00#Electronics or electricity teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.05.00#Graphic arts or photography teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.06.00#Horticulture teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.61.07.00#Manufacturing teaching aids or materials#60.10.61.00.00
+unspsc7#60.10.62.00.00#Technology teaching aids and materials#60.10.00.00.00
+unspsc7#60.10.62.01.00#Agriculture teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.02.00#Biotechnology teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.03.00#Communications teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.04.00#Computer science teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.05.00#Energy or power teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.06.00#Environmental teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.07.00#Materials teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.08.00#Medical teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.62.09.00#Transportation teaching aids or materials#60.10.62.00.00
+unspsc7#60.10.63.00.00#Forensic science teaching equipment and supplies#60.10.00.00.00
+unspsc7#60.10.63.01.00#Forensic science kits#60.10.63.00.00
+unspsc7#60.10.64.00.00#Electronics teaching supplies and equipment#60.10.00.00.00
+unspsc7#60.10.64.01.00#Electronics kits#60.10.64.00.00
+unspsc7#60.10.64.02.00#Electronics teaching supplies#60.10.64.00.00
+unspsc7#60.10.64.03.00#Forensic science teaching supplies#60.10.64.00.00
+unspsc7#60.11.00.00.00#Classroom decoratives and supplies#60.00.00.00.00
+unspsc7#60.11.10.00.00#Classroom Charts or classroom posters#60.11.00.00.00
+unspsc7#60.11.10.01.00#Chart packs#60.11.10.00.00
+unspsc7#60.11.10.02.00#Classroom charts#60.11.10.00.00
+unspsc7#60.11.10.03.00#Classroom posters or sets#60.11.10.00.00
+unspsc7#60.11.10.04.00#Do it yourself posters#60.11.10.00.00
+unspsc7#60.11.11.00.00#Bulletin board sets#60.11.00.00.00
+unspsc7#60.11.11.01.00#Big bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.02.00#Calendar bulleting board sets#60.11.11.00.00
+unspsc7#60.11.11.03.00#Early childhood bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.04.00#Language bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.05.00#Math bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.06.00#Multipurpose bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.07.00#Science bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.08.00#Seasonal bulletin board sets#60.11.11.00.00
+unspsc7#60.11.11.09.00#Social studies bulletin board sets#60.11.11.00.00
+unspsc7#60.11.12.00.00#Bulletin board borders and trimmers#60.11.00.00.00
+unspsc7#60.11.12.01.00#Classroom banners#60.11.12.00.00
+unspsc7#60.11.12.02.00#Border packs#60.11.12.00.00
+unspsc7#60.11.12.03.00#Classroom headers#60.11.12.00.00
+unspsc7#60.11.12.04.00#Corriguated borders or trimmers#60.11.12.00.00
+unspsc7#60.11.12.05.00#Die cut shaped scalloped borders or trimmers#60.11.12.00.00
+unspsc7#60.11.12.06.00#Sparkle borders or trimmers#60.11.12.00.00
+unspsc7#60.11.12.07.00#Straight borders or trimmers#60.11.12.00.00
+unspsc7#60.11.12.08.00#Border or Trimmer storage#60.11.12.00.00
+unspsc7#60.11.13.00.00#Decorative letters and numbers#60.11.00.00.00
+unspsc7#60.11.13.01.00#Lettered or numbered blocks#60.11.13.00.00
+unspsc7#60.11.13.02.00#Casual letters or numbers#60.11.13.00.00
+unspsc7#60.11.13.03.00#Italic letters or numbers#60.11.13.00.00
+unspsc7#60.11.13.04.00#Self adhesive letters or numbers#60.11.13.00.00
+unspsc7#60.11.13.05.00#Sparkle letters or numbers#60.11.13.00.00
+unspsc7#60.11.13.06.00#Tracing letters or numbers#60.11.13.00.00
+unspsc7#60.11.14.00.00#Specialty decoratives for the classroom and decorative accessories#60.11.00.00.00
+unspsc7#60.11.14.01.00#Classroom decorative kits#60.11.14.00.00
+unspsc7#60.11.14.02.00#Door decorations#60.11.14.00.00
+unspsc7#60.11.14.03.00#Mobiles#60.11.14.00.00
+unspsc7#60.11.14.04.00#Two sided decorations#60.11.14.00.00
+unspsc7#60.11.14.05.00#Window cling decorations#60.11.14.00.00
+unspsc7#60.11.14.07.00#Decorative Storage Systems#60.11.14.00.00
+unspsc7#60.11.14.08.00#Decorative tapes or twists#60.11.14.00.00
+unspsc7#60.11.14.09.00#Decorative buttons#60.11.14.00.00
+unspsc7#60.11.14.10.00#Decorative shapes or strings#60.11.14.00.00
+unspsc7#60.12.00.00.00#Arts and crafts equipment and accessories and supplies#60.00.00.00.00
+unspsc7#60.12.10.00.00#Art#60.12.00.00.00
+unspsc7#60.12.10.01.00#Paintings#60.12.10.00.00
+unspsc7#60.12.10.02.00#Sculptures#60.12.10.00.00
+unspsc7#60.12.10.03.00#Statuary#60.12.10.00.00
+unspsc7#60.12.10.04.00#Portraits#60.12.10.00.00
+unspsc7#60.12.10.05.00#Drawings#60.12.10.00.00
+unspsc7#60.12.10.06.00#Pictures#60.12.10.00.00
+unspsc7#60.12.10.07.00#Lithographs#60.12.10.00.00
+unspsc7#60.12.10.08.00#Posters#60.12.10.00.00
+unspsc7#60.12.10.09.00#Decorative pot#60.12.10.00.00
+unspsc7#60.12.10.10.00#Scrolls#60.12.10.00.00
+unspsc7#60.12.10.11.00#Photographs#60.12.10.00.00
+unspsc7#60.12.11.00.00#Canvases and films and boards and artists papers#60.12.00.00.00
+unspsc7#60.12.11.01.00#Sulphite drawing paper#60.12.11.00.00
+unspsc7#60.12.11.02.00#Groundwood drawing paper#60.12.11.00.00
+unspsc7#60.12.11.03.00#Tracing or vellum drawing paper#60.12.11.00.00
+unspsc7#60.12.11.04.00#Bond drawing paper#60.12.11.00.00
+unspsc7#60.12.11.05.00#Charcoal or pastel drawing paper#60.12.11.00.00
+unspsc7#60.12.11.06.00#Bristol drawing paper#60.12.11.00.00
+unspsc7#60.12.11.07.00#Watercolor paper sheets#60.12.11.00.00
+unspsc7#60.12.11.08.00#Watercolor paper pads#60.12.11.00.00
+unspsc7#60.12.11.09.00#Watercolor paper blocks#60.12.11.00.00
+unspsc7#60.12.11.10.00#Finger paint paper#60.12.11.00.00
+unspsc7#60.12.11.11.00#Sulphite construction paper#60.12.11.00.00
+unspsc7#60.12.11.12.00#Groundwood construction paper#60.12.11.00.00
+unspsc7#60.12.11.13.00#Foil construction paper#60.12.11.00.00
+unspsc7#60.12.11.14.00#Origami craft papers#60.12.11.00.00
+unspsc7#60.12.11.15.00#Paper or plastic Confetti#60.12.11.00.00
+unspsc7#60.12.11.16.00#Crepe paper for crafts#60.12.11.00.00
+unspsc7#60.12.11.17.00#Craft tissue paper#60.12.11.00.00
+unspsc7#60.12.11.18.00#Corrugated craft paper#60.12.11.00.00
+unspsc7#60.12.11.19.00#Pattern printed craft paper#60.12.11.00.00
+unspsc7#60.12.11.20.00#Self adhesive craft paper#60.12.11.00.00
+unspsc7#60.12.11.21.00#Glow in the dark paper#60.12.11.00.00
+unspsc7#60.12.11.23.00#Hand made paper#60.12.11.00.00
+unspsc7#60.12.11.24.00#Kraft paper#60.12.11.00.00
+unspsc7#60.12.11.25.00#Canvas panels#60.12.11.00.00
+unspsc7#60.12.11.26.00#Prestretched canvas#60.12.11.00.00
+unspsc7#60.12.11.27.00#Primed canvas#60.12.11.00.00
+unspsc7#60.12.11.28.00#Unprimed canvas#60.12.11.00.00
+unspsc7#60.12.11.29.00#Masonite panels#60.12.11.00.00
+unspsc7#60.12.11.30.00#Canvas like paper pads#60.12.11.00.00
+unspsc7#60.12.11.31.00#Japanese printmaking paper#60.12.11.00.00
+unspsc7#60.12.11.32.00#Lithography or intaglio printmaking paper#60.12.11.00.00
+unspsc7#60.12.11.33.00#Blockprinting printmaking paper#60.12.11.00.00
+unspsc7#60.12.11.34.00#Foil paper#60.12.11.00.00
+unspsc7#60.12.11.35.00#Acetate or vinyl or polyester films#60.12.11.00.00
+unspsc7#60.12.11.36.00#Cellophane films#60.12.11.00.00
+unspsc7#60.12.11.37.00#Acrylic sheets#60.12.11.00.00
+unspsc7#60.12.11.38.00#Illustration boards#60.12.11.00.00
+unspsc7#60.12.11.39.00#Mat boards#60.12.11.00.00
+unspsc7#60.12.11.40.00#Mounting board#60.12.11.00.00
+unspsc7#60.12.11.41.00#Foam core mounting board#60.12.11.00.00
+unspsc7#60.12.11.42.00#Tagboard or railroad board#60.12.11.00.00
+unspsc7#60.12.11.43.00#Display board#60.12.11.00.00
+unspsc7#60.12.11.44.00#Scratch art papers#60.12.11.00.00
+unspsc7#60.12.11.45.00#Scratch art boards#60.12.11.00.00
+unspsc7#60.12.11.46.00#Scratch art accessories#60.12.11.00.00
+unspsc7#60.12.12.00.00#Classroom and fine art paint and mediums and applicators and accessories#60.12.00.00.00
+unspsc7#60.12.12.01.00#Traditional liquid tempera paint#60.12.12.00.00
+unspsc7#60.12.12.02.00#Contemporary liquid tempera paint#60.12.12.00.00
+unspsc7#60.12.12.03.00#Powdered tempera paint#60.12.12.00.00
+unspsc7#60.12.12.04.00#Washable tempera paint#60.12.12.00.00
+unspsc7#60.12.12.05.00#Tempera cakes#60.12.12.00.00
+unspsc7#60.12.12.06.00#Liquid face or body paint#60.12.12.00.00
+unspsc7#60.12.12.07.00#Cake face or body paint#60.12.12.00.00
+unspsc7#60.12.12.08.00#Marker face or body paint#60.12.12.00.00
+unspsc7#60.12.12.09.00#Temporary tattoo paint#60.12.12.00.00
+unspsc7#60.12.12.10.00#Washable finger paint#60.12.12.00.00
+unspsc7#60.12.12.11.00#School style acrylic paint#60.12.12.00.00
+unspsc7#60.12.12.12.00#Acrylic airbrush paint#60.12.12.00.00
+unspsc7#60.12.12.13.00#Synthetic heat treated oil paint or mediums#60.12.12.00.00
+unspsc7#60.12.12.14.00#Water soluble oil paint or mediums#60.12.12.00.00
+unspsc7#60.12.12.15.00#Low viscosity removable glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.16.00#Low viscosity permanent glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.17.00#High viscosity Gel removable glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.18.00#High viscosity Gel permanent glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.19.00#Oven baked glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.20.00#Marker delivery system glass or ceramic paint#60.12.12.00.00
+unspsc7#60.12.12.21.00#Pan watercolor paint#60.12.12.00.00
+unspsc7#60.12.12.22.00#Tube watercolor paint#60.12.12.00.00
+unspsc7#60.12.12.23.00#Liquid watercolor paint#60.12.12.00.00
+unspsc7#60.12.12.24.00#Liquid watercolor frisket paint#60.12.12.00.00
+unspsc7#60.12.12.25.00#Watercolor painting mediums#60.12.12.00.00
+unspsc7#60.12.12.26.00#Watercolor brushes#60.12.12.00.00
+unspsc7#60.12.12.27.00#Oriental brushes#60.12.12.00.00
+unspsc7#60.12.12.28.00#Utility brushes#60.12.12.00.00
+unspsc7#60.12.12.29.00#Specialty brushes#60.12.12.00.00
+unspsc7#60.12.12.30.00#Easel brushes#60.12.12.00.00
+unspsc7#60.12.12.31.00#Palette knives#60.12.12.00.00
+unspsc7#60.12.12.32.00#Brayers for hand printing#60.12.12.00.00
+unspsc7#60.12.12.33.00#Sponge stamps#60.12.12.00.00
+unspsc7#60.12.12.34.00#Scrapers for paint application#60.12.12.00.00
+unspsc7#60.12.12.35.00#Pipettes for paint or dye mixing#60.12.12.00.00
+unspsc7#60.12.12.36.00#Combs or tools for paint or ink application#60.12.12.00.00
+unspsc7#60.12.12.37.00#Palettes for paint or ink mixing#60.12.12.00.00
+unspsc7#60.12.12.38.00#Paint pots for paint storage or mixing#60.12.12.00.00
+unspsc7#60.12.12.39.00#Paint cups or bottles#60.12.12.00.00
+unspsc7#60.12.12.41.00#Brush or tool cleaners#60.12.12.00.00
+unspsc7#60.12.12.42.00#Paint aprons#60.12.12.00.00
+unspsc7#60.12.12.43.00#Artists Smocks#60.12.12.00.00
+unspsc7#60.12.12.44.00#Stretcher strips#60.12.12.00.00
+unspsc7#60.12.12.45.00#Canvas stretchers#60.12.12.00.00
+unspsc7#60.12.12.46.00#Metal easels#60.12.12.00.00
+unspsc7#60.12.12.47.00#Wood easels#60.12.12.00.00
+unspsc7#60.12.12.48.00#Table top easels#60.12.12.00.00
+unspsc7#60.12.12.49.00#Presentation easels#60.12.12.00.00
+unspsc7#60.12.13.00.00#Art and craft cutting products#60.12.00.00.00
+unspsc7#60.12.13.01.00#Guillotine paper trimmers#60.12.13.00.00
+unspsc7#60.12.13.02.00#Mat cutter#60.12.13.00.00
+unspsc7#60.12.13.03.00#Mat knives#60.12.13.00.00
+unspsc7#60.12.13.04.00#Artist knives#60.12.13.00.00
+unspsc7#60.12.13.05.00#Rotary paper or fabric cutter#60.12.13.00.00
+unspsc7#60.12.13.06.00#Circle or oval paper cutters#60.12.13.00.00
+unspsc7#60.12.14.00.00#Picture Framing#60.12.00.00.00
+unspsc7#60.12.14.01.00#Pre assembled wood picture frames#60.12.14.00.00
+unspsc7#60.12.14.02.00#Wood section picture frames#60.12.14.00.00
+unspsc7#60.12.14.03.00#Pre assembled metal picture frames#60.12.14.00.00
+unspsc7#60.12.14.04.00#Metal section picture frames#60.12.14.00.00
+unspsc7#60.12.14.05.00#Adjustable picture frames#60.12.14.00.00
+unspsc7#60.12.14.06.00#Plastic picture frames#60.12.14.00.00
+unspsc7#60.12.14.07.00#Clear box picture frame#60.12.14.00.00
+unspsc7#60.12.14.08.00#Point drivers or accessories for picture frames#60.12.14.00.00
+unspsc7#60.12.14.09.00#Mitre box#60.12.14.00.00
+unspsc7#60.12.14.10.00#Picture Hanging devices#60.12.14.00.00
+unspsc7#60.12.14.11.00#Acrylic panels for picture frames#60.12.14.00.00
+unspsc7#60.12.14.12.00#Glass panels for picture frames#60.12.14.00.00
+unspsc7#60.12.15.00.00#Drawing tools and supplies and accessories#60.12.00.00.00
+unspsc7#60.12.15.01.00#Water based markers#60.12.15.00.00
+unspsc7#60.12.15.02.00#Solvent based markers#60.12.15.00.00
+unspsc7#60.12.15.03.00#Washable markers#60.12.15.00.00
+unspsc7#60.12.15.04.00#Calligraphy markers#60.12.15.00.00
+unspsc7#60.12.15.05.00#Fabric markers#60.12.15.00.00
+unspsc7#60.12.15.06.00#Metallic markers#60.12.15.00.00
+unspsc7#60.12.15.07.00#Tempera or chalk window markers#60.12.15.00.00
+unspsc7#60.12.15.08.00#Paint markers#60.12.15.00.00
+unspsc7#60.12.15.09.00#Wax based crayons#60.12.15.00.00
+unspsc7#60.12.15.10.00#Soy based crayons#60.12.15.00.00
+unspsc7#60.12.15.11.00#Specialty crayons#60.12.15.00.00
+unspsc7#60.12.15.12.00#Watercolor crayons#60.12.15.00.00
+unspsc7#60.12.15.13.00#Dry pastel#60.12.15.00.00
+unspsc7#60.12.15.14.00#Chalk pastel#60.12.15.00.00
+unspsc7#60.12.15.15.00#Oil based pastel#60.12.15.00.00
+unspsc7#60.12.15.16.00#Compressed charcoal#60.12.15.00.00
+unspsc7#60.12.15.17.00#Vine charcoal#60.12.15.00.00
+unspsc7#60.12.15.18.00#Graphite pencils#60.12.15.00.00
+unspsc7#60.12.15.19.00#Wax based colored drawing pencils#60.12.15.00.00
+unspsc7#60.12.15.20.00#Charcoal pencils#60.12.15.00.00
+unspsc7#60.12.15.21.00#Watercolor pencils#60.12.15.00.00
+unspsc7#60.12.15.22.00#Waterbased pens#60.12.15.00.00
+unspsc7#60.12.15.23.00#Permanent pens#60.12.15.00.00
+unspsc7#60.12.15.24.00#Gel pens#60.12.15.00.00
+unspsc7#60.12.15.25.00#Technical pens#60.12.15.00.00
+unspsc7#60.12.15.26.00#Calligraphy pens#60.12.15.00.00
+unspsc7#60.12.15.28.00#Water based drawing ink#60.12.15.00.00
+unspsc7#60.12.15.29.00#Solvent based drawing ink#60.12.15.00.00
+unspsc7#60.12.15.30.00#Calligraphy drawing ink#60.12.15.00.00
+unspsc7#60.12.15.31.00#Pink pencil erasers#60.12.15.00.00
+unspsc7#60.12.15.32.00#Kneaded erasers#60.12.15.00.00
+unspsc7#60.12.15.33.00#Vinyl erasers#60.12.15.00.00
+unspsc7#60.12.15.34.00#Plastic erasers#60.12.15.00.00
+unspsc7#60.12.15.35.00#Gum erasers#60.12.15.00.00
+unspsc7#60.12.16.00.00#Studio aids#60.12.00.00.00
+unspsc7#60.12.16.01.00#Wood Mannequins#60.12.16.00.00
+unspsc7#60.12.16.02.00#Clear acrylic mirrors or panels#60.12.16.00.00
+unspsc7#60.12.16.03.00#Plastic Rubbing plates#60.12.16.00.00
+unspsc7#60.12.16.04.00#Studio aid accessories#60.12.16.00.00
+unspsc7#60.12.16.05.00#Anatomical models#60.12.16.00.00
+unspsc7#60.12.17.00.00#Printmaking supplies and accessories#60.12.00.00.00
+unspsc7#60.12.17.01.00#Rubber stamping stamps#60.12.17.00.00
+unspsc7#60.12.17.02.00#Rubber stamping stamp pads#60.12.17.00.00
+unspsc7#60.12.17.03.00#Rubber stamping accessories#60.12.17.00.00
+unspsc7#60.12.17.04.00#Linoleum for block printing#60.12.17.00.00
+unspsc7#60.12.17.05.00#Wood blocks for printing#60.12.17.00.00
+unspsc7#60.12.17.06.00#Synthetic blocks for printing#60.12.17.00.00
+unspsc7#60.12.17.07.00#Block printing accessories#60.12.17.00.00
+unspsc7#60.12.17.08.00#Intaglio or lithography plates#60.12.17.00.00
+unspsc7#60.12.17.09.00#Intaglio or lithography blankets#60.12.17.00.00
+unspsc7#60.12.17.10.00#Intaglio or lithography wipes#60.12.17.00.00
+unspsc7#60.12.17.11.00#Intaglio or lithography hot plates#60.12.17.00.00
+unspsc7#60.12.17.12.00#Intaglio or lithography printing presses#60.12.17.00.00
+unspsc7#60.12.17.13.00#Printing Barens and Brayers#60.12.17.00.00
+unspsc7#60.12.17.14.00#Intaglio Etching or engraving tools#60.12.17.00.00
+unspsc7#60.12.17.15.00#Silkscreen screens or printing stations#60.12.17.00.00
+unspsc7#60.12.17.16.00#Silkscreen accessories#60.12.17.00.00
+unspsc7#60.12.18.00.00#Printing and drawing inks#60.12.00.00.00
+unspsc7#60.12.18.01.00#Water based poster inks#60.12.18.00.00
+unspsc7#60.12.18.02.00#Water based acrylic inks#60.12.18.00.00
+unspsc7#60.12.18.03.00#Oil based silkscreen inks#60.12.18.00.00
+unspsc7#60.12.18.04.00#Water based Textile inks#60.12.18.00.00
+unspsc7#60.12.18.05.00#Oil based textile inks#60.12.18.00.00
+unspsc7#60.12.18.06.00#Printmaking sublimation inks#60.12.18.00.00
+unspsc7#60.12.18.07.00#Oil based intaglio or lithography inks#60.12.18.00.00
+unspsc7#60.12.18.08.00#Oil based monoprint inks#60.12.18.00.00
+unspsc7#60.12.18.09.00#Water based monoprint inks#60.12.18.00.00
+unspsc7#60.12.18.10.00#Water based drawing inks#60.12.18.00.00
+unspsc7#60.12.18.11.00#Solvent based drawing inks#60.12.18.00.00
+unspsc7#60.12.18.12.00#Calligraphy drawing inks#60.12.18.00.00
+unspsc7#60.12.18.13.00#Silkscreen inks#60.12.18.00.00
+unspsc7#60.12.19.00.00#Art fabric and fabric decoration materials and supplies#60.12.00.00.00
+unspsc7#60.12.19.01.00#Muslin#60.12.19.00.00
+unspsc7#60.12.19.02.00#Felt#60.12.19.00.00
+unspsc7#60.12.19.03.00#Craft fur#60.12.19.00.00
+unspsc7#60.12.19.04.00#Cotton blends#60.12.19.00.00
+unspsc7#60.12.19.05.00#Canvas imprintables#60.12.19.00.00
+unspsc7#60.12.19.06.00#Pre sensitized imprintables#60.12.19.00.00
+unspsc7#60.12.19.07.00#Cotton imprintables#60.12.19.00.00
+unspsc7#60.12.19.08.00#Blended imprintables#60.12.19.00.00
+unspsc7#60.12.19.09.00#Batik waxes#60.12.19.00.00
+unspsc7#60.12.19.10.00#Batik accessories#60.12.19.00.00
+unspsc7#60.12.19.11.00#Batik fabric#60.12.19.00.00
+unspsc7#60.12.20.00.00#Sewing and stitchery and weaving equipment and accessories#60.12.00.00.00
+unspsc7#60.12.20.01.00#Weaving or tapestry needles#60.12.20.00.00
+unspsc7#60.12.20.02.00#Weaving accessories#60.12.20.00.00
+unspsc7#60.12.20.03.00#Hand sewing needles#60.12.20.00.00
+unspsc7#60.12.20.04.00#String art kits#60.12.20.00.00
+unspsc7#60.12.20.05.00#Hand looms#60.12.20.00.00
+unspsc7#60.12.20.06.00#Table looms#60.12.20.00.00
+unspsc7#60.12.20.07.00#Floor looms#60.12.20.00.00
+unspsc7#60.12.20.08.00#Rexlace#60.12.20.00.00
+unspsc7#60.12.20.09.00#Lacing or stringing accessories#60.12.20.00.00
+unspsc7#60.12.21.00.00#Candlemaking#60.12.00.00.00
+unspsc7#60.12.21.01.00#Candlemaking wicks#60.12.21.00.00
+unspsc7#60.12.21.02.00#Candlemaking forms#60.12.21.00.00
+unspsc7#60.12.21.03.00#Candlemaking accessories#60.12.21.00.00
+unspsc7#60.12.22.00.00#Wood crafts#60.12.00.00.00
+unspsc7#60.12.22.01.00#Wood craft materials#60.12.22.00.00
+unspsc7#60.12.22.02.00#Finishing materials#60.12.22.00.00
+unspsc7#60.12.22.03.00#Wood burning tools#60.12.22.00.00
+unspsc7#60.12.22.04.00#Carving tools#60.12.22.00.00
+unspsc7#60.12.23.00.00#Basketry making supplies#60.12.00.00.00
+unspsc7#60.12.23.01.00#Basketry reed#60.12.23.00.00
+unspsc7#60.12.23.02.00#Basketry project kits#60.12.23.00.00
+unspsc7#60.12.24.00.00#Stained glass making supplies#60.12.00.00.00
+unspsc7#60.12.24.01.00#Stained Glass fragments#60.12.24.00.00
+unspsc7#60.12.24.02.00#Stained glass tools or accessories#60.12.24.00.00
+unspsc7#60.12.25.00.00#Paper crafts and hand made papermaking#60.12.00.00.00
+unspsc7#60.12.25.01.00#Paper shaping tools#60.12.25.00.00
+unspsc7#60.12.25.02.00#Paper picture frames#60.12.25.00.00
+unspsc7#60.12.25.03.00#Paper plates or trays#60.12.25.00.00
+unspsc7#60.12.25.04.00#Paper filters#60.12.25.00.00
+unspsc7#60.12.25.05.00#Corrugated cardboard shapes#60.12.25.00.00
+unspsc7#60.12.25.06.00#Paper Doilies#60.12.25.00.00
+unspsc7#60.12.25.07.00#Deckles or molds for hand made paper#60.12.25.00.00
+unspsc7#60.12.25.08.00#Couch sheets or felts for hand made paper#60.12.25.00.00
+unspsc7#60.12.25.09.00#Pulp or raw materials for hand made paper#60.12.25.00.00
+unspsc7#60.12.26.00.00#Mosaics#60.12.00.00.00
+unspsc7#60.12.26.01.00#Mosaic tiles#60.12.26.00.00
+unspsc7#60.12.26.02.00#Mosaic molds#60.12.26.00.00
+unspsc7#60.12.26.03.00#Mosaic tools#60.12.26.00.00
+unspsc7#60.12.26.04.00#Mosaic accessories#60.12.26.00.00
+unspsc7#60.12.27.00.00#Enameling paints and accessories#60.12.00.00.00
+unspsc7#60.12.27.01.00#Enameling paints or mediums#60.12.27.00.00
+unspsc7#60.12.27.02.00#Copper shapes#60.12.27.00.00
+unspsc7#60.12.27.03.00#Enameling accessories#60.12.27.00.00
+unspsc7#60.12.27.04.00#Enameling Kilns#60.12.27.00.00
+unspsc7#60.12.28.00.00#Maskmaking#60.12.00.00.00
+unspsc7#60.12.28.01.00#Maskmaking forms#60.12.28.00.00
+unspsc7#60.12.29.00.00#Beads or beading accessories#60.12.00.00.00
+unspsc7#60.12.29.01.00#Seed beads#60.12.29.00.00
+unspsc7#60.12.29.02.00#Pony beads#60.12.29.00.00
+unspsc7#60.12.29.03.00#Wood beads#60.12.29.00.00
+unspsc7#60.12.29.04.00#Straw beads#60.12.29.00.00
+unspsc7#60.12.29.05.00#Ceramic beads#60.12.29.00.00
+unspsc7#60.12.29.06.00#Glass beads#60.12.29.00.00
+unspsc7#60.12.29.07.00#Assorted or decorative beads#60.12.29.00.00
+unspsc7#60.12.29.08.00#Bead accessories#60.12.29.00.00
+unspsc7#60.12.30.00.00#Foam crafts#60.12.00.00.00
+unspsc7#60.12.30.01.00#Styrofoam shapes#60.12.30.00.00
+unspsc7#60.12.30.02.00#Tools for foam crafts#60.12.30.00.00
+unspsc7#60.12.31.00.00#Chenille stem crafts#60.12.00.00.00
+unspsc7#60.12.31.01.00#Jumbo chenille stems#60.12.31.00.00
+unspsc7#60.12.31.02.00#Cotton chenille stems#60.12.31.00.00
+unspsc7#60.12.31.03.00#Bumps chenille stems#60.12.31.00.00
+unspsc7#60.12.32.00.00#Ribbon making materials#60.12.00.00.00
+unspsc7#60.12.32.01.00#Paper ribbons#60.12.32.00.00
+unspsc7#60.12.32.02.00#Silk ribbons#60.12.32.00.00
+unspsc7#60.12.32.03.00#Synthetic ribbons#60.12.32.00.00
+unspsc7#60.12.32.04.00#Decorative ribbons#60.12.32.00.00
+unspsc7#60.12.33.00.00#Craft Poms#60.12.00.00.00
+unspsc7#60.12.33.01.00#Acrylic craft poms#60.12.33.00.00
+unspsc7#60.12.33.02.00#Glitter craft poms#60.12.33.00.00
+unspsc7#60.12.33.03.00#Craft pom beadz#60.12.33.00.00
+unspsc7#60.12.34.00.00#Wiggle eyes materials#60.12.00.00.00
+unspsc7#60.12.34.01.00#Non self adhesive wiggle eyes#60.12.34.00.00
+unspsc7#60.12.34.02.00#Self adhesive wiggle eyes#60.12.34.00.00
+unspsc7#60.12.34.03.00#Decorative wiggle eyes#60.12.34.00.00
+unspsc7#60.12.35.00.00#Leather craft materials#60.12.00.00.00
+unspsc7#60.12.35.01.00#Leather or leather lacing materials#60.12.35.00.00
+unspsc7#60.12.35.02.00#Leather accessories#60.12.35.00.00
+unspsc7#60.12.36.00.00#Glitter#60.12.00.00.00
+unspsc7#60.12.36.01.00#Glitter glue#60.12.36.00.00
+unspsc7#60.12.36.02.00#Glitter dots#60.12.36.00.00
+unspsc7#60.12.36.03.00#Glitter jewels#60.12.36.00.00
+unspsc7#60.12.36.04.00#Plastic glitter#60.12.36.00.00
+unspsc7#60.12.36.05.00#Irridescent glitter#60.12.36.00.00
+unspsc7#60.12.36.06.00#Metallic glitter#60.12.36.00.00
+unspsc7#60.12.37.00.00#Macrame craft materials and accessories#60.12.00.00.00
+unspsc7#60.12.37.01.00#Macrame cord#60.12.37.00.00
+unspsc7#60.12.37.02.00#Macrame beads#60.12.37.00.00
+unspsc7#60.12.37.03.00#Macrame accessories#60.12.37.00.00
+unspsc7#60.12.38.00.00#Marbling supplies and accessories#60.12.00.00.00
+unspsc7#60.12.38.01.00#Marbling inks#60.12.38.00.00
+unspsc7#60.12.38.02.00#Marbling accessories#60.12.38.00.00
+unspsc7#60.12.39.00.00#Sequins and trims#60.12.00.00.00
+unspsc7#60.12.39.01.00#Decorative sequins or trims#60.12.39.00.00
+unspsc7#60.12.40.00.00#Cork craft supplies and accessories#60.12.00.00.00
+unspsc7#60.12.40.01.00#Cork sheets#60.12.40.00.00
+unspsc7#60.12.40.02.00#Cork stoppers#60.12.40.00.00
+unspsc7#60.12.41.00.00#Multicultural project materials and accessories#60.12.00.00.00
+unspsc7#60.12.41.01.00#Multicultural painting products#60.12.41.00.00
+unspsc7#60.12.41.02.00#Multicultural crafts products#60.12.41.00.00
+unspsc7#60.12.42.00.00#Cross curricular projects#60.12.00.00.00
+unspsc7#60.12.42.01.00#Mylar sculptures#60.12.42.00.00
+unspsc7#60.12.43.00.00#Clay and modeling compounds and ceramics equipment and accessories#60.12.00.00.00
+unspsc7#60.12.43.01.00#Moist kiln fired clay#60.12.43.00.00
+unspsc7#60.12.43.02.00#Dry kiln fired clay#60.12.43.00.00
+unspsc7#60.12.43.03.00#Kiln furniture#60.12.43.00.00
+unspsc7#60.12.43.04.00#Kilns for firing ceramics#60.12.43.00.00
+unspsc7#60.12.43.05.00#Kiln accessories for firing ceramics#60.12.43.00.00
+unspsc7#60.12.43.06.00#Potters wheels for hand made ceramics#60.12.43.00.00
+unspsc7#60.12.43.07.00#Extruders for modeling materials#60.12.43.00.00
+unspsc7#60.12.43.08.00#Cones for firing kilns#60.12.43.00.00
+unspsc7#60.12.43.09.00#Pottery Batts#60.12.43.00.00
+unspsc7#60.12.43.10.00#Decorating wheels for pottery#60.12.43.00.00
+unspsc7#60.12.43.11.00#Clay or modeling tools#60.12.43.00.00
+unspsc7#60.12.43.12.00#Fired ceramic tiles#60.12.43.00.00
+unspsc7#60.12.43.13.00#Clay storage containers#60.12.43.00.00
+unspsc7#60.12.43.14.00#Plasicized non hardening modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.15.00#Oilbased nonhardening modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.16.00#Air dry clay or modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.17.00#Modeling dough#60.12.43.00.00
+unspsc7#60.12.43.18.00#Papier Mache#60.12.43.00.00
+unspsc7#60.12.43.19.00#Specialty modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.20.00#Plaster compounds#60.12.43.00.00
+unspsc7#60.12.43.21.00#Oven hardening clay or modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.22.00#Plastic modeling compounds#60.12.43.00.00
+unspsc7#60.12.43.23.00#Casts or molds for shaping modeling compounds#60.12.43.00.00
+unspsc7#60.12.44.00.00#Art metals#60.12.00.00.00
+unspsc7#60.12.44.01.00#Copper tooling foil#60.12.44.00.00
+unspsc7#60.12.44.02.00#Aluminum tooling foil#60.12.44.00.00
+unspsc7#60.12.44.03.00#Aluminum wire#60.12.44.00.00
+unspsc7#60.12.44.04.00#Brass tooling foil#60.12.44.00.00
+unspsc7#60.12.44.05.00#Brass wire#60.12.44.00.00
+unspsc7#60.12.44.06.00#Silver sheets or plates#60.12.44.00.00
+unspsc7#60.12.44.07.00#Silver wire#60.12.44.00.00
+unspsc7#60.12.44.08.00#Pewter pellets or shots#60.12.44.00.00
+unspsc7#60.12.44.09.00#Pewter ingots#60.12.44.00.00
+unspsc7#60.12.44.10.00#Nu gold sheets plates#60.12.44.00.00
+unspsc7#60.12.44.11.00#Nu gold wire#60.12.44.00.00
+unspsc7#60.12.44.12.00#Galvanized stovepipe wire#60.12.44.00.00
+unspsc7#60.12.45.00.00#Sculpture supplies and accessories#60.12.00.00.00
+unspsc7#60.12.45.01.00#Plaster wrap#60.12.45.00.00
+unspsc7#60.12.45.02.00#Casting resins#60.12.45.00.00
+unspsc7#60.12.45.03.00#Sculpture accessories#60.12.45.00.00
+unspsc7#60.12.45.04.00#Puzzle racks#60.12.45.00.00
+unspsc7#60.12.45.05.00#Bubbles or accessories#60.12.45.00.00
+unspsc7#60.12.45.06.00#Plastic sand or water tools or molds or toys#60.12.45.00.00
+unspsc7#60.12.45.07.00#Play sand#60.12.45.00.00
+unspsc7#60.12.45.08.00#Sand or water tables or activity centers#60.12.45.00.00
+unspsc7#60.12.45.09.00#Vehicle sets#60.12.45.00.00
+unspsc7#60.12.45.10.00#Waterway sets#60.12.45.00.00
+unspsc7#60.12.45.11.00#Play tools or play tool kits#60.12.45.00.00
+unspsc7#60.12.45.12.00#Scooter boards#60.12.45.00.00
+unspsc7#60.12.45.13.00#Beanbags#60.12.45.00.00
+unspsc7#60.12.45.14.00#Tactile toys#60.12.45.00.00
+unspsc7#60.12.45.15.00#Cognitive toys#60.12.45.00.00
+unspsc7#60.13.00.00.00#Musical Instruments and parts and accessories#60.00.00.00.00
+unspsc7#60.13.10.00.00#Keyboard instruments#60.13.00.00.00
+unspsc7#60.13.10.01.00#Pianos#60.13.10.00.00
+unspsc7#60.13.10.02.00#Accordions#60.13.10.00.00
+unspsc7#60.13.10.03.00#Musical organs#60.13.10.00.00
+unspsc7#60.13.11.00.00#Brass instruments#60.13.00.00.00
+unspsc7#60.13.11.01.00#Trumpets#60.13.11.00.00
+unspsc7#60.13.11.02.00#Trombones#60.13.11.00.00
+unspsc7#60.13.11.03.00#Sousaphones#60.13.11.00.00
+unspsc7#60.13.11.04.00#Saxophones#60.13.11.00.00
+unspsc7#60.13.11.05.00#Whistle#60.13.11.00.00
+unspsc7#60.13.12.00.00#Woodwind instruments#60.13.00.00.00
+unspsc7#60.13.12.01.00#Clarinets#60.13.12.00.00
+unspsc7#60.13.12.02.00#Oboes#60.13.12.00.00
+unspsc7#60.13.12.03.00#Musical flutes#60.13.12.00.00
+unspsc7#60.13.12.04.00#Piccoloes#60.13.12.00.00
+unspsc7#60.13.12.05.00#Musical cornets#60.13.12.00.00
+unspsc7#60.13.12.06.00#Bagpipes#60.13.12.00.00
+unspsc7#60.13.12.07.00#Harmonicas#60.13.12.00.00
+unspsc7#60.13.12.08.00#Kazoos#60.13.12.00.00
+unspsc7#60.13.13.00.00#String instruments#60.13.00.00.00
+unspsc7#60.13.13.01.00#Harpsichords#60.13.13.00.00
+unspsc7#60.13.13.02.00#Clavichords#60.13.13.00.00
+unspsc7#60.13.13.03.00#Guitars#60.13.13.00.00
+unspsc7#60.13.13.04.00#Violins#60.13.13.00.00
+unspsc7#60.13.13.05.00#Harps#60.13.13.00.00
+unspsc7#60.13.13.06.00#Banjoes#60.13.13.00.00
+unspsc7#60.13.14.00.00#Percussion instruments#60.13.00.00.00
+unspsc7#60.13.14.01.00#Cymbals#60.13.14.00.00
+unspsc7#60.13.14.02.00#Bells#60.13.14.00.00
+unspsc7#60.13.14.03.00#Tambourines#60.13.14.00.00
+unspsc7#60.13.14.04.00#Castanets#60.13.14.00.00
+unspsc7#60.13.14.05.00#Drums#60.13.14.00.00
+unspsc7#60.13.14.06.00#Xylophones#60.13.14.00.00
+unspsc7#60.13.15.00.00#Musical instrument parts and accessories#60.13.00.00.00
+unspsc7#60.13.15.01.00#Metronomes#60.13.15.00.00
+unspsc7#60.13.15.02.00#Reeds#60.13.15.00.00
+unspsc7#60.13.15.03.00#Instrument strings or picks#60.13.15.00.00
+unspsc7#60.13.15.04.00#Tuning pins#60.13.15.00.00
+unspsc7#60.13.15.05.00#Musical instrument stands or sheet holders#60.13.15.00.00
+unspsc7#60.13.15.06.00#Accessories for stringed instruments#60.13.15.00.00
+unspsc7#60.13.15.07.00#Percussion instrument accessory#60.13.15.00.00
+unspsc7#60.13.15.08.00#Music boxes or mechanisms#60.13.15.00.00
+unspsc7#60.13.16.00.00#Musical instrument sets#60.13.00.00.00
+unspsc7#60.13.16.01.00#Rhythm band sets#60.13.16.00.00
+unspsc7#60.13.17.00.00#Alternative sounds musical instruments#60.13.00.00.00
+unspsc7#60.13.17.01.00#Boomwhackers#60.13.17.00.00
+unspsc7#60.13.17.02.00#Disco taps#60.13.17.00.00
+unspsc7#60.13.18.00.00#Music and dance accessories#60.13.00.00.00
+unspsc7#60.13.18.01.00#Dancing scarves#60.13.18.00.00
+unspsc7#60.13.18.02.00#Rhythm sticks or lummi sticks#60.13.18.00.00
+unspsc7#60.13.18.03.00#Rhythm wands or hoops#60.13.18.00.00
+unspsc7#60.14.00.00.00#Toys and games#60.00.00.00.00
+unspsc7#60.14.10.00.00#Toys#60.14.00.00.00
+unspsc7#60.14.10.01.00#Toy balloons or balls#60.14.10.00.00
+unspsc7#60.14.10.02.00#Dolls#60.14.10.00.00
+unspsc7#60.14.10.03.00#Doll houses#60.14.10.00.00
+unspsc7#60.14.10.04.00#Stuffed animals or puppets#60.14.10.00.00
+unspsc7#60.14.10.05.00#Playhouses#60.14.10.00.00
+unspsc7#60.14.10.06.00#Building blocks#60.14.10.00.00
+unspsc7#60.14.10.07.00#Riding toys#60.14.10.00.00
+unspsc7#60.14.10.08.00#Pull toys#60.14.10.00.00
+unspsc7#60.14.10.09.00#Childrens science kits#60.14.10.00.00
+unspsc7#60.14.10.10.00#Toy vehicles#60.14.10.00.00
+unspsc7#60.14.10.11.00#Toy trains#60.14.10.00.00
+unspsc7#60.14.10.12.00#Inflatable toys#60.14.10.00.00
+unspsc7#60.14.10.13.00#Doll parts or accessories#60.14.10.00.00
+unspsc7#60.14.10.14.00#Yo yos#60.14.10.00.00
+unspsc7#60.14.10.15.00#Kites#60.14.10.00.00
+unspsc7#60.14.10.16.00#Pogs#60.14.10.00.00
+unspsc7#60.14.10.17.00#Kaleidoscopes#60.14.10.00.00
+unspsc7#60.14.10.18.00#Pom poms#60.14.10.00.00
+unspsc7#60.14.10.19.00#Pinatas#60.14.10.00.00
+unspsc7#60.14.10.20.00#Boomerangs#60.14.10.00.00
+unspsc7#60.14.10.21.00#Flying discs#60.14.10.00.00
+unspsc7#60.14.10.22.00#Toy pails#60.14.10.00.00
+unspsc7#60.14.11.00.00#Games#60.14.00.00.00
+unspsc7#60.14.11.01.00#Educational games#60.14.11.00.00
+unspsc7#60.14.11.02.00#Board games#60.14.11.00.00
+unspsc7#60.14.11.03.00#Playing cards#60.14.11.00.00
+unspsc7#60.14.11.04.00#Video games#60.14.11.00.00
+unspsc7#60.14.11.05.00#Puzzles#60.14.11.00.00
+unspsc7#60.14.11.06.00#Dice#60.14.11.00.00
+unspsc7#60.14.11.07.00#Bingo#60.14.11.00.00
+unspsc7#60.14.11.08.00#Classic games#60.14.11.00.00
+unspsc7#60.14.11.09.00#Collaborative games#60.14.11.00.00
+unspsc7#60.14.11.10.00#Strategy games#60.14.11.00.00
+unspsc7#60.14.11.11.00#Game accessories#60.14.11.00.00
+unspsc7#60.14.11.12.00#Game books#60.14.11.00.00
+unspsc7#60.14.11.13.00#Lotto games#60.14.11.00.00
+unspsc7#60.14.11.14.00#Memory games#60.14.11.00.00
+unspsc7#60.14.12.00.00#Active Play equipment and accessories#60.14.00.00.00
+unspsc7#60.14.12.01.00#Balance or gross motor equipment#60.14.12.00.00
+unspsc7#60.14.12.02.00#Ball pools or accessories#60.14.12.00.00
+unspsc7#60.14.12.03.00#Play houses or huts#60.14.12.00.00
+unspsc7#60.14.12.04.00#Trikes or wagons#60.14.12.00.00
+unspsc7#60.14.12.05.00#Soft play centers#60.14.12.00.00
+unspsc7#60.14.13.00.00#Childrens blocks and building systems#60.14.00.00.00
+unspsc7#60.14.13.02.00#Construction sets#60.14.13.00.00
+unspsc7#60.14.13.03.00#Playmats#60.14.13.00.00
+unspsc7#60.14.13.04.00#Railplay systems or accessories#60.14.13.00.00
+unspsc7#60.14.13.05.00#Unit blocks#60.14.13.00.00
+unspsc7#60.14.13.06.00#Play vehicles#60.14.13.00.00
+unspsc7#60.14.13.07.00#Play animals#60.14.13.00.00
+unspsc7#60.14.14.00.00#Dramatic play equipment and accessories#60.14.00.00.00
+unspsc7#60.14.14.01.00#Costumes or accessories#60.14.14.00.00
+unspsc7#60.14.14.02.00#Dress up Centers#60.14.14.00.00
+unspsc7#60.14.14.03.00#Housekeeping units or accessories#60.14.14.00.00
+unspsc7#60.14.14.04.00#Play food dishes or accessories#60.14.14.00.00
+unspsc7#60.14.14.05.00#Pretend play kits or supplies#60.14.14.00.00
+unspsc7#70.00.00.00.00#Farming and Fishing and Forestry and Wildlife Contracting Services#70.00.00.00.00
+unspsc7#70.10.00.00.00#Fisheries and aquaculture#70.00.00.00.00
+unspsc7#70.10.15.00.00#Fisheries operations#70.10.00.00.00
+unspsc7#70.10.15.01.00#Commercial fishing operations#70.10.15.00.00
+unspsc7#70.10.15.02.00#Fishing port services#70.10.15.00.00
+unspsc7#70.10.15.03.00#Fishing onshore facilities#70.10.15.00.00
+unspsc7#70.10.15.04.00#Deep sea fishing operations#70.10.15.00.00
+unspsc7#70.10.15.05.00#Sonar fishing#70.10.15.00.00
+unspsc7#70.10.15.06.00#Whaling#70.10.15.00.00
+unspsc7#70.10.15.07.00#Trawling#70.10.15.00.00
+unspsc7#70.10.15.08.00#Line fishing#70.10.15.00.00
+unspsc7#70.10.15.09.00#Seine operations#70.10.15.00.00
+unspsc7#70.10.15.10.00#Fishing nets#70.10.15.00.00
+unspsc7#70.10.16.00.00#Fisheries oversight#70.10.00.00.00
+unspsc7#70.10.16.01.00#Fishery information or documentation services#70.10.16.00.00
+unspsc7#70.10.16.02.00#Fishery research or experimentation services#70.10.16.00.00
+unspsc7#70.10.16.03.00#Fishery data collection or distribution#70.10.16.00.00
+unspsc7#70.10.16.04.00#Fishery commercial management#70.10.16.00.00
+unspsc7#70.10.16.05.00#Fishing fleet management#70.10.16.00.00
+unspsc7#70.10.16.06.00#Fishing cooperatives#70.10.16.00.00
+unspsc7#70.10.16.07.00#Fishery resources protection or conservation#70.10.16.00.00
+unspsc7#70.10.17.00.00#Fishery industry and technology#70.10.00.00.00
+unspsc7#70.10.17.01.00#Fishing technology services#70.10.17.00.00
+unspsc7#70.10.17.02.00#Fishery by products production services#70.10.17.00.00
+unspsc7#70.10.17.03.00#Fish production#70.10.17.00.00
+unspsc7#70.10.17.04.00#Fish storage#70.10.17.00.00
+unspsc7#70.10.18.00.00#Fisheries resources#70.10.00.00.00
+unspsc7#70.10.18.01.00#Inland water fishery resources#70.10.18.00.00
+unspsc7#70.10.18.02.00#Fish pond resources#70.10.18.00.00
+unspsc7#70.10.18.03.00#Fish hatcheries#70.10.18.00.00
+unspsc7#70.10.18.04.00#Fish ranches#70.10.18.00.00
+unspsc7#70.10.18.05.00#Fishery by product resources#70.10.18.00.00
+unspsc7#70.10.18.06.00#Fisheries resource evaluation#70.10.18.00.00
+unspsc7#70.10.19.00.00#Aquaculture#70.10.00.00.00
+unspsc7#70.10.19.01.00#Mariculture#70.10.19.00.00
+unspsc7#70.10.19.02.00#Ostreiculture#70.10.19.00.00
+unspsc7#70.10.19.03.00#Shellfish culture#70.10.19.00.00
+unspsc7#70.10.19.04.00#Shrimp farming#70.10.19.00.00
+unspsc7#70.10.19.05.00#Fish farming#70.10.19.00.00
+unspsc7#70.11.00.00.00#Horticulture#70.00.00.00.00
+unspsc7#70.11.15.00.00#Plants and ornamental trees#70.11.00.00.00
+unspsc7#70.11.15.01.00#Planting services or ornamental plant or bush or tree#70.11.15.00.00
+unspsc7#70.11.15.02.00#Pruning services or ornamental plant or bush#70.11.15.00.00
+unspsc7#70.11.15.03.00#Tree trimming services#70.11.15.00.00
+unspsc7#70.11.15.04.00#Bracing services#70.11.15.00.00
+unspsc7#70.11.15.05.00#Tree surgery services#70.11.15.00.00
+unspsc7#70.11.15.06.00#Arborist services#70.11.15.00.00
+unspsc7#70.11.15.07.00#Removal services or ornamental plant or bush or tree#70.11.15.00.00
+unspsc7#70.11.15.08.00#Plants or ornamental tree spraying services#70.11.15.00.00
+unspsc7#70.11.16.00.00#Flowering plants#70.11.00.00.00
+unspsc7#70.11.16.01.00#Planting services#70.11.16.00.00
+unspsc7#70.11.16.02.00#Nursery services#70.11.16.00.00
+unspsc7#70.11.16.03.00#Floriculture services#70.11.16.00.00
+unspsc7#70.11.17.00.00#Parks and gardens and orchards#70.11.00.00.00
+unspsc7#70.11.17.01.00#Orchard management or maintenance services#70.11.17.00.00
+unspsc7#70.11.17.02.00#Vineyard management or maintenance services#70.11.17.00.00
+unspsc7#70.11.17.03.00#Garden planting or maintenance services#70.11.17.00.00
+unspsc7#70.11.17.04.00#Horticultural counseling services#70.11.17.00.00
+unspsc7#70.11.17.05.00#Cemetery upkeep services#70.11.17.00.00
+unspsc7#70.11.17.06.00#Lawn care services#70.11.17.00.00
+unspsc7#70.11.17.07.00#Highway lawn maintenance services#70.11.17.00.00
+unspsc7#70.11.17.08.00#Mulching services#70.11.17.00.00
+unspsc7#70.11.17.09.00#Seeding services#70.11.17.00.00
+unspsc7#70.11.17.10.00#Mowing services#70.11.17.00.00
+unspsc7#70.11.17.11.00#Sprigging services#70.11.17.00.00
+unspsc7#70.11.17.12.00#Parks or gardens spraying services#70.11.17.00.00
+unspsc7#70.11.17.13.00#Parks management or maintenance services#70.11.17.00.00
+unspsc7#70.12.00.00.00#Livestock services#70.00.00.00.00
+unspsc7#70.12.15.00.00#Dairying#70.12.00.00.00
+unspsc7#70.12.15.01.00#Dairy herd management#70.12.15.00.00
+unspsc7#70.12.15.02.00#Dairy industry development#70.12.15.00.00
+unspsc7#70.12.15.03.00#Dairy technology#70.12.15.00.00
+unspsc7#70.12.15.04.00#Dairy laboratories services#70.12.15.00.00
+unspsc7#70.12.15.05.00#Dairy farm in house processing#70.12.15.00.00
+unspsc7#70.12.16.00.00#Livestock industry#70.12.00.00.00
+unspsc7#70.12.16.01.00#Livestock breeding#70.12.16.00.00
+unspsc7#70.12.16.02.00#Livestock genetics services#70.12.16.00.00
+unspsc7#70.12.16.03.00#Sericulture#70.12.16.00.00
+unspsc7#70.12.16.04.00#Animal husbandry#70.12.16.00.00
+unspsc7#70.12.16.05.00#Farm rearing systems#70.12.16.00.00
+unspsc7#70.12.16.06.00#Poultry production services#70.12.16.00.00
+unspsc7#70.12.16.07.00#Small animal breeding services#70.12.16.00.00
+unspsc7#70.12.16.08.00#Bovine production services#70.12.16.00.00
+unspsc7#70.12.16.10.00#Apiculture#70.12.16.00.00
+unspsc7#70.12.17.00.00#Livestock management#70.12.00.00.00
+unspsc7#70.12.17.01.00#Livestock selection#70.12.17.00.00
+unspsc7#70.12.17.02.00#Livestock showing services#70.12.17.00.00
+unspsc7#70.12.17.03.00#Livestock slaughtering services#70.12.17.00.00
+unspsc7#70.12.17.04.00#Herd management#70.12.17.00.00
+unspsc7#70.12.17.05.00#Livestock breeding or grooming services#70.12.17.00.00
+unspsc7#70.12.18.00.00#Pets industry#70.12.00.00.00
+unspsc7#70.12.18.01.00#Pet breeding services#70.12.18.00.00
+unspsc7#70.12.18.02.00#Pet grooming services#70.12.18.00.00
+unspsc7#70.12.18.03.00#Kennels services#70.12.18.00.00
+unspsc7#70.12.19.00.00#Pasture and range services#70.12.00.00.00
+unspsc7#70.12.19.01.00#Pasture improvement#70.12.19.00.00
+unspsc7#70.12.19.02.00#Range management#70.12.19.00.00
+unspsc7#70.12.19.03.00#Range research#70.12.19.00.00
+unspsc7#70.12.20.00.00#Animal health#70.12.00.00.00
+unspsc7#70.12.20.01.00#Animal nutrition#70.12.20.00.00
+unspsc7#70.12.20.02.00#Animal disease control#70.12.20.00.00
+unspsc7#70.12.20.03.00#Animal trypanosomiasis#70.12.20.00.00
+unspsc7#70.12.20.04.00#Foot or mouth control services#70.12.20.00.00
+unspsc7#70.12.20.05.00#Animal health preventive medication services#70.12.20.00.00
+unspsc7#70.12.20.06.00#Animal vaccination services#70.12.20.00.00
+unspsc7#70.12.20.07.00#Veterinary administration#70.12.20.00.00
+unspsc7#70.12.20.08.00#Veterinary laboratory technology#70.12.20.00.00
+unspsc7#70.12.20.09.00#Animal hospital services#70.12.20.00.00
+unspsc7#70.12.20.10.00#Animal health information services#70.12.20.00.00
+unspsc7#70.13.00.00.00#Land and soil preparation and management and protection#70.00.00.00.00
+unspsc7#70.13.15.00.00#Land and soil protection#70.13.00.00.00
+unspsc7#70.13.15.01.00#Desertification assessment or control services#70.13.15.00.00
+unspsc7#70.13.15.02.00#Soil conservation or protection services#70.13.15.00.00
+unspsc7#70.13.15.03.00#Erosion control services#70.13.15.00.00
+unspsc7#70.13.15.04.00#Sand dune fixation#70.13.15.00.00
+unspsc7#70.13.15.05.00#Soil conditioning#70.13.15.00.00
+unspsc7#70.13.15.06.00#Soil improvement#70.13.15.00.00
+unspsc7#70.13.16.00.00#Land and soil preparation#70.13.00.00.00
+unspsc7#70.13.16.01.00#Fertilizer application services#70.13.16.00.00
+unspsc7#70.13.16.02.00#Lime spreading services#70.13.16.00.00
+unspsc7#70.13.16.03.00#Plowing services#70.13.16.00.00
+unspsc7#70.13.16.04.00#Seed bed preparation services#70.13.16.00.00
+unspsc7#70.13.16.05.00#Soil chemical treatment services#70.13.16.00.00
+unspsc7#70.13.17.00.00#Land and soil management#70.13.00.00.00
+unspsc7#70.13.17.01.00#Land use planning#70.13.17.00.00
+unspsc7#70.13.17.02.00#Land evaluation#70.13.17.00.00
+unspsc7#70.13.17.03.00#Land reclamation#70.13.17.00.00
+unspsc7#70.13.17.04.00#Agro ecological zones assessment or planning#70.13.17.00.00
+unspsc7#70.13.17.05.00#Soil classification#70.13.17.00.00
+unspsc7#70.13.17.06.00#Watershed management#70.13.17.00.00
+unspsc7#70.13.17.07.00#Soil fertility analysis#70.13.17.00.00
+unspsc7#70.13.17.08.00#Pedology#70.13.17.00.00
+unspsc7#70.14.00.00.00#Crop production and management and protection#70.00.00.00.00
+unspsc7#70.14.15.00.00#Crop production#70.14.00.00.00
+unspsc7#70.14.15.01.00#Seed production services#70.14.15.00.00
+unspsc7#70.14.15.02.00#Hydroponics#70.14.15.00.00
+unspsc7#70.14.15.03.00#Grass or fodder production#70.14.15.00.00
+unspsc7#70.14.15.04.00#Aromatic plants production#70.14.15.00.00
+unspsc7#70.14.15.05.00#Beverage crops production#70.14.15.00.00
+unspsc7#70.14.15.06.00#Cocoa production#70.14.15.00.00
+unspsc7#70.14.15.07.00#Sugarbeet or sugarcane production#70.14.15.00.00
+unspsc7#70.14.15.08.00#Nut production#70.14.15.00.00
+unspsc7#70.14.15.09.00#Essential oil crops production#70.14.15.00.00
+unspsc7#70.14.15.10.00#Fiber crops production#70.14.15.00.00
+unspsc7#70.14.15.11.00#Fruit production#70.14.15.00.00
+unspsc7#70.14.15.12.00#Grain or legume production#70.14.15.00.00
+unspsc7#70.14.15.13.00#Insecticidal plants production#70.14.15.00.00
+unspsc7#70.14.15.14.00#Medicinal plants production#70.14.15.00.00
+unspsc7#70.14.15.15.00#Roots or tubers production#70.14.15.00.00
+unspsc7#70.14.15.16.00#Cereals production#70.14.15.00.00
+unspsc7#70.14.15.17.00#Rubber plant production#70.14.15.00.00
+unspsc7#70.14.15.18.00#Spice crops production#70.14.15.00.00
+unspsc7#70.14.15.19.00#Tobacco crop production#70.14.15.00.00
+unspsc7#70.14.15.20.00#Vegetable production#70.14.15.00.00
+unspsc7#70.14.16.00.00#Crop protection#70.14.00.00.00
+unspsc7#70.14.16.01.00#Crop spraying services#70.14.16.00.00
+unspsc7#70.14.16.02.00#Biological control services#70.14.16.00.00
+unspsc7#70.14.16.03.00#Weed control services#70.14.16.00.00
+unspsc7#70.14.16.04.00#Herbicide services#70.14.16.00.00
+unspsc7#70.14.16.05.00#Integrated pest management services#70.14.16.00.00
+unspsc7#70.14.16.06.00#Plant pathology#70.14.16.00.00
+unspsc7#70.14.16.07.00#Locust control#70.14.16.00.00
+unspsc7#70.14.17.00.00#Crop management#70.14.00.00.00
+unspsc7#70.14.17.01.00#Greenhouse services#70.14.17.00.00
+unspsc7#70.14.17.02.00#Fertilizer services#70.14.17.00.00
+unspsc7#70.14.17.03.00#Crop administration#70.14.17.00.00
+unspsc7#70.14.17.04.00#Crop substitution#70.14.17.00.00
+unspsc7#70.14.17.05.00#Extension services#70.14.17.00.00
+unspsc7#70.14.17.06.00#Crop specialization#70.14.17.00.00
+unspsc7#70.14.17.07.00#Cultivation farming system management#70.14.17.00.00
+unspsc7#70.14.17.08.00#Crop rotation or diversification counseling services#70.14.17.00.00
+unspsc7#70.14.17.09.00#Plant taxonomy services#70.14.17.00.00
+unspsc7#70.14.17.10.00#Field crop entomology#70.14.17.00.00
+unspsc7#70.14.18.00.00#Crop planting and cultivation#70.14.00.00.00
+unspsc7#70.14.18.01.00#Orchard tree or vine planting services#70.14.18.00.00
+unspsc7#70.14.18.02.00#Sprout or twig services#70.14.18.00.00
+unspsc7#70.14.18.03.00#Crop cultivating services#70.14.18.00.00
+unspsc7#70.14.18.04.00#Crop planting services#70.14.18.00.00
+unspsc7#70.14.19.00.00#Crop harvesting#70.14.00.00.00
+unspsc7#70.14.19.01.00#Cash grains harvesting services#70.14.19.00.00
+unspsc7#70.14.19.02.00#Fruit or tree nuts harvesting services#70.14.19.00.00
+unspsc7#70.14.19.03.00#Field crop harvesting services#70.14.19.00.00
+unspsc7#70.14.19.04.00#Seed harvesting services#70.14.19.00.00
+unspsc7#70.14.20.00.00#Post harvesting crop processing#70.14.00.00.00
+unspsc7#70.14.20.01.00#Silos related services#70.14.20.00.00
+unspsc7#70.14.20.02.00#Grain dryers services#70.14.20.00.00
+unspsc7#70.14.20.03.00#Crop processing services#70.14.20.00.00
+unspsc7#70.14.20.04.00#Field crops market preparation services#70.14.20.00.00
+unspsc7#70.14.20.05.00#Cash grain crops market preparation services#70.14.20.00.00
+unspsc7#70.14.20.06.00#Vegetable crops market preparation services#70.14.20.00.00
+unspsc7#70.14.20.07.00#Fruit crops market preparation services#70.14.20.00.00
+unspsc7#70.14.20.08.00#Tree nut crops market preparation services#70.14.20.00.00
+unspsc7#70.14.20.09.00#Ginning services#70.14.20.00.00
+unspsc7#70.14.20.10.00#Crop cleaning services#70.14.20.00.00
+unspsc7#70.14.20.11.00#Cooling or refrigeration services#70.14.20.00.00
+unspsc7#70.14.20.12.00#Spraying services#70.14.20.00.00
+unspsc7#70.15.00.00.00#Forestry#70.00.00.00.00
+unspsc7#70.15.15.00.00#Forestry management#70.15.00.00.00
+unspsc7#70.15.15.01.00#Forest resources management services#70.15.15.00.00
+unspsc7#70.15.15.02.00#Forest pest control#70.15.15.00.00
+unspsc7#70.15.15.03.00#Forest organizations or associations or cooperatives#70.15.15.00.00
+unspsc7#70.15.15.04.00#Forest administration services#70.15.15.00.00
+unspsc7#70.15.15.05.00#Forest inventory#70.15.15.00.00
+unspsc7#70.15.15.06.00#Forest monitoring or evaluation#70.15.15.00.00
+unspsc7#70.15.15.07.00#Afforestation services#70.15.15.00.00
+unspsc7#70.15.15.08.00#Forestry extension services#70.15.15.00.00
+unspsc7#70.15.15.09.00#Forest nursery management#70.15.15.00.00
+unspsc7#70.15.15.10.00#Forest sectoral planning#70.15.15.00.00
+unspsc7#70.15.16.00.00#Forestry industry#70.15.00.00.00
+unspsc7#70.15.16.01.00#Nonwood production services#70.15.16.00.00
+unspsc7#70.15.16.02.00#Essential oils production#70.15.16.00.00
+unspsc7#70.15.16.03.00#Timber production services#70.15.16.00.00
+unspsc7#70.15.16.04.00#Dyes production#70.15.16.00.00
+unspsc7#70.15.16.05.00#Edible forestry production#70.15.16.00.00
+unspsc7#70.15.16.06.00#Wood testing services#70.15.16.00.00
+unspsc7#70.15.16.07.00#Timber production#70.15.16.00.00
+unspsc7#70.15.17.00.00#Forestry harvesting#70.15.00.00.00
+unspsc7#70.15.17.01.00#Logging or felling#70.15.17.00.00
+unspsc7#70.15.17.02.00#Forest harvesting mountainous areas#70.15.17.00.00
+unspsc7#70.15.17.03.00#Forest harvesting specialized operations#70.15.17.00.00
+unspsc7#70.15.17.04.00#Plantation harvesting#70.15.17.00.00
+unspsc7#70.15.17.05.00#Swamp or mangrove forest harvesting#70.15.17.00.00
+unspsc7#70.15.17.06.00#Temperate forest harvesting#70.15.17.00.00
+unspsc7#70.15.17.07.00#Tropical high forests harvesting#70.15.17.00.00
+unspsc7#70.15.18.00.00#Forestry conservation services#70.15.00.00.00
+unspsc7#70.15.18.01.00#Conservation of forest genetic resources#70.15.18.00.00
+unspsc7#70.15.18.02.00#Forest protection services#70.15.18.00.00
+unspsc7#70.15.18.03.00#Forest arid land rehabilitation#70.15.18.00.00
+unspsc7#70.15.18.04.00#Forest wind breaks or shelter belts#70.15.18.00.00
+unspsc7#70.15.18.05.00#Forest reserves or parks conservation services#70.15.18.00.00
+unspsc7#70.15.18.06.00#Forestry watershed management#70.15.18.00.00
+unspsc7#70.15.18.07.00#Forestry torrent control#70.15.18.00.00
+unspsc7#70.15.19.00.00#Forestry resources#70.15.00.00.00
+unspsc7#70.15.19.01.00#Forest resources development#70.15.19.00.00
+unspsc7#70.15.19.02.00#Agroforestry resources#70.15.19.00.00
+unspsc7#70.15.19.03.00#Fuel wood resources#70.15.19.00.00
+unspsc7#70.15.19.04.00#Silviculture#70.15.19.00.00
+unspsc7#70.15.19.05.00#Arid rainfed plantation resources#70.15.19.00.00
+unspsc7#70.15.19.06.00#Broad leafed plantation resources#70.15.19.00.00
+unspsc7#70.15.19.07.00#Conifers plantations#70.15.19.00.00
+unspsc7#70.15.19.09.00#Tropical rain forest plantations#70.15.19.00.00
+unspsc7#70.15.19.10.00#Mangrove swamps resources#70.15.19.00.00
+unspsc7#70.16.00.00.00#Wildlife and flora#70.00.00.00.00
+unspsc7#70.16.15.00.00#Fauna#70.16.00.00.00
+unspsc7#70.16.15.01.00#Fauna protection#70.16.15.00.00
+unspsc7#70.16.16.00.00#Flora#70.16.00.00.00
+unspsc7#70.16.16.01.00#Flora protection#70.16.16.00.00
+unspsc7#70.16.17.00.00#Ecosystems#70.16.00.00.00
+unspsc7#70.16.17.01.00#Ecodevelopment services#70.16.17.00.00
+unspsc7#70.16.17.02.00#Marine ecosystem management services#70.16.17.00.00
+unspsc7#70.16.17.03.00#Terrestrial ecosystem management services#70.16.17.00.00
+unspsc7#70.16.17.04.00#Ecosystems protection services#70.16.17.00.00
+unspsc7#70.17.00.00.00#Water resources development and oversight#70.00.00.00.00
+unspsc7#70.17.15.00.00#Development#70.17.00.00.00
+unspsc7#70.17.15.01.00#Water quality assessment services#70.17.15.00.00
+unspsc7#70.17.15.02.00#Water resources planning services#70.17.15.00.00
+unspsc7#70.17.15.03.00#Ground or surface water surveying#70.17.15.00.00
+unspsc7#70.17.15.04.00#Water resources mapping services#70.17.15.00.00
+unspsc7#70.17.15.05.00#River basin development#70.17.15.00.00
+unspsc7#70.17.15.06.00#Ground or surface water modeling services#70.17.15.00.00
+unspsc7#70.17.16.00.00#Oversight#70.17.00.00.00
+unspsc7#70.17.16.01.00#Water quality management#70.17.16.00.00
+unspsc7#70.17.16.02.00#Water testing services#70.17.16.00.00
+unspsc7#70.17.16.03.00#Floodplain management#70.17.16.00.00
+unspsc7#70.17.16.04.00#Water conservation advisory services#70.17.16.00.00
+unspsc7#70.17.16.05.00#Water rights advisory services#70.17.16.00.00
+unspsc7#70.17.16.06.00#Water resource recovery services#70.17.16.00.00
+unspsc7#70.17.16.07.00#Water pricing services#70.17.16.00.00
+unspsc7#70.17.17.00.00#Irrigation#70.17.00.00.00
+unspsc7#70.17.17.01.00#Canal maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.02.00#Dam maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.03.00#Reservoirs maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.04.00#Pumping station maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.05.00#Pipelines maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.06.00#Dike or embankment maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.07.00#Water well maintenance or management services#70.17.17.00.00
+unspsc7#70.17.17.08.00#Irrigation advisory services#70.17.17.00.00
+unspsc7#70.17.17.09.00#Irrigation systems management services#70.17.17.00.00
+unspsc7#70.17.18.00.00#Drainage services#70.17.00.00.00
+unspsc7#70.17.18.01.00#Land drainage services#70.17.18.00.00
+unspsc7#70.17.18.02.00#Storm water drainage#70.17.18.00.00
+unspsc7#70.17.18.03.00#Flood protection or control services#70.17.18.00.00
+unspsc7#71.00.00.00.00#Mining and Oil and Gas Services#71.00.00.00.00
+unspsc7#71.10.00.00.00#Mining services#71.00.00.00.00
+unspsc7#71.10.15.00.00#Mine exploration#71.10.00.00.00
+unspsc7#71.10.15.01.00#Mine development#71.10.15.00.00
+unspsc7#71.10.15.02.00#Test boring or core drilling#71.10.15.00.00
+unspsc7#71.10.16.00.00#Mine drilling and blasting services#71.10.00.00.00
+unspsc7#71.10.16.01.00#Shaft sinking#71.10.16.00.00
+unspsc7#71.10.16.02.00#Mine blasting services#71.10.16.00.00
+unspsc7#71.10.17.00.00#Extraction#71.10.00.00.00
+unspsc7#71.10.17.01.00#Shaft mining services#71.10.17.00.00
+unspsc7#71.10.17.02.00#Open pit mining services#71.10.17.00.00
+unspsc7#71.10.17.03.00#Strip mining services#71.10.17.00.00
+unspsc7#71.10.17.04.00#In situ leaching (ISL) services#71.10.17.00.00
+unspsc7#71.10.17.05.00#Pumping or draining#71.10.17.00.00
+unspsc7#71.10.17.06.00#Overburden removal#71.10.17.00.00
+unspsc7#71.10.17.07.00#Impoundment or storage of water services#71.10.17.00.00
+unspsc7#71.10.17.08.00#Soil flushing services#71.10.17.00.00
+unspsc7#71.10.17.09.00#Mine filling services#71.10.17.00.00
+unspsc7#71.11.00.00.00#Oil and gas exploration services#71.00.00.00.00
+unspsc7#71.11.15.00.00#Oil and gas exploration#71.11.00.00.00
+unspsc7#71.11.15.01.00#Seismographic surveys#71.11.15.00.00
+unspsc7#71.11.15.02.00#Offshore exploration#71.11.15.00.00
+unspsc7#71.11.15.03.00#Well surveying#71.11.15.00.00
+unspsc7#71.11.16.00.00#Well drilling and maintenance#71.11.00.00.00
+unspsc7#71.11.16.01.00#Directional drilling#71.11.16.00.00
+unspsc7#71.11.16.02.00#Oil well drilling#71.11.16.00.00
+unspsc7#71.11.16.03.00#Drilling of water intake wells#71.11.16.00.00
+unspsc7#71.11.16.04.00#Redrilling or reworking of wells#71.11.16.00.00
+unspsc7#71.11.16.05.00#Acidizing or chemical treating of wells#71.11.16.00.00
+unspsc7#71.11.16.06.00#Tool fishing services#71.11.16.00.00
+unspsc7#71.11.16.07.00#Oil well platform maintenance services#71.11.16.00.00
+unspsc7#71.11.17.00.00#Extraction services#71.11.00.00.00
+unspsc7#71.11.17.01.00#Flow rate measurement services#71.11.17.00.00
+unspsc7#71.11.17.02.00#Oil sampling services#71.11.17.00.00
+unspsc7#71.11.17.03.00#Oil field drilling or mud services#71.11.17.00.00
+unspsc7#71.11.17.04.00#Impound or storage of water#71.11.17.00.00
+unspsc7#71.11.18.00.00#Well restoration and reclamation#71.11.00.00.00
+unspsc7#71.11.18.01.00#Cleaning or swabbing of wells#71.11.18.00.00
+unspsc7#71.11.18.02.00#Soil flushing services#71.11.18.00.00
+unspsc7#71.11.18.03.00#Mine filling services#71.11.18.00.00
+unspsc7#71.11.18.04.00#Well plugging or abandonment services#71.11.18.00.00
+unspsc7#71.11.18.05.00#Cementing services for well casings#71.11.18.00.00
+unspsc7#71.11.19.00.00#Well emergency services#71.11.00.00.00
+unspsc7#71.11.19.01.00#Well fire fighting services#71.11.19.00.00
+unspsc7#71.11.19.02.00#Well capping services#71.11.19.00.00
+unspsc7#71.11.20.00.00#Cased hole well logging services#71.11.00.00.00
+unspsc7#71.11.20.01.00#Cased hole formation sampling testing services#71.11.20.00.00
+unspsc7#71.11.20.02.00#Casing thickness measurement services#71.11.20.00.00
+unspsc7#71.11.20.03.00#Chemical cutters services#71.11.20.00.00
+unspsc7#71.11.20.04.00#Electromagnetic pipe recovery services#71.11.20.00.00
+unspsc7#71.11.20.05.00#Well flow measurement services#71.11.20.00.00
+unspsc7#71.11.20.06.00#Well fluid density measurement services#71.11.20.00.00
+unspsc7#71.11.20.07.00#Well fluid temperature measurement services#71.11.20.00.00
+unspsc7#71.11.20.08.00#Free point tool services#71.11.20.00.00
+unspsc7#71.11.20.09.00#Gamma ray services#71.11.20.00.00
+unspsc7#71.11.20.10.00#Jet cutter services#71.11.20.00.00
+unspsc7#71.11.20.11.00#Measurement while perforating services#71.11.20.00.00
+unspsc7#71.11.20.12.00#Neutron porosity services#71.11.20.00.00
+unspsc7#71.11.20.13.00#Nuclear spectroscopy services#71.11.20.00.00
+unspsc7#71.11.20.14.00#Well packer services#71.11.20.00.00
+unspsc7#71.11.20.15.00#Permanent magnets pipe recovery services#71.11.20.00.00
+unspsc7#71.11.20.16.00#Well plugging services#71.11.20.00.00
+unspsc7#71.11.20.17.00#Well pressure measurement control services#71.11.20.00.00
+unspsc7#71.11.20.18.00#Production logging borehole fluid measurement services#71.11.20.00.00
+unspsc7#71.11.20.19.00#Production logging density measurement services#71.11.20.00.00
+unspsc7#71.11.20.20.00#Production logging downhole video services#71.11.20.00.00
+unspsc7#71.11.20.21.00#Production logging flow measurement services#71.11.20.00.00
+unspsc7#71.11.20.22.00#Production logging pressure measurement services#71.11.20.00.00
+unspsc7#71.11.20.23.00#Other production logging services#71.11.20.00.00
+unspsc7#71.11.20.24.00#Production logging temperature measurement services#71.11.20.00.00
+unspsc7#71.11.20.25.00#Severing colliding services#71.11.20.00.00
+unspsc7#71.11.20.26.00#Well logging sonic services#71.11.20.00.00
+unspsc7#71.11.20.27.00#Stuck point tool services#71.11.20.00.00
+unspsc7#71.11.20.28.00#Thermal decay well logging services#71.11.20.00.00
+unspsc7#71.11.20.29.00#Well tubular corrosion evaluation services#71.11.20.00.00
+unspsc7#71.11.20.30.00#Well performance services#71.11.20.00.00
+unspsc7#71.11.20.31.00#Well tubular services#71.11.20.00.00
+unspsc7#71.11.21.00.00#Open hole well logging services#71.11.00.00.00
+unspsc7#71.11.21.01.00#Digital sonic logging services#71.11.21.00.00
+unspsc7#71.11.21.02.00#Borehole geometry logging services#71.11.21.00.00
+unspsc7#71.11.21.03.00#Density lithology nuclear logging services#71.11.21.00.00
+unspsc7#71.11.21.04.00#Dipmeter logging services#71.11.21.00.00
+unspsc7#71.11.21.05.00#Dipole sonic logging services#71.11.21.00.00
+unspsc7#71.11.21.06.00#Directional logging services#71.11.21.00.00
+unspsc7#71.11.21.07.00#Directional survey services#71.11.21.00.00
+unspsc7#71.11.21.08.00#Electromagnetic propagation logging services#71.11.21.00.00
+unspsc7#71.11.21.09.00#Formation testing sampling services#71.11.21.00.00
+unspsc7#71.11.21.10.00#Fracture identification logging services#71.11.21.00.00
+unspsc7#71.11.21.11.00#Gamma ray logging services#71.11.21.00.00
+unspsc7#71.11.21.12.00#Gamma ray spectroscopy logging services#71.11.21.00.00
+unspsc7#71.11.21.13.00#Geochemical nuclear logging services#71.11.21.00.00
+unspsc7#71.11.21.14.00#Well imaging services#71.11.21.00.00
+unspsc7#71.11.21.15.00#Magnetic resonance logging services#71.11.21.00.00
+unspsc7#71.11.21.16.00#Microresistivity logging services#71.11.21.00.00
+unspsc7#71.11.21.17.00#Neutron porosity logging services#71.11.21.00.00
+unspsc7#71.11.21.18.00#Petrophysics services#71.11.21.00.00
+unspsc7#71.11.21.19.00#Resistivity logging services#71.11.21.00.00
+unspsc7#71.11.21.20.00#Slim access sonic logging services#71.11.21.00.00
+unspsc7#71.11.21.21.00#Sonic cement bond ratio logging services#71.11.21.00.00
+unspsc7#71.11.21.22.00#Well sonic imaging services#71.11.21.00.00
+unspsc7#71.11.22.00.00#Other logging services#71.11.00.00.00
+unspsc7#71.11.22.01.00#Logging with coiled tubing services#71.11.22.00.00
+unspsc7#71.11.22.02.00#Logging while drilling services#71.11.22.00.00
+unspsc7#71.11.22.03.00#Logging during fishing services#71.11.22.00.00
+unspsc7#71.11.22.04.00#Logging while perforating services#71.11.22.00.00
+unspsc7#71.11.22.05.00#Drill pipe conveyed well services#71.11.22.00.00
+unspsc7#71.11.22.06.00#General well logging services#71.11.22.00.00
+unspsc7#71.11.23.00.00#Seismic services#71.11.00.00.00
+unspsc7#71.11.23.01.00#Two dimensional land seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.02.00#Two dimensional marine seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.03.00#Two dimensional seismic data processing services#71.11.23.00.00
+unspsc7#71.11.23.04.00#Three dimensional land seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.05.00#Three dimensional marine seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.06.00#Three dimensional seismic data processing services#71.11.23.00.00
+unspsc7#71.11.23.07.00#Four dimensional land seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.08.00#Four dimensional marine seismic acquisition services#71.11.23.00.00
+unspsc7#71.11.23.09.00#Four dimensional seismic data processing services#71.11.23.00.00
+unspsc7#71.11.23.10.00#Checkshot seismic services#71.11.23.00.00
+unspsc7#71.11.23.11.00#Cross well seismic services#71.11.23.00.00
+unspsc7#71.11.23.12.00#Deviated well seismic services#71.11.23.00.00
+unspsc7#71.11.23.13.00#Geophysics seismic services#71.11.23.00.00
+unspsc7#71.11.23.14.00#Offset seismic services#71.11.23.00.00
+unspsc7#71.11.23.15.00#Quickshot seismic services#71.11.23.00.00
+unspsc7#71.11.23.16.00#Seismic data acquisition while drilling services#71.11.23.00.00
+unspsc7#71.11.23.17.00#Slim hole seismic services#71.11.23.00.00
+unspsc7#71.11.23.18.00#Seismic survey evaluation or design services#71.11.23.00.00
+unspsc7#71.11.23.19.00#Vertical seismic services#71.11.23.00.00
+unspsc7#71.11.23.20.00#Walkaway seismic services#71.11.23.00.00
+unspsc7#71.11.23.21.00#Geological services#71.11.23.00.00
+unspsc7#71.12.00.00.00#Well drilling construction and maintenance services#71.00.00.00.00
+unspsc7#71.12.10.00.00#Cement pumping services#71.12.00.00.00
+unspsc7#71.12.10.01.00#Oilfield casing hardware services#71.12.10.00.00
+unspsc7#71.12.10.02.00#Oilfield cement lab testing services#71.12.10.00.00
+unspsc7#71.12.10.03.00#Downhole oilfield tools services#71.12.10.00.00
+unspsc7#71.12.10.04.00#Oilfield filtering services#71.12.10.00.00
+unspsc7#71.12.10.05.00#Foam cementing services#71.12.10.00.00
+unspsc7#71.12.10.06.00#Geothermal well cementing services#71.12.10.00.00
+unspsc7#71.12.10.07.00#Liner cementing services#71.12.10.00.00
+unspsc7#71.12.10.08.00#Oilwell lost circulation services#71.12.10.00.00
+unspsc7#71.12.10.09.00#Oilfield mud removal services#71.12.10.00.00
+unspsc7#71.12.10.10.00#Plug cementing services#71.12.10.00.00
+unspsc7#71.12.10.11.00#Well site pressure pumping services#71.12.10.00.00
+unspsc7#71.12.10.12.00#Oilfield pressure testing services#71.12.10.00.00
+unspsc7#71.12.10.13.00#Surface casing cementing services#71.12.10.00.00
+unspsc7#71.12.10.14.00#Intermediate casing cementing services#71.12.10.00.00
+unspsc7#71.12.10.15.00#Production string cementing services#71.12.10.00.00
+unspsc7#71.12.10.16.00#Squeeze well cementing services#71.12.10.00.00
+unspsc7#71.12.10.17.00#Well water control services#71.12.10.00.00
+unspsc7#71.12.10.18.00#Well cement evaluation services#71.12.10.00.00
+unspsc7#71.12.10.19.00#Well cement grouting services#71.12.10.00.00
+unspsc7#71.12.10.20.00#Well cementing additives services#71.12.10.00.00
+unspsc7#71.12.10.21.00#Well cementing design services#71.12.10.00.00
+unspsc7#71.12.10.22.00#Well cleaning services#71.12.10.00.00
+unspsc7#71.12.10.23.00#Well repair services#71.12.10.00.00
+unspsc7#71.12.11.00.00#Coiled tubing services#71.12.00.00.00
+unspsc7#71.12.11.01.00#Acidizing through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.02.00#Cable installation through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.03.00#Cementing through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.04.00#Chemical cutting through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.05.00#Clean out through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.06.00#Completion through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.07.00#Conveying inflatables through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.08.00#Coring through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.09.00#Extended reach well services#71.12.11.00.00
+unspsc7#71.12.11.10.00#Fishing through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.11.00#Fracturing through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.12.00#High pressure coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.13.00#Horizontal isolation oilfield services#71.12.11.00.00
+unspsc7#71.12.11.14.00#Logging with coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.15.00#Milling through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.16.00#Nitrogen related applications through coiled tubing#71.12.11.00.00
+unspsc7#71.12.11.17.00#Perforating through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.18.00#Pipeline or flowline laying services#71.12.11.00.00
+unspsc7#71.12.11.19.00#Pipeline intervention services#71.12.11.00.00
+unspsc7#71.12.11.20.00#Sand control through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.21.00#Abrasive tubular cleaning services#71.12.11.00.00
+unspsc7#71.12.11.22.00#Well kill through coiled tubing services#71.12.11.00.00
+unspsc7#71.12.11.23.00#Casing exit with coiled tubing services#71.12.11.00.00
+unspsc7#71.12.12.00.00#Coring services#71.12.00.00.00
+unspsc7#71.12.12.01.00#Conventional coring services#71.12.12.00.00
+unspsc7#71.12.12.02.00#Core isolation services#71.12.12.00.00
+unspsc7#71.12.12.03.00#Core preservation services#71.12.12.00.00
+unspsc7#71.12.12.04.00#Horizontal coring services#71.12.12.00.00
+unspsc7#71.12.12.05.00#Oriented coring services#71.12.12.00.00
+unspsc7#71.12.12.06.00#Rig site core analysis services#71.12.12.00.00
+unspsc7#71.12.12.07.00#Sponge coring services#71.12.12.00.00
+unspsc7#71.12.12.08.00#Wireline retrievable coring services#71.12.12.00.00
+unspsc7#71.12.13.00.00#Downhole tool services#71.12.00.00.00
+unspsc7#71.12.13.01.00#Downhole vibration control services#71.12.13.00.00
+unspsc7#71.12.13.02.00#Downhole hole opening services#71.12.13.00.00
+unspsc7#71.12.13.03.00#Reaming while drilling services#71.12.13.00.00
+unspsc7#71.12.13.04.00#Downhole torque or drag reduction services#71.12.13.00.00
+unspsc7#71.12.13.05.00#Downhole underreaming services#71.12.13.00.00
+unspsc7#71.12.14.00.00#Oilfield drilling bit services#71.12.00.00.00
+unspsc7#71.12.14.01.00#Oilfield drilling bit design services#71.12.14.00.00
+unspsc7#71.12.14.02.00#Oilfield drilling bit hydraulic optimization services#71.12.14.00.00
+unspsc7#71.12.14.03.00#Oilfield drilling bit planning services#71.12.14.00.00
+unspsc7#71.12.14.04.00#Oilfield drilling bit recording services#71.12.14.00.00
+unspsc7#71.12.14.05.00#Oilfield drilling bit repair services#71.12.14.00.00
+unspsc7#71.12.14.06.00#Oilfield drilling bit footage contracts#71.12.14.00.00
+unspsc7#71.12.14.07.00#Well site drilling optimization assistance service#71.12.14.00.00
+unspsc7#71.12.15.00.00#Drilling measurement services#71.12.00.00.00
+unspsc7#71.12.15.01.00#Acoustic measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.02.00#Acoustic telemetry when drilling services#71.12.15.00.00
+unspsc7#71.12.15.03.00#Caliper measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.04.00#Density measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.05.00#Oilfield drilling performance services#71.12.15.00.00
+unspsc7#71.12.15.06.00#Electromagnetic telemetry when drilling services#71.12.15.00.00
+unspsc7#71.12.15.07.00#Formation dip measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.08.00#Formation pressure measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.09.00#Geologically steered wells#71.12.15.00.00
+unspsc7#71.12.15.10.00#Geostopping services#71.12.15.00.00
+unspsc7#71.12.15.11.00#Mud logging services#71.12.15.00.00
+unspsc7#71.12.15.12.00#Nuclear magnetic resonance services#71.12.15.00.00
+unspsc7#71.12.15.13.00#Porosity measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.14.00#Resistivity measurement when drilling services#71.12.15.00.00
+unspsc7#71.12.15.15.00#Well surveying management services#71.12.15.00.00
+unspsc7#71.12.15.16.00#Surveying wireline services#71.12.15.00.00
+unspsc7#71.12.16.00.00#Oil well drilling services#71.12.00.00.00
+unspsc7#71.12.16.01.00#Well casing crew service#71.12.16.00.00
+unspsc7#71.12.16.02.00#Well casing planning services#71.12.16.00.00
+unspsc7#71.12.16.03.00#Well casing milling services#71.12.16.00.00
+unspsc7#71.12.16.04.00#Coiled tubing drilling services#71.12.16.00.00
+unspsc7#71.12.16.05.00#Well completion planning services#71.12.16.00.00
+unspsc7#71.12.16.06.00#Conventional well directional drilling services#71.12.16.00.00
+unspsc7#71.12.16.07.00#Well directional drilling services#71.12.16.00.00
+unspsc7#71.12.16.08.00#Well drilling contract development services#71.12.16.00.00
+unspsc7#71.12.16.09.00#Well drilling services#71.12.16.00.00
+unspsc7#71.12.16.10.00#Well drilling engineering services#71.12.16.00.00
+unspsc7#71.12.16.11.00#Well drilling mud or fluid services#71.12.16.00.00
+unspsc7#71.12.16.12.00#Well drilling of water intake well services#71.12.16.00.00
+unspsc7#71.12.16.13.00#Well drilling rig monitor services#71.12.16.00.00
+unspsc7#71.12.16.14.00#Well drilling solids control#71.12.16.00.00
+unspsc7#71.12.16.15.00#Well drilling stabilizing or hole opening services#71.12.16.00.00
+unspsc7#71.12.16.16.00#Well drilling supervision#71.12.16.00.00
+unspsc7#71.12.16.17.00#Well drilling control services#71.12.16.00.00
+unspsc7#71.12.16.18.00#Well drilling other general services#71.12.16.00.00
+unspsc7#71.12.16.19.00#Extended reach directional well drilling services#71.12.16.00.00
+unspsc7#71.12.16.20.00#Multilateral directional well drilling services#71.12.16.00.00
+unspsc7#71.12.16.21.00#Oil country tubular modification or testing services#71.12.16.00.00
+unspsc7#71.12.16.22.00#Well drilling pickup or laydown service#71.12.16.00.00
+unspsc7#71.12.16.23.00#Well drilling pipe storage#71.12.16.00.00
+unspsc7#71.12.16.24.00#Well drilling pipe threading#71.12.16.00.00
+unspsc7#71.12.16.25.00#Rathole well drilling service#71.12.16.00.00
+unspsc7#71.12.16.26.00#Short radius directional well drilling services#71.12.16.00.00
+unspsc7#71.12.16.27.00#Steerable underreaming while well drilling services#71.12.16.00.00
+unspsc7#71.12.16.28.00#Ultra short radius directional well drilling services#71.12.16.00.00
+unspsc7#71.12.16.29.00#Underbalanced well drilling services#71.12.16.00.00
+unspsc7#71.12.16.30.00#Well planning services#71.12.16.00.00
+unspsc7#71.12.16.31.00#Well redrilling or reworking services#71.12.16.00.00
+unspsc7#71.12.16.32.00#Well drilling deviation control#71.12.16.00.00
+unspsc7#71.12.16.33.00#Oilfield gravel packing services#71.12.16.00.00
+unspsc7#71.12.16.34.00#Oilfield hull systems services#71.12.16.00.00
+unspsc7#71.12.16.35.00#Rig well pulling crew services#71.12.16.00.00
+unspsc7#71.12.16.36.00#Wellhead equipment services#71.12.16.00.00
+unspsc7#71.12.16.37.00#Sidetracking with whipstock services#71.12.16.00.00
+unspsc7#71.12.17.00.00#Oilfield fishing services#71.12.00.00.00
+unspsc7#71.12.17.01.00#Oilfield fishing service design services#71.12.17.00.00
+unspsc7#71.12.17.02.00#Oilfield fishing service economic evaluation services#71.12.17.00.00
+unspsc7#71.12.17.03.00#Oilfield fishing service operation services#71.12.17.00.00
+unspsc7#71.12.17.04.00#Oilfield junk recovery services#71.12.17.00.00
+unspsc7#71.12.17.05.00#Oilfield pipe recovery service#71.12.17.00.00
+unspsc7#71.12.17.06.00#Oilfield fishing or drilling services#71.12.17.00.00
+unspsc7#71.12.18.00.00#Gas lift services#71.12.00.00.00
+unspsc7#71.12.18.01.00#Coiled tubing gas lift services#71.12.18.00.00
+unspsc7#71.12.18.02.00#Gas lift fixing or testing services#71.12.18.00.00
+unspsc7#71.12.18.03.00#Gas lift kickover services#71.12.18.00.00
+unspsc7#71.12.18.04.00#Gas lift sand containment services#71.12.18.00.00
+unspsc7#71.12.19.00.00#Down hole fluid services#71.12.00.00.00
+unspsc7#71.12.19.01.00#Down hole fluid evaluation services#71.12.19.00.00
+unspsc7#71.12.19.02.00#Down hole fluid laboratory services#71.12.19.00.00
+unspsc7#71.12.19.03.00#Down hole fluid sampling services#71.12.19.00.00
+unspsc7#71.12.20.00.00#Well perforating services#71.12.00.00.00
+unspsc7#71.12.20.01.00#Coiled tubing well perforating services#71.12.20.00.00
+unspsc7#71.12.20.02.00#Slickline well perforating services#71.12.20.00.00
+unspsc7#71.12.20.03.00#Through tubing well perforation services#71.12.20.00.00
+unspsc7#71.12.20.04.00#Tubing conveyed well perforating services#71.12.20.00.00
+unspsc7#71.12.20.05.00#Wireline well perforating services#71.12.20.00.00
+unspsc7#71.12.20.06.00#Well tubing puncher services#71.12.20.00.00
+unspsc7#71.12.21.00.00#Oilfield sand control services#71.12.00.00.00
+unspsc7#71.12.21.01.00#Acid sand control pumping services#71.12.21.00.00
+unspsc7#71.12.21.02.00#Sand control blending services#71.12.21.00.00
+unspsc7#71.12.21.03.00#Cleaning fluid sand control services#71.12.21.00.00
+unspsc7#71.12.21.04.00#Completion fluid sand control services#71.12.21.00.00
+unspsc7#71.12.21.05.00#Well consolidation services#71.12.21.00.00
+unspsc7#71.12.21.06.00#Oilfield filtering services#71.12.21.00.00
+unspsc7#71.12.21.07.00#Fracturing fluid sand control services#71.12.21.00.00
+unspsc7#71.12.21.08.00#Fracturing pre frac design testing services#71.12.21.00.00
+unspsc7#71.12.21.09.00#General sand control services#71.12.21.00.00
+unspsc7#71.12.21.10.00#Gravel carrier fluid sand control services#71.12.21.00.00
+unspsc7#71.12.21.11.00#Sand control lab testing services#71.12.21.00.00
+unspsc7#71.12.21.12.00#Multizone sand control services#71.12.21.00.00
+unspsc7#71.12.21.13.00#Sand control monitoring services#71.12.21.00.00
+unspsc7#71.12.21.14.00#Sand control temporary isolation services#71.12.21.00.00
+unspsc7#71.12.21.15.00#Well tool redressing services#71.12.21.00.00
+unspsc7#71.12.21.16.00#Non fracturing sand control pumping services#71.12.21.00.00
+unspsc7#71.12.22.00.00#Slickline services#71.12.00.00.00
+unspsc7#71.12.22.01.00#Slickline fishing services#71.12.22.00.00
+unspsc7#71.12.22.02.00#Slickline lifting services#71.12.22.00.00
+unspsc7#71.12.22.03.00#Slickline manipulation services#71.12.22.00.00
+unspsc7#71.12.23.00.00#Subsea well services#71.12.00.00.00
+unspsc7#71.12.23.01.00#Subsea well diving services#71.12.23.00.00
+unspsc7#71.12.23.02.00#Subsea well remote operation vehicle rov services#71.12.23.00.00
+unspsc7#71.12.23.03.00#Subsea well fixturing or test equipment services#71.12.23.00.00
+unspsc7#71.12.23.04.00#Subsea well intervention or completion services#71.12.23.00.00
+unspsc7#71.12.23.05.00#Subsea well safety test tree services#71.12.23.00.00
+unspsc7#71.12.23.06.00#Subsea well equipment maintenance services#71.12.23.00.00
+unspsc7#71.12.24.00.00#Well testing services#71.12.00.00.00
+unspsc7#71.12.24.01.00#Drill stem flow metering services#71.12.24.00.00
+unspsc7#71.12.24.02.00#Drill stem surface testing services#71.12.24.00.00
+unspsc7#71.12.24.03.00#Drill stem testing packer services#71.12.24.00.00
+unspsc7#71.12.24.04.00#Drill stem testing pressure control test services#71.12.24.00.00
+unspsc7#71.12.24.05.00#Drill stem testing pulse operated test services#71.12.24.00.00
+unspsc7#71.12.24.06.00#Drill stem testing for ultra high press high temp environment services#71.12.24.00.00
+unspsc7#71.12.24.07.00#Drill stem testing services#71.12.24.00.00
+unspsc7#71.12.24.08.00#Periodic well testing services#71.12.24.00.00
+unspsc7#71.12.24.09.00#Surface well testing services#71.12.24.00.00
+unspsc7#71.12.24.10.00#Underbalanced testing while drilling services#71.12.24.00.00
+unspsc7#71.12.25.00.00#Water or gas control services#71.12.00.00.00
+unspsc7#71.12.25.01.00#Water or gas control design services#71.12.25.00.00
+unspsc7#71.12.25.02.00#Water or gas control evaluation services#71.12.25.00.00
+unspsc7#71.12.25.03.00#Water or gas control isolation services#71.12.25.00.00
+unspsc7#71.12.25.04.00#Water or gas control testing services#71.12.25.00.00
+unspsc7#71.12.25.05.00#Water or gas testing services#71.12.25.00.00
+unspsc7#71.12.26.00.00#Well completion services#71.12.00.00.00
+unspsc7#71.12.26.01.00#Well casing completion services#71.12.26.00.00
+unspsc7#71.12.26.02.00#Well completion fluids services#71.12.26.00.00
+unspsc7#71.12.26.03.00#Gas lift well completion services#71.12.26.00.00
+unspsc7#71.12.26.04.00#Horizontal cased hole services#71.12.26.00.00
+unspsc7#71.12.26.05.00#Horizontal open hole services#71.12.26.00.00
+unspsc7#71.12.26.06.00#Intelligent well completion services#71.12.26.00.00
+unspsc7#71.12.26.07.00#Liner well completion services#71.12.26.00.00
+unspsc7#71.12.26.08.00#Multilateral well completion services#71.12.26.00.00
+unspsc7#71.12.26.09.00#Permanent well completion services#71.12.26.00.00
+unspsc7#71.12.26.10.00#Sand control well completion services#71.12.26.00.00
+unspsc7#71.12.26.11.00#Temporary drill stem testing well completion services#71.12.26.00.00
+unspsc7#71.12.26.12.00#Tubing well completion services#71.12.26.00.00
+unspsc7#71.12.26.13.00#Underbalanced well completion services#71.12.26.00.00
+unspsc7#71.12.27.00.00#Well maintenance services#71.12.00.00.00
+unspsc7#71.12.27.01.00#Oil well platform maintenance services#71.12.27.00.00
+unspsc7#71.12.27.02.00#Oilfield pumping unit maintenance services#71.12.27.00.00
+unspsc7#71.12.27.03.00#Oilfield rod pump repair services#71.12.27.00.00
+unspsc7#71.12.27.04.00#Oilfield snubbing service#71.12.27.00.00
+unspsc7#71.12.27.05.00#Oilfield sucker rod maintenance services#71.12.27.00.00
+unspsc7#71.12.27.06.00#Well swabbing services#71.12.27.00.00
+unspsc7#71.12.27.07.00#Oilfield tubing anchor services#71.12.27.00.00
+unspsc7#71.12.27.08.00#Oilfield pump mechanic services#71.12.27.00.00
+unspsc7#71.12.28.00.00#Well monitoring services#71.12.00.00.00
+unspsc7#71.12.28.01.00#Downhole recording services#71.12.28.00.00
+unspsc7#71.12.28.02.00#Well flow monitoring services#71.12.28.00.00
+unspsc7#71.12.28.03.00#Oil or gas well monitoring services#71.12.28.00.00
+unspsc7#71.12.28.04.00#Well site phase monitoring services#71.12.28.00.00
+unspsc7#71.12.28.05.00#Well site pump monitoring services#71.12.28.00.00
+unspsc7#71.12.28.06.00#Well site surface data acquisition services#71.12.28.00.00
+unspsc7#71.12.28.07.00#Well site surface readout services#71.12.28.00.00
+unspsc7#71.12.28.08.00#Well site surface recording services#71.12.28.00.00
+unspsc7#71.12.28.09.00#Surface well testing services#71.12.28.00.00
+unspsc7#71.12.28.10.00#Subsurface well testing services#71.12.28.00.00
+unspsc7#71.12.29.00.00#Oilfield rigs#71.12.00.00.00
+unspsc7#71.12.29.01.00#Deepwater oilfield rig services#71.12.29.00.00
+unspsc7#71.12.29.02.00#Jackup oilfield rig services#71.12.29.00.00
+unspsc7#71.12.29.03.00#Barge oilfield rig services#71.12.29.00.00
+unspsc7#71.12.29.04.00#Land oilfield rig services#71.12.29.00.00
+unspsc7#71.12.29.05.00#Platform oilfield rig services#71.12.29.00.00
+unspsc7#71.13.00.00.00#Oil and gas extraction and production enhancement services#71.00.00.00.00
+unspsc7#71.13.10.00.00#Well fracturing services#71.13.00.00.00
+unspsc7#71.13.10.01.00#Acid based fluid well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.02.00#Emulsion based fluid well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.03.00#Foam based fluid well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.04.00#Oil well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.05.00#Oil well scale control services#71.13.10.00.00
+unspsc7#71.13.10.06.00#Well fracture testing services#71.13.10.00.00
+unspsc7#71.13.10.07.00#Well fracturing downhole evaluation services#71.13.10.00.00
+unspsc7#71.13.10.08.00#Well fracturing height control services#71.13.10.00.00
+unspsc7#71.13.10.09.00#Well fracturing monitoring services#71.13.10.00.00
+unspsc7#71.13.10.10.00#Well fracturing service design services#71.13.10.00.00
+unspsc7#71.13.10.11.00#Well fracturing service evaluation services#71.13.10.00.00
+unspsc7#71.13.10.12.00#Well fracturing surface evaluation services#71.13.10.00.00
+unspsc7#71.13.10.13.00#Well fracturing treatment quality control services#71.13.10.00.00
+unspsc7#71.13.10.14.00#Oil based fluid well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.15.00#Other well fracturing services#71.13.10.00.00
+unspsc7#71.13.10.16.00#Well fracturing stress management services#71.13.10.00.00
+unspsc7#71.13.10.17.00#Water based fluid well fracturing services#71.13.10.00.00
+unspsc7#71.13.11.00.00#Matrix stimulation services#71.13.00.00.00
+unspsc7#71.13.11.01.00#Acid based matrix stimulation services#71.13.11.00.00
+unspsc7#71.13.11.02.00#Formation sealer matrix stimulation services#71.13.11.00.00
+unspsc7#71.13.11.03.00#Matrix organic cleanup services#71.13.11.00.00
+unspsc7#71.13.11.04.00#Matrix organic inhibition services#71.13.11.00.00
+unspsc7#71.13.11.05.00#Matrix scale cleanup services#71.13.11.00.00
+unspsc7#71.13.11.06.00#Matrix scale inhibition services#71.13.11.00.00
+unspsc7#71.13.11.07.00#Matrix treatment design services#71.13.11.00.00
+unspsc7#71.13.11.08.00#Matrix treatment diversion services#71.13.11.00.00
+unspsc7#71.13.11.09.00#Matrix treatment evaluation services#71.13.11.00.00
+unspsc7#71.13.11.10.00#Matrix treatment quality control services#71.13.11.00.00
+unspsc7#71.13.11.11.00#Non acid based matrix stimulation services#71.13.11.00.00
+unspsc7#71.13.12.00.00#Oilfield nitrogen services#71.13.00.00.00
+unspsc7#71.13.12.01.00#Nitrogen well services#71.13.12.00.00
+unspsc7#71.13.13.00.00#Other oilfield pumping services#71.13.00.00.00
+unspsc7#71.13.13.01.00#Bottom intake oilfield pumping services#71.13.13.00.00
+unspsc7#71.13.13.02.00#Cable deployed oilfield pumping services#71.13.13.00.00
+unspsc7#71.13.13.03.00#Co2 oilfield pumping services#71.13.13.00.00
+unspsc7#71.13.13.04.00#Coiled tubing deployed oilfield pumping services#71.13.13.00.00
+unspsc7#71.13.13.05.00#Downhole pumping services#71.13.13.00.00
+unspsc7#71.13.13.06.00#Dual completion well services#71.13.13.00.00
+unspsc7#71.13.13.07.00#Horizontal pumping well services#71.13.13.00.00
+unspsc7#71.13.13.08.00#Oilfield pumping installation pull or operation services#71.13.13.00.00
+unspsc7#71.13.13.09.00#Well profile modification services#71.13.13.00.00
+unspsc7#71.13.13.10.00#Oilfield spooling services#71.13.13.00.00
+unspsc7#71.13.14.00.00#Well production services#71.13.00.00.00
+unspsc7#71.13.14.01.00#Oilfield flare system services#71.13.14.00.00
+unspsc7#71.13.14.02.00#Oilfield hot oil or water service#71.13.14.00.00
+unspsc7#71.13.14.03.00#Oilfield steaming services#71.13.14.00.00
+unspsc7#71.14.00.00.00#Oil and gas restoration and reclamation services#71.00.00.00.00
+unspsc7#71.14.10.00.00#Emergency well control services#71.14.00.00.00
+unspsc7#71.14.10.01.00#Well pressure control services#71.14.10.00.00
+unspsc7#71.14.10.02.00#Well capping services#71.14.10.00.00
+unspsc7#71.14.10.03.00#Well fire fighting services#71.14.10.00.00
+unspsc7#71.14.10.04.00#Wild well control services#71.14.10.00.00
+unspsc7#71.14.11.00.00#Well plugging and abandonment services#71.14.00.00.00
+unspsc7#71.14.11.01.00#Well abandonment services#71.14.11.00.00
+unspsc7#71.14.11.02.00#Well plugging services#71.14.11.00.00
+unspsc7#71.14.12.00.00#Well site restoration#71.14.00.00.00
+unspsc7#71.14.12.01.00#Well cleaning or swabbing services#71.14.12.00.00
+unspsc7#71.14.12.02.00#Well site restoration services#71.14.12.00.00
+unspsc7#71.15.00.00.00#Oil and gas data management and processing services#71.00.00.00.00
+unspsc7#71.15.10.00.00#Oilfield data communication services#71.15.00.00.00
+unspsc7#71.15.10.01.00#Log data transmission services#71.15.10.00.00
+unspsc7#71.15.10.02.00#Log graphics transmission services#71.15.10.00.00
+unspsc7#71.15.10.03.00#Real time well data monitoring services#71.15.10.00.00
+unspsc7#71.15.10.04.00#Satellite well data transmission services#71.15.10.00.00
+unspsc7#71.15.10.05.00#Well data transmission services#71.15.10.00.00
+unspsc7#71.15.11.00.00#Oilfield data management services#71.15.00.00.00
+unspsc7#71.15.11.01.00#Oilfield asset data management services#71.15.11.00.00
+unspsc7#71.15.11.02.00#Oilfield data mining services#71.15.11.00.00
+unspsc7#71.15.11.03.00#Log data management services#71.15.11.00.00
+unspsc7#71.15.11.04.00#Oilfield mapping data management services#71.15.11.00.00
+unspsc7#71.15.11.05.00#Seismic data management services#71.15.11.00.00
+unspsc7#71.15.12.00.00#Oilfield economic and risk model services#71.15.00.00.00
+unspsc7#71.15.12.01.00#Oilfield budgeting services#71.15.12.00.00
+unspsc7#71.15.12.02.00#Oilfield capital planning services#71.15.12.00.00
+unspsc7#71.15.12.03.00#Oilfield decision tree services#71.15.12.00.00
+unspsc7#71.15.13.00.00#Oilfield interpretation services#71.15.00.00.00
+unspsc7#71.15.13.01.00#Oilfield bubble map services#71.15.13.00.00
+unspsc7#71.15.13.02.00#Oilfield case studies#71.15.13.00.00
+unspsc7#71.15.13.03.00#Oilfield decline analysis#71.15.13.00.00
+unspsc7#71.15.13.04.00#Oilfield field studies#71.15.13.00.00
+unspsc7#71.15.13.05.00#Oilfield fracturing interpretation services#71.15.13.00.00
+unspsc7#71.15.13.06.00#Geology services#71.15.13.00.00
+unspsc7#71.15.13.07.00#Geophysics services#71.15.13.00.00
+unspsc7#71.15.13.08.00#Gravel pack interpretation services#71.15.13.00.00
+unspsc7#71.15.13.09.00#Oilfield grid mapping services#71.15.13.00.00
+unspsc7#71.15.13.10.00#Oilfield mapping or visualization services#71.15.13.00.00
+unspsc7#71.15.13.11.00#Petrophysics services#71.15.13.00.00
+unspsc7#71.15.13.12.00#Reservoir engineering services#71.15.13.00.00
+unspsc7#71.15.13.13.00#Reservoir modeling services#71.15.13.00.00
+unspsc7#71.15.13.14.00#Reservoir simulation services#71.15.13.00.00
+unspsc7#71.15.13.15.00#Rock mechanics services#71.15.13.00.00
+unspsc7#71.15.14.00.00#Well service engineering#71.15.00.00.00
+unspsc7#71.15.14.01.00#Well cementing job design services#71.15.14.00.00
+unspsc7#71.15.14.02.00#Coiled tubing job design services#71.15.14.00.00
+unspsc7#71.15.14.03.00#Well drilling job design services#71.15.14.00.00
+unspsc7#71.15.14.04.00#Well fracturing job design services#71.15.14.00.00
+unspsc7#71.15.14.05.00#Matrix stimulation job design services#71.15.14.00.00
+unspsc7#71.15.14.06.00#Well sand control job design services#71.15.14.00.00
+unspsc7#71.16.00.00.00#Oil and gas well project management services#71.00.00.00.00
+unspsc7#71.16.10.00.00#Oilfield Modeling Services#71.16.00.00.00
+unspsc7#71.16.10.01.00#Oilfield completion models#71.16.10.00.00
+unspsc7#71.16.10.02.00#Oilfield drilling models#71.16.10.00.00
+unspsc7#71.16.10.03.00#Oilfield economic models#71.16.10.00.00
+unspsc7#71.16.10.04.00#Oilfield field development models#71.16.10.00.00
+unspsc7#71.16.10.05.00#Oilfield production models#71.16.10.00.00
+unspsc7#71.16.10.06.00#Oilfield risk management services#71.16.10.00.00
+unspsc7#71.16.11.00.00#Oilfield production engineering management#71.16.00.00.00
+unspsc7#71.16.11.01.00#Oilfield artificial lift services#71.16.11.00.00
+unspsc7#71.16.11.02.00#Enhanced oil recovery services#71.16.11.00.00
+unspsc7#71.16.11.03.00#Well injection services#71.16.11.00.00
+unspsc7#71.16.11.04.00#Oilfield nodal analysis services#71.16.11.00.00
+unspsc7#71.16.11.05.00#Well perforation services#71.16.11.00.00
+unspsc7#71.16.11.06.00#Oilfield production chemistry services#71.16.11.00.00
+unspsc7#71.16.11.07.00#Oilfield production monitoring services#71.16.11.00.00
+unspsc7#71.16.11.08.00#Oilfield sand control services#71.16.11.00.00
+unspsc7#71.16.11.09.00#Well stimulation services#71.16.11.00.00
+unspsc7#71.16.11.10.00#Underground gas storage services#71.16.11.00.00
+unspsc7#71.16.11.11.00#Oilfield water management services#71.16.11.00.00
+unspsc7#71.16.12.00.00#Oilfield production operations management#71.16.00.00.00
+unspsc7#71.16.12.01.00#Oilfield hot oiling service#71.16.12.00.00
+unspsc7#71.16.12.02.00#Oilfield lease operations#71.16.12.00.00
+unspsc7#71.16.12.03.00#Oilfield logging services#71.16.12.00.00
+unspsc7#71.16.12.04.00#Oilfield paraffin cutting service#71.16.12.00.00
+unspsc7#71.16.12.05.00#Oilfield planning services#71.16.12.00.00
+unspsc7#71.16.12.06.00#Oilfield processing services#71.16.12.00.00
+unspsc7#71.16.12.07.00#Well testing services#71.16.12.00.00
+unspsc7#71.16.13.00.00#Oilfield project management services#71.16.00.00.00
+unspsc7#71.16.13.01.00#Oilfield audits or inspection services#71.16.13.00.00
+unspsc7#71.16.13.02.00#Oilfield emergency response planning services#71.16.13.00.00
+unspsc7#71.16.13.03.00#Oilfield field development services#71.16.13.00.00
+unspsc7#71.16.13.04.00#Oilfield performance monitoring services#71.16.13.00.00
+unspsc7#71.16.13.05.00#Oilfield reporting services#71.16.13.00.00
+unspsc7#71.16.13.06.00#Oilfield succession plan or handover services#71.16.13.00.00
+unspsc7#71.16.13.07.00#Oilfield training matrix services#71.16.13.00.00
+unspsc7#71.16.13.08.00#Well site logistics or procurement services#71.16.13.00.00
+unspsc7#71.16.14.00.00#Well construction management services#71.16.00.00.00
+unspsc7#71.16.14.01.00#Coiled tubing drilling services#71.16.14.00.00
+unspsc7#71.16.14.02.00#Well completion engineering services#71.16.14.00.00
+unspsc7#71.16.14.03.00#Deadman anchor services#71.16.14.00.00
+unspsc7#71.16.14.04.00#Well drilling engineering services#71.16.14.00.00
+unspsc7#71.16.14.05.00#Well site pit lining services#71.16.14.00.00
+unspsc7#71.16.14.06.00#Well plug or abandonment service#71.16.14.00.00
+unspsc7#71.16.14.07.00#Well pulling unit services#71.16.14.00.00
+unspsc7#71.16.14.08.00#Shorebase services#71.16.14.00.00
+unspsc7#71.16.14.09.00#Test pit lining services#71.16.14.00.00
+unspsc7#71.16.14.10.00#Well site vacuum truck services#71.16.14.00.00
+unspsc7#71.16.14.11.00#Underbalanced applications engineering services#71.16.14.00.00
+unspsc7#71.16.14.12.00#Well workover services#71.16.14.00.00
+unspsc7#71.16.14.13.00#Well fabrication or construction services#71.16.14.00.00
+unspsc7#71.16.15.00.00#Well site operations services#71.16.00.00.00
+unspsc7#71.16.15.01.00#Well site electrical or instrumentation services#71.16.15.00.00
+unspsc7#71.16.15.02.00#Well site heavy equipment or crane services#71.16.15.00.00
+unspsc7#71.16.15.03.00#Well site inspection or equipment testing services#71.16.15.00.00
+unspsc7#71.16.15.04.00#Well site instrument and meter services#71.16.15.00.00
+unspsc7#71.16.15.05.00#Well site valve or valve part services#71.16.15.00.00
+unspsc7#72.00.00.00.00#Building and Construction and Maintenance Services#72.00.00.00.00
+unspsc7#72.10.00.00.00#Building construction and support and maintenance and repair services#72.00.00.00.00
+unspsc7#72.10.15.00.00#Building support services#72.10.00.00.00
+unspsc7#72.10.15.01.00#Handyman services#72.10.15.00.00
+unspsc7#72.10.15.02.00#Scaffolding services#72.10.15.00.00
+unspsc7#72.10.15.03.00#Rigging services#72.10.15.00.00
+unspsc7#72.10.15.04.00#Disaster proofing or contingency services#72.10.15.00.00
+unspsc7#72.10.15.05.00#Locksmith services#72.10.15.00.00
+unspsc7#72.10.16.00.00#Roofing and siding and sheet metal work#72.10.00.00.00
+unspsc7#72.10.16.01.00#Roofing installation or repair#72.10.16.00.00
+unspsc7#72.10.16.02.00#Skylight installation#72.10.16.00.00
+unspsc7#72.10.16.03.00#Gutter or downspout services#72.10.16.00.00
+unspsc7#72.10.16.04.00#Architectural sheet metal work#72.10.16.00.00
+unspsc7#72.10.16.05.00#Ceiling erection or repair#72.10.16.00.00
+unspsc7#72.10.16.06.00#Chute installation#72.10.16.00.00
+unspsc7#72.10.16.07.00#Siding installation or repair#72.10.16.00.00
+unspsc7#72.10.17.00.00#Concrete work#72.10.00.00.00
+unspsc7#72.10.17.01.00#Exterior concrete or stucco services#72.10.17.00.00
+unspsc7#72.10.17.02.00#Grouting services#72.10.17.00.00
+unspsc7#72.10.17.03.00#Sidewalk or curb construction#72.10.17.00.00
+unspsc7#72.10.17.04.00#Foundation or slab work#72.10.17.00.00
+unspsc7#72.10.18.00.00#Exterior cleaning#72.10.00.00.00
+unspsc7#72.10.18.01.00#Sandblasting#72.10.18.00.00
+unspsc7#72.10.18.02.00#High pressure water blasting#72.10.18.00.00
+unspsc7#72.10.18.03.00#Steam cleaning#72.10.18.00.00
+unspsc7#72.10.19.00.00#Interior finishing#72.10.00.00.00
+unspsc7#72.10.19.01.00#Interior design or decorating#72.10.19.00.00
+unspsc7#72.10.19.02.00#Plastering or drywall#72.10.19.00.00
+unspsc7#72.10.19.03.00#Finish carpentry or cabinetry#72.10.19.00.00
+unspsc7#72.10.20.00.00#Coating and caulking and weather and water and fireproofing#72.10.00.00.00
+unspsc7#72.10.20.01.00#Caulking#72.10.20.00.00
+unspsc7#72.10.20.02.00#Plastic encasement or coating of structural materials#72.10.20.00.00
+unspsc7#72.10.20.03.00#Coating or glazing of metal or wood or concrete structural materials#72.10.20.00.00
+unspsc7#72.10.20.04.00#Dampproofing#72.10.20.00.00
+unspsc7#72.10.20.05.00#Fireproofing of buildings#72.10.20.00.00
+unspsc7#72.10.20.06.00#Wrapping of pipes#72.10.20.00.00
+unspsc7#72.10.21.00.00#Pest control#72.10.00.00.00
+unspsc7#72.10.21.01.00#Bird proofing services#72.10.21.00.00
+unspsc7#72.10.21.02.00#Termite control services#72.10.21.00.00
+unspsc7#72.10.21.03.00#Extermination or fumigation services#72.10.21.00.00
+unspsc7#72.10.21.04.00#Structural pest control#72.10.21.00.00
+unspsc7#72.10.21.05.00#Animal trapping#72.10.21.00.00
+unspsc7#72.10.21.06.00#Rodent control#72.10.21.00.00
+unspsc7#72.10.22.00.00#Electrical services#72.10.00.00.00
+unspsc7#72.10.22.01.00#Electric power systems installation or service#72.10.22.00.00
+unspsc7#72.10.22.02.00#Electronic controls installation#72.10.22.00.00
+unspsc7#72.10.22.03.00#Communication equipment installation#72.10.22.00.00
+unspsc7#72.10.22.04.00#Safety or security systems installation#72.10.22.00.00
+unspsc7#72.10.22.05.00#Cabling service#72.10.22.00.00
+unspsc7#72.10.23.00.00#Plumbing and heating and air conditioning#72.10.00.00.00
+unspsc7#72.10.23.01.00#Boiler installation or adjustment or maintenance or repair services#72.10.23.00.00
+unspsc7#72.10.23.02.00#Heating systems installation repair or maintenance#72.10.23.00.00
+unspsc7#72.10.23.03.00#Plumbing system construction#72.10.23.00.00
+unspsc7#72.10.23.04.00#Plumbing system maintenance or repair#72.10.23.00.00
+unspsc7#72.10.23.05.00#Air conditioning installation or maintenance or repair services#72.10.23.00.00
+unspsc7#72.10.24.00.00#Painting and paper hanging#72.10.00.00.00
+unspsc7#72.10.24.01.00#Exterior painting services#72.10.24.00.00
+unspsc7#72.10.24.02.00#Interior painting services#72.10.24.00.00
+unspsc7#72.10.24.03.00#Wallcovering services#72.10.24.00.00
+unspsc7#72.10.24.04.00#Industrial or specialized paint application for aircraft or ship or bridge#72.10.24.00.00
+unspsc7#72.10.24.05.00#Pavement marking services#72.10.24.00.00
+unspsc7#72.10.25.00.00#Masonry and stonework and tile setting#72.10.00.00.00
+unspsc7#72.10.25.01.00#Bricklaying#72.10.25.00.00
+unspsc7#72.10.25.02.00#Chimney construction or maintenance#72.10.25.00.00
+unspsc7#72.10.25.03.00#Marble or stone or tile installation#72.10.25.00.00
+unspsc7#72.10.25.04.00#Retaining wall construction#72.10.25.00.00
+unspsc7#72.10.25.05.00#Fresco work#72.10.25.00.00
+unspsc7#72.10.25.06.00#Acoustical#72.10.25.00.00
+unspsc7#72.10.25.07.00#Insulating material installation#72.10.25.00.00
+unspsc7#72.10.25.08.00#Restoration of masonry or stonework or tile#72.10.25.00.00
+unspsc7#72.10.26.00.00#Carpentry#72.10.00.00.00
+unspsc7#72.10.26.01.00#Rough carpentry#72.10.26.00.00
+unspsc7#72.10.26.02.00#Windows or door or fixture installation#72.10.26.00.00
+unspsc7#72.10.26.03.00#Furniture installation#72.10.26.00.00
+unspsc7#72.10.27.00.00#Flooring service#72.10.00.00.00
+unspsc7#72.10.27.01.00#Floor sheathing or laying or installation or finishing#72.10.27.00.00
+unspsc7#72.10.27.02.00#Floor covering installation or maintenance#72.10.27.00.00
+unspsc7#72.10.27.03.00#Floor cleaning services#72.10.27.00.00
+unspsc7#72.10.28.00.00#Refurbishing services#72.10.00.00.00
+unspsc7#72.10.28.01.00#Renovation of buildings or landmarks or monuments#72.10.28.00.00
+unspsc7#72.10.28.02.00#Restoration of buildings or landmarks or monuments#72.10.28.00.00
+unspsc7#72.10.29.00.00#Grounds maintenance services#72.10.00.00.00
+unspsc7#72.10.29.01.00#Snow Removal Services#72.10.29.00.00
+unspsc7#72.10.29.02.00#Landscaping services#72.10.29.00.00
+unspsc7#72.10.30.00.00#Site preparation services#72.10.00.00.00
+unspsc7#72.10.30.01.00#Land clearing services#72.10.30.00.00
+unspsc7#72.10.30.02.00#Land levelling services#72.10.30.00.00
+unspsc7#72.10.30.03.00#Demolition services#72.10.30.00.00
+unspsc7#72.10.30.04.00#Digging services#72.10.30.00.00
+unspsc7#72.11.00.00.00#General building construction#72.00.00.00.00
+unspsc7#72.11.15.00.00#Private housing#72.11.00.00.00
+unspsc7#72.11.15.01.00#Single family housing construction or remodeling or repair#72.11.15.00.00
+unspsc7#72.11.15.02.00#Residential multi tenant construction or remodeling or repair#72.11.15.00.00
+unspsc7#72.11.16.00.00#Industrial plants#72.11.00.00.00
+unspsc7#72.11.16.01.00#Commercial office building construction or remodeling or renovation or repair#72.11.16.00.00
+unspsc7#72.11.16.02.00#Industrial buildings or warehouse construction or remodeling or renovation or repair#72.11.16.00.00
+unspsc7#72.11.17.00.00#Public use buildings#72.11.00.00.00
+unspsc7#72.11.17.01.00#Specialized public use building construction#72.11.17.00.00
+unspsc7#72.11.17.02.00#Non residential agricultural building construction#72.11.17.00.00
+unspsc7#72.11.17.03.00#Service station or service garage construction#72.11.17.00.00
+unspsc7#72.11.17.04.00#Commercial building construction or erection or renovation or repair#72.11.17.00.00
+unspsc7#72.11.18.00.00#Commercial buildings#72.11.00.00.00
+unspsc7#72.11.18.01.00#Restaurant construction or renovation or repair or maintenance#72.11.18.00.00
+unspsc7#72.11.18.02.00#Shopping center or store construction or renovation or repair or maintenance#72.11.18.00.00
+unspsc7#72.11.18.03.00#Office building construction or renovation or repair or maintenance#72.11.18.00.00
+unspsc7#72.11.18.04.00#Bathroom renovation#72.11.18.00.00
+unspsc7#72.11.19.00.00#Land and building site preparation#72.11.00.00.00
+unspsc7#72.11.19.01.00#Land clearing#72.11.19.00.00
+unspsc7#72.11.19.02.00#Land leveling#72.11.19.00.00
+unspsc7#72.11.19.03.00#Building demolition#72.11.19.00.00
+unspsc7#72.12.00.00.00#Infrastructure construction and maintenance#72.00.00.00.00
+unspsc7#72.12.15.00.00#Highways and streets#72.12.00.00.00
+unspsc7#72.12.15.01.00#Highway or street or road construction#72.12.15.00.00
+unspsc7#72.12.15.02.00#Highway or street or road surfacing or paving or maintenance#72.12.15.00.00
+unspsc7#72.12.15.03.00#Highway or street guardrail construction or maintenance#72.12.15.00.00
+unspsc7#72.12.15.04.00#Highway or street sign or traffic signal installation#72.12.15.00.00
+unspsc7#72.12.16.00.00#Water and sewer and utility lines#72.12.00.00.00
+unspsc7#72.12.16.01.00#Electric power line construction or installation#72.12.16.00.00
+unspsc7#72.12.16.02.00#Cable laying#72.12.16.00.00
+unspsc7#72.12.16.03.00#Aqueduct construction or maintenance#72.12.16.00.00
+unspsc7#72.12.16.04.00#Sewer line construction or maintenance#72.12.16.00.00
+unspsc7#72.12.16.05.00#Water main construction or maintenance#72.12.16.00.00
+unspsc7#72.12.16.06.00#Voice or data line construction or maintenance#72.12.16.00.00
+unspsc7#72.12.16.07.00#Water industrial plant construction#72.12.16.00.00
+unspsc7#72.12.17.00.00#Dams and marine construction#72.12.00.00.00
+unspsc7#72.12.17.01.00#Dam construction or maintenance#72.12.17.00.00
+unspsc7#72.12.17.02.00#Pier or dock construction or maintenance#72.12.17.00.00
+unspsc7#72.12.17.03.00#Harbor or breakwater construction or maintenance#72.12.17.00.00
+unspsc7#72.12.17.04.00#Dyke or levee construction or maintenance#72.12.17.00.00
+unspsc7#72.12.17.05.00#Dredging or caisson drilling#72.12.17.00.00
+unspsc7#72.12.17.06.00#Canal or drainage or irrigation system construction or maintenance#72.12.17.00.00
+unspsc7#72.12.17.07.00#Pond construction or maintenance#72.12.17.00.00
+unspsc7#72.12.18.00.00#Railroads and subways and tramways#72.12.00.00.00
+unspsc7#72.12.18.01.00#Cutting of right of way#72.12.18.00.00
+unspsc7#72.12.18.02.00#Railroad construction or maintenance#72.12.18.00.00
+unspsc7#72.12.18.03.00#Subway construction or maintenance#72.12.18.00.00
+unspsc7#72.12.18.04.00#Tram construction or maintenance#72.12.18.00.00
+unspsc7#72.12.19.00.00#Airports and aviation#72.12.00.00.00
+unspsc7#72.12.19.01.00#Airport runway construction#72.12.19.00.00
+unspsc7#72.12.19.02.00#Airport terminal construction#72.12.19.00.00
+unspsc7#72.12.19.03.00#Helipad construction#72.12.19.00.00
+unspsc7#72.12.20.00.00#Bridges and tunnels and viaducts#72.12.00.00.00
+unspsc7#72.12.20.01.00#Bridge construction or maintenance#72.12.20.00.00
+unspsc7#72.12.20.02.00#Tunnel construction or maintenance#72.12.20.00.00
+unspsc7#72.12.20.03.00#Viaduct construction or maintenance#72.12.20.00.00
+unspsc7#72.12.21.00.00#Construction quantity surveyors#72.12.00.00.00
+unspsc7#72.12.21.01.00#Water or wastewater quantity surveyors#72.12.21.00.00
+unspsc7#72.12.22.00.00#Construction consultancy services#72.12.00.00.00
+unspsc7#72.12.22.01.00#Site supervision#72.12.22.00.00
+unspsc7#72.12.22.02.00#Industrial plant design#72.12.22.00.00
+unspsc7#73.00.00.00.00#Industrial Production and Manufacturing Services#73.00.00.00.00
+unspsc7#73.10.00.00.00#Plastic and chemical industries#73.00.00.00.00
+unspsc7#73.10.15.00.00#Petrochemical and plastic production#73.10.00.00.00
+unspsc7#73.10.15.01.00#Petroleum refining services#73.10.15.00.00
+unspsc7#73.10.15.02.00#Natural gas production services#73.10.15.00.00
+unspsc7#73.10.15.03.00#Oils or greases production services#73.10.15.00.00
+unspsc7#73.10.15.04.00#Coal production services#73.10.15.00.00
+unspsc7#73.10.15.05.00#Plastics or resins or fibers manufacturing services#73.10.15.00.00
+unspsc7#73.10.15.06.00#Credit card production or embossing services#73.10.15.00.00
+unspsc7#73.10.16.00.00#Chemicals and fertilizers production#73.10.00.00.00
+unspsc7#73.10.16.01.00#Inorganic chemicals production services#73.10.16.00.00
+unspsc7#73.10.16.02.00#Soda ash or chlorine or caustic soda production services#73.10.16.00.00
+unspsc7#73.10.16.03.00#Inorganic acids production services#73.10.16.00.00
+unspsc7#73.10.16.04.00#Organic chemical production services#73.10.16.00.00
+unspsc7#73.10.16.05.00#Acetylene or derivatives production services#73.10.16.00.00
+unspsc7#73.10.16.06.00#Ethylene or derivatives production services#73.10.16.00.00
+unspsc7#73.10.16.07.00#Ethanol or methanol or derivatives production services#73.10.16.00.00
+unspsc7#73.10.16.08.00#Fertilizers production services#73.10.16.00.00
+unspsc7#73.10.16.09.00#Potash mining or processing services#73.10.16.00.00
+unspsc7#73.10.16.10.00#Pesticide production services#73.10.16.00.00
+unspsc7#73.10.16.11.00#Paints or varnishes or lacquers production services#73.10.16.00.00
+unspsc7#73.10.16.12.00#Soap or cleaning preparations or perfumes or cosmetics production services#73.10.16.00.00
+unspsc7#73.10.16.13.00#Solvents or glycols or detergents production services#73.10.16.00.00
+unspsc7#73.10.16.14.00#Ferments or enzymes services#73.10.16.00.00
+unspsc7#73.10.17.00.00#Pharmaceutical production#73.10.00.00.00
+unspsc7#73.10.17.01.00#Drugs or medicine production services#73.10.17.00.00
+unspsc7#73.10.17.02.00#Vaccines or sera or antibiotics production services#73.10.17.00.00
+unspsc7#73.10.17.03.00#Parapharmaceutical production services#73.10.17.00.00
+unspsc7#73.10.18.00.00#Biochemical and biotechnology production#73.10.00.00.00
+unspsc7#73.10.18.01.00#Biomass production services#73.10.18.00.00
+unspsc7#73.10.18.02.00#Bioprotein production services#73.10.18.00.00
+unspsc7#73.10.19.00.00#Rubber production#73.10.00.00.00
+unspsc7#73.10.19.01.00#Rubber milling services#73.10.19.00.00
+unspsc7#73.10.19.02.00#Rubber tires or tubes production services#73.10.19.00.00
+unspsc7#73.10.19.03.00#Rubber or plastic footwear production services#73.10.19.00.00
+unspsc7#73.11.00.00.00#Wood and paper industries#73.00.00.00.00
+unspsc7#73.11.15.00.00#Wood processing#73.11.00.00.00
+unspsc7#73.11.15.01.00#Sawmilling services#73.11.15.00.00
+unspsc7#73.11.15.02.00#Veneer production services#73.11.15.00.00
+unspsc7#73.11.15.03.00#Wood base panels manufacturing services#73.11.15.00.00
+unspsc7#73.11.15.04.00#Wooden containers manufacturing services#73.11.15.00.00
+unspsc7#73.11.15.05.00#Furniture manufacturing services#73.11.15.00.00
+unspsc7#73.11.15.06.00#Cork products manufacturing services#73.11.15.00.00
+unspsc7#73.11.15.07.00#Cane or wickerware processing services#73.11.15.00.00
+unspsc7#73.11.16.00.00#Pulp and paper processing#73.11.00.00.00
+unspsc7#73.11.16.01.00#Pulp production services#73.11.16.00.00
+unspsc7#73.11.16.02.00#Paper or paper board production services#73.11.16.00.00
+unspsc7#73.11.16.03.00#Hardboard or fiberboard production services#73.11.16.00.00
+unspsc7#73.11.16.04.00#Paper production or recycling services#73.11.16.00.00
+unspsc7#73.12.00.00.00#Metal and mineral industries#73.00.00.00.00
+unspsc7#73.12.15.00.00#Metal smelting and refining and forming processes#73.12.00.00.00
+unspsc7#73.12.15.01.00#Ferrous alloy production services#73.12.15.00.00
+unspsc7#73.12.15.02.00#Basic metal combination processes services#73.12.15.00.00
+unspsc7#73.12.15.03.00#Refractors services for iron or steel production#73.12.15.00.00
+unspsc7#73.12.15.04.00#Iron or steel making services#73.12.15.00.00
+unspsc7#73.12.15.05.00#Iron or steel forging services#73.12.15.00.00
+unspsc7#73.12.15.06.00#Pre finishing iron or steel processes services#73.12.15.00.00
+unspsc7#73.12.15.07.00#Finishing metal processing services#73.12.15.00.00
+unspsc7#73.12.15.08.00#Smelting metal services#73.12.15.00.00
+unspsc7#73.12.15.09.00#Refining metal services#73.12.15.00.00
+unspsc7#73.12.16.00.00#Metal finishing#73.12.00.00.00
+unspsc7#73.12.16.01.00#Metal cutting services#73.12.16.00.00
+unspsc7#73.12.16.02.00#Blacksmith services#73.12.16.00.00
+unspsc7#73.12.16.03.00#Metal heating services#73.12.16.00.00
+unspsc7#73.12.16.04.00#Metal plating or replating services#73.12.16.00.00
+unspsc7#73.12.16.05.00#Metal rolling operations#73.12.16.00.00
+unspsc7#73.12.16.06.00#Metal forging services#73.12.16.00.00
+unspsc7#73.12.16.07.00#Metal drawing services#73.12.16.00.00
+unspsc7#73.12.16.08.00#Metal extruding services#73.12.16.00.00
+unspsc7#73.12.16.09.00#Surface metal finishing or treatment services#73.12.16.00.00
+unspsc7#73.12.16.10.00#Horseshoeing services#73.12.16.00.00
+unspsc7#73.12.16.11.00#Tinsmithing services#73.12.16.00.00
+unspsc7#73.12.16.12.00#Rebabbiting services#73.12.16.00.00
+unspsc7#73.12.16.13.00#Metal casting services#73.12.16.00.00
+unspsc7#73.12.17.00.00#Welding and brazing and soldering#73.12.00.00.00
+unspsc7#73.12.17.01.00#Welding services#73.12.17.00.00
+unspsc7#73.12.17.02.00#Brazing services#73.12.17.00.00
+unspsc7#73.12.17.03.00#Soldering services#73.12.17.00.00
+unspsc7#73.12.17.04.00#Casting services#73.12.17.00.00
+unspsc7#73.12.18.00.00#Non metallic mineral products industry services#73.12.00.00.00
+unspsc7#73.12.18.01.00#Pottery or china or earthenware manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.02.00#Glass or glass products manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.03.00#Structural clay products manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.04.00#Cement or lime or plaster manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.05.00#Concrete or aggregates or stone products manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.06.00#Abrasives manufacturing services#73.12.18.00.00
+unspsc7#73.12.18.07.00#Asbestos products manufacturing services#73.12.18.00.00
+unspsc7#73.13.00.00.00#Food and beverage industries#73.00.00.00.00
+unspsc7#73.13.15.00.00#Beverage processing#73.13.00.00.00
+unspsc7#73.13.15.01.00#Spirits distilling or blending services#73.13.15.00.00
+unspsc7#73.13.15.02.00#Wine processing services#73.13.15.00.00
+unspsc7#73.13.15.03.00#Brewery processing services#73.13.15.00.00
+unspsc7#73.13.15.04.00#Non alcoholic fruit based beverage processing services#73.13.15.00.00
+unspsc7#73.13.15.05.00#Water beverages processing services#73.13.15.00.00
+unspsc7#73.13.15.06.00#Infused beverages processing services#73.13.15.00.00
+unspsc7#73.13.15.07.00#Coffee processing services#73.13.15.00.00
+unspsc7#73.13.15.08.00#Tea processing services#73.13.15.00.00
+unspsc7#73.13.16.00.00#Meat and poultry and seafood processing#73.13.00.00.00
+unspsc7#73.13.16.01.00#Meat products or by products processing services#73.13.16.00.00
+unspsc7#73.13.16.02.00#Fish or fish products processing services#73.13.16.00.00
+unspsc7#73.13.16.03.00#Poultry processing services#73.13.16.00.00
+unspsc7#73.13.16.04.00#Meat hygiene or inspection services#73.13.16.00.00
+unspsc7#73.13.16.05.00#Meat plant operation or management services#73.13.16.00.00
+unspsc7#73.13.16.06.00#Slaughter houses services#73.13.16.00.00
+unspsc7#73.13.16.07.00#Butcher services#73.13.16.00.00
+unspsc7#73.13.16.08.00#Cold storage services#73.13.16.00.00
+unspsc7#73.13.17.00.00#Fruits and vegetables processing#73.13.00.00.00
+unspsc7#73.13.17.01.00#Fruit or vegetable cleaning services#73.13.17.00.00
+unspsc7#73.13.17.02.00#Fruit or vegetable spraying services#73.13.17.00.00
+unspsc7#73.13.17.03.00#Fruit or vegetable packing services#73.13.17.00.00
+unspsc7#73.13.18.00.00#Dairy and eggs processing#73.13.00.00.00
+unspsc7#73.13.18.01.00#Milk processing services#73.13.18.00.00
+unspsc7#73.13.18.02.00#Egg processing services#73.13.18.00.00
+unspsc7#73.13.18.03.00#Cheese processing services#73.13.18.00.00
+unspsc7#73.13.18.04.00#Butter or cream processing services#73.13.18.00.00
+unspsc7#73.13.19.00.00#Grains and sugar and oils and fat processing#73.13.00.00.00
+unspsc7#73.13.19.01.00#Milling services#73.13.19.00.00
+unspsc7#73.13.19.02.00#Cereal products processing services#73.13.19.00.00
+unspsc7#73.13.19.03.00#Sugar or sugar products processing services#73.13.19.00.00
+unspsc7#73.13.19.04.00#Vegetable oils or fats processing services#73.13.19.00.00
+unspsc7#73.13.19.05.00#Spice processing services#73.13.19.00.00
+unspsc7#73.13.19.06.00#Bakery products processing services#73.13.19.00.00
+unspsc7#73.14.00.00.00#Fibers and textiles and fabric industries#73.00.00.00.00
+unspsc7#73.14.15.00.00#Fiber production#73.14.00.00.00
+unspsc7#73.14.15.01.00#Rayon or acetate fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.02.00#Glass fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.03.00#Silk fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.04.00#Cotton fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.05.00#Wool fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.06.00#Polyester fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.07.00#Polyamide fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.15.08.00#Acrylic fiber manufacturing services#73.14.15.00.00
+unspsc7#73.14.16.00.00#Thread and yarn processing#73.14.00.00.00
+unspsc7#73.14.16.01.00#Thread processing services#73.14.16.00.00
+unspsc7#73.14.16.02.00#Yarn processing services#73.14.16.00.00
+unspsc7#73.14.17.00.00#Fabrics and leather production#73.14.00.00.00
+unspsc7#73.14.17.01.00#Broad woven fabrics manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.02.00#Narrow woven fabrics manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.03.00#Knitwear manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.04.00#Carpet or rug manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.05.00#Cordage or rope or twine manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.06.00#Dyeing or printing or finishing services#73.14.17.00.00
+unspsc7#73.14.17.07.00#Woven suits or coats or overcoats manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.08.00#Woven outerwear clothing manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.09.00#Fur dressing or dyeing services#73.14.17.00.00
+unspsc7#73.14.17.10.00#Leather footwear manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.11.00#Leather luggage or handbags manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.12.00#Leather tanning or finishing manufacturing services#73.14.17.00.00
+unspsc7#73.14.17.13.00#Nonwoven fabric services#73.14.17.00.00
+unspsc7#73.14.17.14.00#Braided yarn or fabric services#73.14.17.00.00
+unspsc7#73.14.17.15.00#Industrial sewing services#73.14.17.00.00
+unspsc7#73.15.00.00.00#Manufacturing support services#73.00.00.00.00
+unspsc7#73.15.15.00.00#Assembly services#73.15.00.00.00
+unspsc7#73.15.15.01.00#Assembly line work#73.15.15.00.00
+unspsc7#73.15.15.02.00#Joint sealing services#73.15.15.00.00
+unspsc7#73.15.16.00.00#Packaging services#73.15.00.00.00
+unspsc7#73.15.16.01.00#Canning plants services#73.15.16.00.00
+unspsc7#73.15.16.02.00#Packaging of agricultural by products services#73.15.16.00.00
+unspsc7#73.15.16.03.00#Packaging of non food products services#73.15.16.00.00
+unspsc7#73.15.16.04.00#Packaging of pharmaceuticals services#73.15.16.00.00
+unspsc7#73.15.16.05.00#Point of purchase display packaging services#73.15.16.00.00
+unspsc7#73.15.16.06.00#Manual hand packaging services#73.15.16.00.00
+unspsc7#73.15.16.07.00#Machine assisted packaging services#73.15.16.00.00
+unspsc7#73.15.17.00.00#Material treatment#73.15.00.00.00
+unspsc7#73.15.17.01.00#Water proofing material treatment services#73.15.17.00.00
+unspsc7#73.15.17.02.00#Fire protection material treatment services#73.15.17.00.00
+unspsc7#73.15.17.03.00#Anticorrosion material treatment services#73.15.17.00.00
+unspsc7#73.15.18.00.00#Converting services#73.15.00.00.00
+unspsc7#73.15.18.01.00#Sheeting services#73.15.18.00.00
+unspsc7#73.15.18.02.00#Slitting services#73.15.18.00.00
+unspsc7#73.15.18.03.00#Die cutting services#73.15.18.00.00
+unspsc7#73.15.18.04.00#Folding services#73.15.18.00.00
+unspsc7#73.15.18.05.00#Laminating services#73.15.18.00.00
+unspsc7#73.15.19.00.00#Industrial printing services#73.15.00.00.00
+unspsc7#73.15.19.01.00#Flexographic industrial printing services#73.15.19.00.00
+unspsc7#73.15.19.02.00#Rotogravure industrial printing services#73.15.19.00.00
+unspsc7#73.15.19.03.00#Screen industrial printing services#73.15.19.00.00
+unspsc7#73.15.19.04.00#Offset industrial printing services#73.15.19.00.00
+unspsc7#73.15.19.05.00#Digital industrial printing services#73.15.19.00.00
+unspsc7#73.15.19.06.00#Thermal transfer industrial printing services#73.15.19.00.00
+unspsc7#73.15.20.00.00#Filling Services#73.15.00.00.00
+unspsc7#73.15.20.01.00#Liquid filling services#73.15.20.00.00
+unspsc7#73.15.20.02.00#Aerosol filling services#73.15.20.00.00
+unspsc7#73.15.20.03.00#Paste filling services#73.15.20.00.00
+unspsc7#73.15.20.04.00#Powder filling services#73.15.20.00.00
+unspsc7#73.15.21.00.00#Manufacturing equipment maintenance and repair services#73.15.00.00.00
+unspsc7#73.15.21.01.00#Manufacturing equipment maintenance services#73.15.21.00.00
+unspsc7#73.15.21.02.00#Manufacturing equipment repair services#73.15.21.00.00
+unspsc7#73.16.00.00.00#Machinery and transport equipment manufacture#73.00.00.00.00
+unspsc7#73.16.15.00.00#Manufacture of machinery#73.16.00.00.00
+unspsc7#73.16.15.01.00#Engine or turbine manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.02.00#Agricultural machinery or equipment manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.03.00#Machine tools or metal or wood working manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.04.00#Special industrial plants or machinery manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.05.00#Construction machinery or equipment manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.06.00#Mining machinery or equipment manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.07.00#Food products machinery or equipment manufacturing services#73.16.15.00.00
+unspsc7#73.16.15.08.00#Paper printing machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.09.00#Metallurgical machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.10.00#Chemical or pharmaceutical machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.11.00#Cement plant machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.12.00#Textile machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.13.00#Power plant boilers manufacture services#73.16.15.00.00
+unspsc7#73.16.15.14.00#Furnaces or ovens manufacture services#73.16.15.00.00
+unspsc7#73.16.15.15.00#Office machinery or equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.16.00#Lifting or hoisting or conveying equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.17.00#Air conditioning or ventilating or refrigeration equipment manufacture services#73.16.15.00.00
+unspsc7#73.16.15.18.00#Domestic appliances or machines except electrical manufacture services#73.16.15.00.00
+unspsc7#73.16.15.19.00#Pumps or compressors manufacture services#73.16.15.00.00
+unspsc7#73.16.16.00.00#Manufacture of transport equipment#73.16.00.00.00
+unspsc7#73.16.16.01.00#Fishing ship or boat building services#73.16.16.00.00
+unspsc7#73.16.16.02.00#Railroad rolling stock manufacture services#73.16.16.00.00
+unspsc7#73.16.16.03.00#Locomotive manufacture services#73.16.16.00.00
+unspsc7#73.16.16.04.00#Motor vehicles manufacture services#73.16.16.00.00
+unspsc7#73.16.16.05.00#Motor vehicles parts or accessories manufacture services#73.16.16.00.00
+unspsc7#73.16.16.06.00#Motorcycle or bicycle manufacture services#73.16.16.00.00
+unspsc7#73.16.16.07.00#Air or spacecraft manufacture services#73.16.16.00.00
+unspsc7#73.17.00.00.00#Manufacture of electrical goods and precision instruments#73.00.00.00.00
+unspsc7#73.17.15.00.00#Manufacture of electrical goods#73.17.00.00.00
+unspsc7#73.17.15.01.00#Power generation or transmission or distribution equipment manufacture services#73.17.15.00.00
+unspsc7#73.17.15.02.00#Dry or storage battery manufacture services#73.17.15.00.00
+unspsc7#73.17.15.03.00#Electrical tools manufacture services#73.17.15.00.00
+unspsc7#73.17.15.04.00#Measuring or testing instruments manufacture services#73.17.15.00.00
+unspsc7#73.17.15.05.00#Radio or television manufacture services#73.17.15.00.00
+unspsc7#73.17.15.06.00#Communication equipment manufacture services#73.17.15.00.00
+unspsc7#73.17.15.07.00#Electrical household appliances manufacture services#73.17.15.00.00
+unspsc7#73.17.15.08.00#Insulated wire or cable manufacture services#73.17.15.00.00
+unspsc7#73.17.15.09.00#Electrical accessories manufacture services#73.17.15.00.00
+unspsc7#73.17.15.10.00#Electrical accessories or supplies manufacture services#73.17.15.00.00
+unspsc7#73.17.15.11.00#Electronic equipment manufacture services#73.17.15.00.00
+unspsc7#73.17.15.12.00#Electronic computers or data processing equipment manufacture services#73.17.15.00.00
+unspsc7#73.17.16.00.00#Manufacture of precision instruments#73.17.00.00.00
+unspsc7#73.17.16.01.00#Scientific instruments or measuring equipment manufacture services#73.17.16.00.00
+unspsc7#73.17.16.02.00#Medical or dental equipment manufacture services#73.17.16.00.00
+unspsc7#73.17.16.03.00#Photographic or optical equipment manufacture services#73.17.16.00.00
+unspsc7#73.17.16.04.00#Watches or clocks manufacture services#73.17.16.00.00
+unspsc7#73.17.16.05.00#Laboratory equipment manufacture services#73.17.16.00.00
+unspsc7#73.18.00.00.00#Machining and processing services#73.00.00.00.00
+unspsc7#73.18.10.00.00#Machining services#73.18.00.00.00
+unspsc7#73.18.10.01.00#Turning services#73.18.10.00.00
+unspsc7#73.18.10.02.00#Electro discharge machining (EDM) services#73.18.10.00.00
+unspsc7#73.18.10.03.00#Electro chemical machining (ECM) services#73.18.10.00.00
+unspsc7#73.18.10.04.00#Chem milling services#73.18.10.00.00
+unspsc7#73.18.10.05.00#Punching services#73.18.10.00.00
+unspsc7#73.18.10.06.00#Stamping services#73.18.10.00.00
+unspsc7#73.18.10.07.00#Boring services#73.18.10.00.00
+unspsc7#73.18.10.08.00#Drilling services#73.18.10.00.00
+unspsc7#73.18.10.09.00#Tapping services#73.18.10.00.00
+unspsc7#73.18.10.10.00#Laser services#73.18.10.00.00
+unspsc7#73.18.10.11.00#Bending services#73.18.10.00.00
+unspsc7#73.18.10.12.00#Grinding services#73.18.10.00.00
+unspsc7#73.18.10.13.00#Shot blasting services#73.18.10.00.00
+unspsc7#73.18.10.14.00#Polishing services#73.18.10.00.00
+unspsc7#73.18.10.15.00#Flame cutting services#73.18.10.00.00
+unspsc7#73.18.10.16.00#Laser cutting services#73.18.10.00.00
+unspsc7#73.18.10.17.00#Plasma cutting services#73.18.10.00.00
+unspsc7#73.18.10.18.00#Water jet cutting services#73.18.10.00.00
+unspsc7#73.18.10.19.00#Rolling Services#73.18.10.00.00
+unspsc7#73.18.10.20.00#Surface treatment services#73.18.10.00.00
+unspsc7#73.18.10.21.00#Milling services#73.18.10.00.00
+unspsc7#73.18.10.22.00#Spraying services#73.18.10.00.00
+unspsc7#73.18.10.23.00#Sharpening service#73.18.10.00.00
+unspsc7#73.18.11.00.00#Coating services#73.18.00.00.00
+unspsc7#73.18.11.01.00#Electro coating services#73.18.11.00.00
+unspsc7#73.18.11.02.00#Dipping services#73.18.11.00.00
+unspsc7#73.18.11.03.00#Wrapping services#73.18.11.00.00
+unspsc7#73.18.11.04.00#Painting services#73.18.11.00.00
+unspsc7#73.18.11.05.00#Web coating services#73.18.11.00.00
+unspsc7#73.18.11.06.00#Plating services#73.18.11.00.00
+unspsc7#73.18.12.00.00#Forming services#73.18.00.00.00
+unspsc7#73.18.12.01.00#Draw forming services#73.18.12.00.00
+unspsc7#73.18.12.02.00#Hydro forming services#73.18.12.00.00
+unspsc7#73.18.12.03.00#Roll forming services#73.18.12.00.00
+unspsc7#73.18.12.04.00#Stretch forming services#73.18.12.00.00
+unspsc7#73.18.12.05.00#Spin forming services#73.18.12.00.00
+unspsc7#73.18.12.06.00#Explosive forming services#73.18.12.00.00
+unspsc7#73.18.13.00.00#Heat treatment services#73.18.00.00.00
+unspsc7#73.18.13.01.00#Quench and temper services#73.18.13.00.00
+unspsc7#73.18.13.02.00#Annealing services#73.18.13.00.00
+unspsc7#73.18.13.03.00#Normalizing services#73.18.13.00.00
+unspsc7#73.18.13.04.00#Aging or stabilizing services#73.18.13.00.00
+unspsc7#73.18.19.00.00#Welding and brazing and soldering services#73.18.00.00.00
+unspsc7#73.18.19.01.00#Arc welding services#73.18.19.00.00
+unspsc7#73.18.19.02.00#Metal inert gas (MIG) welding services#73.18.19.00.00
+unspsc7#73.18.19.03.00#Tungsten inert gas (TIG) welding services#73.18.19.00.00
+unspsc7#73.18.19.04.00#Laser welding services#73.18.19.00.00
+unspsc7#73.18.19.05.00#Spot welding services#73.18.19.00.00
+unspsc7#73.18.19.06.00#Projection welding services#73.18.19.00.00
+unspsc7#73.18.19.07.00#Brazing services#73.18.19.00.00
+unspsc7#73.18.19.08.00#Soldering services#73.18.19.00.00
+unspsc7#76.00.00.00.00#Industrial Cleaning Services#76.00.00.00.00
+unspsc7#76.10.00.00.00#Decontamination services#76.00.00.00.00
+unspsc7#76.10.15.00.00#Disinfection#76.10.00.00.00
+unspsc7#76.10.15.01.00#Washroom sanitation services#76.10.15.00.00
+unspsc7#76.10.15.02.00#Rest room cleaning services#76.10.15.00.00
+unspsc7#76.10.15.03.00#Disinfection or deodorizing services#76.10.15.00.00
+unspsc7#76.10.16.00.00#Hazardous material decontamination#76.10.00.00.00
+unspsc7#76.10.16.01.00#Radioactive decontamination services#76.10.16.00.00
+unspsc7#76.10.16.02.00#Asbestos decontamination or removal#76.10.16.00.00
+unspsc7#76.11.00.00.00#Cleaning and janitorial services#76.00.00.00.00
+unspsc7#76.11.15.00.00#General building and office cleaning services#76.11.00.00.00
+unspsc7#76.11.15.01.00#Building cleaning services#76.11.15.00.00
+unspsc7#76.11.15.02.00#Building maintenance or repair services#76.11.15.00.00
+unspsc7#76.11.15.03.00#Lighting maintenance services#76.11.15.00.00
+unspsc7#76.11.15.04.00#Window or window blind cleaning services#76.11.15.00.00
+unspsc7#76.11.16.00.00#Building component cleaning services#76.11.00.00.00
+unspsc7#76.11.16.01.00#Acoustical tile or ceiling cleaning services#76.11.16.00.00
+unspsc7#76.11.16.02.00#Air duct cleaning#76.11.16.00.00
+unspsc7#76.11.16.03.00#Chimney cleaning#76.11.16.00.00
+unspsc7#76.11.16.04.00#Floor waxing or carpet cleaning#76.11.16.00.00
+unspsc7#76.11.16.05.00#Exhaust hood or fan clearing#76.11.16.00.00
+unspsc7#76.11.17.00.00#Building site clean up#76.11.00.00.00
+unspsc7#76.11.17.01.00#Construction site clean up services#76.11.17.00.00
+unspsc7#76.11.17.02.00#Construction site haul away services#76.11.17.00.00
+unspsc7#76.12.00.00.00#Refuse disposal and treatment#76.00.00.00.00
+unspsc7#76.12.15.00.00#Refuse collection and disposal#76.12.00.00.00
+unspsc7#76.12.15.01.00#Garbage collection or destruction or processing or disposal#76.12.15.00.00
+unspsc7#76.12.15.02.00#Liquid waste collection or processing or disposal#76.12.15.00.00
+unspsc7#76.12.15.03.00#Street cleaning services#76.12.15.00.00
+unspsc7#76.12.16.00.00#Nonhazardous waste disposal#76.12.00.00.00
+unspsc7#76.12.16.01.00#Garbage dump#76.12.16.00.00
+unspsc7#76.12.16.02.00#Sanitary landfill operations#76.12.16.00.00
+unspsc7#76.12.16.03.00#Sludge disposal#76.12.16.00.00
+unspsc7#76.12.16.04.00#Dead animal disposal services#76.12.16.00.00
+unspsc7#76.12.17.00.00#Liquid waste treatment#76.12.00.00.00
+unspsc7#76.12.17.01.00#Sewage treatment services#76.12.17.00.00
+unspsc7#76.12.17.02.00#Chemical treatment services#76.12.17.00.00
+unspsc7#76.12.18.00.00#Refuse treatment#76.12.00.00.00
+unspsc7#76.12.18.01.00#Recycling services#76.12.18.00.00
+unspsc7#76.12.19.00.00#Hazardous waste disposal#76.12.00.00.00
+unspsc7#76.12.19.01.00#Medical waste disposal#76.12.19.00.00
+unspsc7#76.12.19.02.00#Acid waste collection or disposal#76.12.19.00.00
+unspsc7#76.12.19.03.00#Chemical detoxification#76.12.19.00.00
+unspsc7#76.13.00.00.00#Toxic and hazardous waste cleanup#76.00.00.00.00
+unspsc7#76.13.15.00.00#Nuclear waste treatment#76.13.00.00.00
+unspsc7#76.13.15.01.00#Radioactive waste material treatment#76.13.15.00.00
+unspsc7#76.13.15.02.00#Radioactive containment services#76.13.15.00.00
+unspsc7#76.13.16.00.00#Toxic spill cleanup#76.13.00.00.00
+unspsc7#76.13.16.01.00#Toxic spill containment#76.13.16.00.00
+unspsc7#76.13.16.02.00#Toxic substances spill cleanup#76.13.16.00.00
+unspsc7#76.13.17.00.00#Oil spill cleanup#76.13.00.00.00
+unspsc7#76.13.17.01.00#Oil residue disposal or control services#76.13.17.00.00
+unspsc7#76.13.17.02.00#Oil spill treatment services#76.13.17.00.00
+unspsc7#77.00.00.00.00#Environmental Services#77.00.00.00.00
+unspsc7#77.10.00.00.00#Environmental management#77.00.00.00.00
+unspsc7#77.10.15.00.00#Environmental impact assessment#77.10.00.00.00
+unspsc7#77.10.15.01.00#Risk or hazard assessment#77.10.15.00.00
+unspsc7#77.10.15.02.00#Environmental standards#77.10.15.00.00
+unspsc7#77.10.15.03.00#Environmental indicators analysis#77.10.15.00.00
+unspsc7#77.10.15.04.00#Environmental impact assessment (EIA) services#77.10.15.00.00
+unspsc7#77.10.15.05.00#Environmental monitoring#77.10.15.00.00
+unspsc7#77.10.16.00.00#Environmental planning#77.10.00.00.00
+unspsc7#77.10.16.01.00#Urban environmental development planning#77.10.16.00.00
+unspsc7#77.10.16.02.00#Forest conservation strategy planning#77.10.16.00.00
+unspsc7#77.10.16.03.00#Marine conservation strategy planning#77.10.16.00.00
+unspsc7#77.10.16.04.00#Natural resources management or conservation strategy planning services#77.10.16.00.00
+unspsc7#77.10.16.05.00#Environmental institution building or planning#77.10.16.00.00
+unspsc7#77.10.17.00.00#Environmental advisory services#77.10.00.00.00
+unspsc7#77.10.17.01.00#Environmental sciences advisory services#77.10.17.00.00
+unspsc7#77.10.17.02.00#Environmental chemistry advisory services#77.10.17.00.00
+unspsc7#77.10.17.03.00#Environmental ethics advisory services#77.10.17.00.00
+unspsc7#77.10.17.04.00#Environmental technology advisory services#77.10.17.00.00
+unspsc7#77.10.17.05.00#Environmental economics advisory services#77.10.17.00.00
+unspsc7#77.10.17.06.00#Environmental law advisory services#77.10.17.00.00
+unspsc7#77.10.17.07.00#Ecology advisory services#77.10.17.00.00
+unspsc7#77.10.18.00.00#Environmental auditing#77.10.00.00.00
+unspsc7#77.10.18.01.00#Environmental information systems#77.10.18.00.00
+unspsc7#77.10.18.02.00#Corporate environmental auditing services#77.10.18.00.00
+unspsc7#77.10.18.03.00#Sectoral environmental auditing services#77.10.18.00.00
+unspsc7#77.10.18.04.00#Activity specific environmental auditing services#77.10.18.00.00
+unspsc7#77.10.18.05.00#Environmental quality control services#77.10.18.00.00
+unspsc7#77.10.18.06.00#Environmental security control services#77.10.18.00.00
+unspsc7#77.10.19.00.00#Pollution investigation services#77.10.00.00.00
+unspsc7#77.10.19.01.00#Industrial site investigation#77.10.19.00.00
+unspsc7#77.10.19.02.00#Industrial waste site investigation#77.10.19.00.00
+unspsc7#77.10.19.03.00#Gasworks site investigation#77.10.19.00.00
+unspsc7#77.10.19.04.00#Chemical works or oil refinery waste site investigation#77.10.19.00.00
+unspsc7#77.10.19.05.00#Wood treatment plant site investigation#77.10.19.00.00
+unspsc7#77.10.19.06.00#Oil depot or terminal site investigation#77.10.19.00.00
+unspsc7#77.10.19.07.00#Dry cleaning plants site investigation#77.10.19.00.00
+unspsc7#77.10.19.08.00#Foundry site investigation#77.10.19.00.00
+unspsc7#77.10.19.09.00#Recycling plant site investigation#77.10.19.00.00
+unspsc7#77.10.19.10.00#Food processing plant site investigation#77.10.19.00.00
+unspsc7#77.11.00.00.00#Environmental protection#77.00.00.00.00
+unspsc7#77.11.15.00.00#Environmental safety services#77.11.00.00.00
+unspsc7#77.11.15.01.00#Landscape protection services#77.11.15.00.00
+unspsc7#77.11.15.02.00#Ozone protection services#77.11.15.00.00
+unspsc7#77.11.15.03.00#Food or feed contamination protection services#77.11.15.00.00
+unspsc7#77.11.15.04.00#Genetic resources protection services#77.11.15.00.00
+unspsc7#77.11.15.05.00#Toxic substances protection services#77.11.15.00.00
+unspsc7#77.11.15.06.00#Radiation protection services#77.11.15.00.00
+unspsc7#77.11.15.07.00#Endangered species protection services#77.11.15.00.00
+unspsc7#77.11.15.08.00#Natural risks or hazards protection services#77.11.15.00.00
+unspsc7#77.11.16.00.00#Environmental rehabilitation#77.11.00.00.00
+unspsc7#77.11.16.01.00#Industrial site rehabilitation#77.11.16.00.00
+unspsc7#77.11.16.02.00#Environmental decontamination services#77.11.16.00.00
+unspsc7#77.11.16.03.00#Land reclamation services#77.11.16.00.00
+unspsc7#77.12.00.00.00#Pollution tracking and monitoring and rehabilitation#77.00.00.00.00
+unspsc7#77.12.15.00.00#Air pollution#77.12.00.00.00
+unspsc7#77.12.15.01.00#Air quality management#77.12.15.00.00
+unspsc7#77.12.15.02.00#Transboundary air pollution management or control services#77.12.15.00.00
+unspsc7#77.12.15.03.00#Air pollution protection services#77.12.15.00.00
+unspsc7#77.12.15.04.00#Air pollution monitoring or measurement services#77.12.15.00.00
+unspsc7#77.12.15.05.00#Toxic gas detection services#77.12.15.00.00
+unspsc7#77.12.15.06.00#Methane monitoring#77.12.15.00.00
+unspsc7#77.12.15.07.00#Carbon dioxide monitoring services#77.12.15.00.00
+unspsc7#77.12.15.08.00#Airborne particle monitoring#77.12.15.00.00
+unspsc7#77.12.15.09.00#Ozone depletion monitoring services#77.12.15.00.00
+unspsc7#77.12.16.00.00#Soil pollution#77.12.00.00.00
+unspsc7#77.12.16.01.00#Soil pollution protection services#77.12.16.00.00
+unspsc7#77.12.16.02.00#Polluted soil removal services#77.12.16.00.00
+unspsc7#77.12.16.03.00#Polluted soil treatment or rehabilitation#77.12.16.00.00
+unspsc7#77.12.16.04.00#Soil pollution advisory services#77.12.16.00.00
+unspsc7#77.12.16.05.00#Soil pollution mapping#77.12.16.00.00
+unspsc7#77.12.16.06.00#Soil pollution measurement or monitoring#77.12.16.00.00
+unspsc7#77.12.16.07.00#Organic fertilizer pollution assessment#77.12.16.00.00
+unspsc7#77.12.16.08.00#Pesticides pollution assessment#77.12.16.00.00
+unspsc7#77.12.16.09.00#Nitrates pollution assessment#77.12.16.00.00
+unspsc7#77.12.16.10.00#Phosphates pollution assessment#77.12.16.00.00
+unspsc7#77.12.17.00.00#Water pollution#77.12.00.00.00
+unspsc7#77.12.17.01.00#Surface water pollution monitoring or control services#77.12.17.00.00
+unspsc7#77.12.17.02.00#Surface water pollution rehabilitation services#77.12.17.00.00
+unspsc7#77.12.17.03.00#Surface water pollution protection services#77.12.17.00.00
+unspsc7#77.12.17.04.00#Surface water treatment services#77.12.17.00.00
+unspsc7#77.12.17.05.00#Surface water pollution drainage services#77.12.17.00.00
+unspsc7#77.12.17.06.00#Transboundary water pollution management or control services#77.12.17.00.00
+unspsc7#77.12.17.07.00#Groundwater pollution monitoring or control services#77.12.17.00.00
+unspsc7#77.12.17.08.00#Groundwater pollution drainage services#77.12.17.00.00
+unspsc7#77.12.17.09.00#Groundwater pollution treatment or rehabilitation#77.12.17.00.00
+unspsc7#77.13.00.00.00#Pollutants tracking and monitoring and rehabilitation services#77.00.00.00.00
+unspsc7#77.13.15.00.00#Oil pollution#77.13.00.00.00
+unspsc7#77.13.15.01.00#Oil spillage monitoring services#77.13.15.00.00
+unspsc7#77.13.15.02.00#Oil spillage control services#77.13.15.00.00
+unspsc7#77.13.15.03.00#Oil spillage rehabilitation services#77.13.15.00.00
+unspsc7#77.13.16.00.00#Noise pollution#77.13.00.00.00
+unspsc7#77.13.16.01.00#Noise control services#77.13.16.00.00
+unspsc7#77.13.16.02.00#Noise pollution protection services#77.13.16.00.00
+unspsc7#77.13.16.03.00#Noise pollution monitoring services#77.13.16.00.00
+unspsc7#77.13.16.04.00#Noise pollution advisory services#77.13.16.00.00
+unspsc7#77.13.17.00.00#Toxic substances pollution#77.13.00.00.00
+unspsc7#77.13.17.01.00#Toxic substances monitoring services#77.13.17.00.00
+unspsc7#77.13.17.02.00#Toxic substances rehabilitation services#77.13.17.00.00
+unspsc7#78.00.00.00.00#Transportation and Storage and Mail Services#78.00.00.00.00
+unspsc7#78.10.00.00.00#Mail and cargo transport#78.00.00.00.00
+unspsc7#78.10.15.00.00#Air cargo transport#78.10.00.00.00
+unspsc7#78.10.15.01.00#Domestic air cargo tranposrt#78.10.15.00.00
+unspsc7#78.10.15.02.00#International air cargo transport#78.10.15.00.00
+unspsc7#78.10.15.03.00#Armored air transport#78.10.15.00.00
+unspsc7#78.10.16.00.00#Rail cargo transport#78.10.00.00.00
+unspsc7#78.10.16.01.00#Boxcar transport services#78.10.16.00.00
+unspsc7#78.10.16.02.00#Bulk cargo rail trasnport services#78.10.16.00.00
+unspsc7#78.10.16.03.00#Livestock rail transport#78.10.16.00.00
+unspsc7#78.10.16.04.00#Vehicle transport services#78.10.16.00.00
+unspsc7#78.10.17.00.00#Marine cargo transport#78.10.00.00.00
+unspsc7#78.10.17.01.00#Domestic vessel transport services#78.10.17.00.00
+unspsc7#78.10.17.02.00#International vessel transport services#78.10.17.00.00
+unspsc7#78.10.17.03.00#Domestic barge transport services#78.10.17.00.00
+unspsc7#78.10.17.04.00#International barge transport services#78.10.17.00.00
+unspsc7#78.10.17.05.00#Armored marine transport#78.10.17.00.00
+unspsc7#78.10.18.00.00#Road cargo transport#78.10.00.00.00
+unspsc7#78.10.18.01.00#Local area trucking services#78.10.18.00.00
+unspsc7#78.10.18.02.00#Regional or national trucking services#78.10.18.00.00
+unspsc7#78.10.18.03.00#Vehicle carrier services#78.10.18.00.00
+unspsc7#78.10.18.04.00#Relocation services#78.10.18.00.00
+unspsc7#78.10.19.00.00#Intermodal cargo transport#78.10.00.00.00
+unspsc7#78.10.19.01.00#Air to ocean transportation#78.10.19.00.00
+unspsc7#78.10.19.02.00#Ocean to rail transportation#78.10.19.00.00
+unspsc7#78.10.19.03.00#Ocean to truck transportation#78.10.19.00.00
+unspsc7#78.10.19.04.00#Air to truck transport#78.10.19.00.00
+unspsc7#78.10.19.05.00#Rail truck transportation#78.10.19.00.00
+unspsc7#78.10.20.00.00#Spacecraft cargo transport#78.10.00.00.00
+unspsc7#78.10.20.01.00#Satellite launch services#78.10.20.00.00
+unspsc7#78.10.20.02.00#Experimental payload services#78.10.20.00.00
+unspsc7#78.10.21.00.00#Pipeline services#78.10.00.00.00
+unspsc7#78.10.21.01.00#Petroleum products transport#78.10.21.00.00
+unspsc7#78.10.21.02.00#Water transport#78.10.21.00.00
+unspsc7#78.10.22.00.00#Postal and small parcel and courier services#78.10.00.00.00
+unspsc7#78.10.22.01.00#National postal delivery services#78.10.22.00.00
+unspsc7#78.10.22.02.00#Post office box services#78.10.22.00.00
+unspsc7#78.10.22.03.00#Mailing or mail pick up or delivery services#78.10.22.00.00
+unspsc7#78.10.22.04.00#Letter or small parcel worldwide delivery services#78.10.22.00.00
+unspsc7#78.10.22.05.00#Letter or small parcel local delivery services#78.10.22.00.00
+unspsc7#78.10.22.06.00#Bicycle or scooter messenger servcies#78.10.22.00.00
+unspsc7#78.11.00.00.00#Passenger transport#78.00.00.00.00
+unspsc7#78.11.15.00.00#Air transportation#78.11.00.00.00
+unspsc7#78.11.15.01.00#Helicopter services#78.11.15.00.00
+unspsc7#78.11.15.02.00#Commercial airplane travel#78.11.15.00.00
+unspsc7#78.11.15.03.00#Chartered airplane travel#78.11.15.00.00
+unspsc7#78.11.16.00.00#Railway transportation#78.11.00.00.00
+unspsc7#78.11.16.01.00#Light rail vehicle transport (LRV) services#78.11.16.00.00
+unspsc7#78.11.16.02.00#Subway transport#78.11.16.00.00
+unspsc7#78.11.16.03.00#Continental or inter continental rail services#78.11.16.00.00
+unspsc7#78.11.17.00.00#Marine transportation#78.11.00.00.00
+unspsc7#78.11.17.01.00#Water taxis#78.11.17.00.00
+unspsc7#78.11.17.02.00#Overnight ship cruises#78.11.17.00.00
+unspsc7#78.11.17.03.00#Sightseeing boat excursions#78.11.17.00.00
+unspsc7#78.11.18.00.00#Road transportation#78.11.00.00.00
+unspsc7#78.11.18.01.00#Car rental services#78.11.18.00.00
+unspsc7#78.11.18.02.00#Scheduled bus services#78.11.18.00.00
+unspsc7#78.11.18.03.00#Chartered bus services#78.11.18.00.00
+unspsc7#78.11.18.04.00#Taxicab services#78.11.18.00.00
+unspsc7#78.11.18.05.00#Transportation maintenance#78.11.18.00.00
+unspsc7#78.11.18.06.00#Vehicle rental or leasing#78.11.18.00.00
+unspsc7#78.11.19.00.00#Space transportation#78.11.00.00.00
+unspsc7#78.11.19.01.00#Experimental or educational missions#78.11.19.00.00
+unspsc7#78.12.00.00.00#Material packing and handling#78.00.00.00.00
+unspsc7#78.12.15.00.00#Packing#78.12.00.00.00
+unspsc7#78.12.15.01.00#Containerization of goods#78.12.15.00.00
+unspsc7#78.12.15.02.00#Crating services#78.12.15.00.00
+unspsc7#78.12.16.00.00#Material handling services#78.12.00.00.00
+unspsc7#78.12.16.01.00#Freight loading or unloading#78.12.16.00.00
+unspsc7#78.12.16.02.00#Weighing services#78.12.16.00.00
+unspsc7#78.13.00.00.00#Storage#78.00.00.00.00
+unspsc7#78.13.15.00.00#Farm products warehousing#78.13.00.00.00
+unspsc7#78.13.15.01.00#Silo services#78.13.15.00.00
+unspsc7#78.13.15.02.00#Grain elevator services#78.13.15.00.00
+unspsc7#78.13.16.00.00#General goods storage#78.13.00.00.00
+unspsc7#78.13.16.01.00#Palletized cargo storage#78.13.16.00.00
+unspsc7#78.13.16.02.00#File archive storage#78.13.16.00.00
+unspsc7#78.13.17.00.00#Bulk storage#78.13.00.00.00
+unspsc7#78.13.17.01.00#In ground storage services#78.13.17.00.00
+unspsc7#78.13.18.00.00#Specialized warehousing and storage#78.13.00.00.00
+unspsc7#78.13.18.01.00#Refrigerated storage#78.13.18.00.00
+unspsc7#78.13.18.02.00#Customs bonded storage services#78.13.18.00.00
+unspsc7#78.13.18.03.00#Hazardous materials storage#78.13.18.00.00
+unspsc7#78.13.18.04.00#Document storage services#78.13.18.00.00
+unspsc7#78.14.00.00.00#Transport operations#78.00.00.00.00
+unspsc7#78.14.15.00.00#Transport arrangements#78.14.00.00.00
+unspsc7#78.14.15.01.00#Freight forwarders services#78.14.15.00.00
+unspsc7#78.14.15.02.00#Customs brokerage services#78.14.15.00.00
+unspsc7#78.14.15.03.00#Transportation industry tariff comparison or freight audit services#78.14.15.00.00
+unspsc7#78.14.16.00.00#Inspection#78.14.00.00.00
+unspsc7#78.14.16.01.00#Packing inspection services#78.14.16.00.00
+unspsc7#78.14.16.02.00#Cargo survey services#78.14.16.00.00
+unspsc7#78.14.16.03.00#Pest control inspections#78.14.16.00.00
+unspsc7#78.14.17.00.00#Navigational services#78.14.00.00.00
+unspsc7#78.14.17.01.00#Tugboat services#78.14.17.00.00
+unspsc7#78.14.17.02.00#Drawbridge operations#78.14.17.00.00
+unspsc7#78.14.18.00.00#Terminal services#78.14.00.00.00
+unspsc7#78.14.18.01.00#Stevedoring services#78.14.18.00.00
+unspsc7#78.14.18.02.00#Vessel docking services#78.14.18.00.00
+unspsc7#78.14.18.03.00#Vessel stores services#78.14.18.00.00
+unspsc7#78.14.18.04.00#Parking structures#78.14.18.00.00
+unspsc7#78.15.00.00.00#Transport industry support and maintenance and repair services#78.00.00.00.00
+unspsc7#78.15.01.00.00#Panel and paint services#78.15.00.00.00
+unspsc7#78.15.01.01.00#Panelbeating services#78.15.01.00.00
+unspsc7#78.15.02.00.00#Transport fuelling and vehicle storage and support services#78.15.00.00.00
+unspsc7#78.15.02.01.00#Fuelling of vehicles#78.15.02.00.00
+unspsc7#78.15.02.02.00#Transportation storage#78.15.02.00.00
+unspsc7#78.16.00.00.00#Panel and paint services#78.00.00.00.00
+unspsc7#78.17.00.00.00#Panelbeating services#78.00.00.00.00
+unspsc7#78.18.00.00.00#Transportation or vehicle repair services#78.00.00.00.00
+unspsc7#78.18.01.00.00#Vehicle repair services#78.18.00.00.00
+unspsc7#78.18.01.01.00#Vehicle body repair or painting services#78.18.01.00.00
+unspsc7#78.18.01.02.00#Transmission repair#78.18.01.00.00
+unspsc7#78.19.00.00.00#Vehicle repair services#78.00.00.00.00
+unspsc7#78.19.11.00.00#Vehicle body repair or painting services#78.19.00.00.00
+unspsc7#78.19.12.00.00#Transmission repair#78.19.00.00.00
+unspsc7#80.00.00.00.00#Management and Business Professionals and Administrative Services#80.00.00.00.00
+unspsc7#80.10.00.00.00#Management advisory services#80.00.00.00.00
+unspsc7#80.10.15.00.00#Business and corporate management#80.10.00.00.00
+unspsc7#80.10.15.01.00#New business start up consultation services#80.10.15.00.00
+unspsc7#80.10.15.02.00#Corporate mergers consultation services#80.10.15.00.00
+unspsc7#80.10.15.03.00#Corporate divestiture consultation services#80.10.15.00.00
+unspsc7#80.10.15.04.00#Strategic planning consultation services#80.10.15.00.00
+unspsc7#80.10.15.05.00#Corporate objectives or policy development#80.10.15.00.00
+unspsc7#80.10.15.06.00#Organizational structure consultation#80.10.15.00.00
+unspsc7#80.10.15.07.00#Information technology consultation services#80.10.15.00.00
+unspsc7#80.10.16.00.00#Project management#80.10.00.00.00
+unspsc7#80.10.16.01.00#Feasibility studies or screening of project ideas#80.10.16.00.00
+unspsc7#80.10.16.02.00#Regional or location studies for projects#80.10.16.00.00
+unspsc7#80.10.16.03.00#Economic or financial evaluation of projects#80.10.16.00.00
+unspsc7#80.10.16.04.00#Project administration or planning#80.10.16.00.00
+unspsc7#80.10.17.00.00#Industrial management#80.10.00.00.00
+unspsc7#80.10.17.01.00#Factory management services#80.10.17.00.00
+unspsc7#80.10.17.02.00#Productivity or efficiency studies or implementation#80.10.17.00.00
+unspsc7#80.10.17.03.00#Specification standardization services#80.10.17.00.00
+unspsc7#80.10.17.04.00#Supply chain analysis or re engineering services#80.10.17.00.00
+unspsc7#80.10.17.05.00#Co operative or consortium services#80.10.17.00.00
+unspsc7#80.10.17.06.00#Professional procurement services#80.10.17.00.00
+unspsc7#80.11.00.00.00#Human resources services#80.00.00.00.00
+unspsc7#80.11.15.00.00#Human resource development#80.11.00.00.00
+unspsc7#80.11.15.01.00#Management development#80.11.15.00.00
+unspsc7#80.11.15.02.00#Compensation or benefits planning#80.11.15.00.00
+unspsc7#80.11.15.03.00#Labor or union relations#80.11.15.00.00
+unspsc7#80.11.15.04.00#Labor training or development#80.11.15.00.00
+unspsc7#80.11.15.05.00#Human resources productivity audits#80.11.15.00.00
+unspsc7#80.11.15.06.00#Personnel relocation#80.11.15.00.00
+unspsc7#80.11.16.00.00#Temporary personnel services#80.11.00.00.00
+unspsc7#80.11.16.01.00#Temporary clerical or adminstrative assistance#80.11.16.00.00
+unspsc7#80.11.16.02.00#Temporary marketing staff needs#80.11.16.00.00
+unspsc7#80.11.16.03.00#Temporary production staffing needs#80.11.16.00.00
+unspsc7#80.11.16.04.00#Temporary technician staffing needs#80.11.16.00.00
+unspsc7#80.11.16.05.00#Temporary financial staffing needs#80.11.16.00.00
+unspsc7#80.11.16.06.00#Temporary medical staffing needs#80.11.16.00.00
+unspsc7#80.11.16.07.00#Temporary legal staffing needs#80.11.16.00.00
+unspsc7#80.11.16.08.00#Temporary information technology software developers#80.11.16.00.00
+unspsc7#80.11.16.09.00#Temporary information technology systems or database administrators#80.11.16.00.00
+unspsc7#80.11.16.10.00#Temporary information technology networking specialists#80.11.16.00.00
+unspsc7#80.11.16.11.00#Temporary warehouse staff#80.11.16.00.00
+unspsc7#80.11.16.12.00#Temporary drivers#80.11.16.00.00
+unspsc7#80.11.16.13.00#Temporary manual labor#80.11.16.00.00
+unspsc7#80.11.16.14.00#Temporary professional staff#80.11.16.00.00
+unspsc7#80.11.16.15.00#Temporary machinist personnel#80.11.16.00.00
+unspsc7#80.11.17.00.00#Personnel recruitment#80.11.00.00.00
+unspsc7#80.11.17.01.00#Staff recruiting services#80.11.17.00.00
+unspsc7#80.11.17.02.00#Reference or background check services#80.11.17.00.00
+unspsc7#80.11.17.03.00#Resume or curriculum vitae screening services#80.11.17.00.00
+unspsc7#80.11.18.00.00#Information technology contractors#80.11.00.00.00
+unspsc7#80.11.18.01.00#Temporary information technology contractors#80.11.18.00.00
+unspsc7#80.12.00.00.00#Legal services#80.00.00.00.00
+unspsc7#80.12.15.00.00#Criminal law services#80.12.00.00.00
+unspsc7#80.12.15.01.00#Juvenile justice law services#80.12.15.00.00
+unspsc7#80.12.15.02.00#Appellate procedure services#80.12.15.00.00
+unspsc7#80.12.15.03.00#Defense or criminal law services#80.12.15.00.00
+unspsc7#80.12.16.00.00#Business law services#80.12.00.00.00
+unspsc7#80.12.16.01.00#Government antitrust or regulations law services#80.12.16.00.00
+unspsc7#80.12.16.02.00#Bankruptcy law services#80.12.16.00.00
+unspsc7#80.12.16.03.00#Partnership law#80.12.16.00.00
+unspsc7#80.12.16.04.00#Patent or trademark or copyright law#80.12.16.00.00
+unspsc7#80.12.16.05.00#Liquidation law services#80.12.16.00.00
+unspsc7#80.12.16.06.00#Real estate law#80.12.16.00.00
+unspsc7#80.12.16.07.00#Taxation law#80.12.16.00.00
+unspsc7#80.12.16.08.00#Mergers or acquisitions law#80.12.16.00.00
+unspsc7#80.12.16.09.00#Legal research services#80.12.16.00.00
+unspsc7#80.12.16.10.00#Debt collection law services#80.12.16.00.00
+unspsc7#80.12.17.00.00#Civil liability services#80.12.00.00.00
+unspsc7#80.12.17.01.00#Malpractice or negligence law services#80.12.17.00.00
+unspsc7#80.12.17.02.00#Personal injury law services#80.12.17.00.00
+unspsc7#80.12.17.03.00#Property law services#80.12.17.00.00
+unspsc7#80.12.17.04.00#Contract law services#80.12.17.00.00
+unspsc7#80.12.18.00.00#Family law services#80.12.00.00.00
+unspsc7#80.12.18.01.00#Divorce law services#80.12.18.00.00
+unspsc7#80.12.18.02.00#Adoption law services#80.12.18.00.00
+unspsc7#80.12.18.03.00#Immigration or naturalization law#80.12.18.00.00
+unspsc7#80.12.18.04.00#Guardianship or custody law services#80.12.18.00.00
+unspsc7#80.13.00.00.00#Real estate services#80.00.00.00.00
+unspsc7#80.13.15.00.00#Lease and rental of property or building#80.13.00.00.00
+unspsc7#80.13.15.01.00#Residential rental#80.13.15.00.00
+unspsc7#80.13.15.02.00#Commercial or industrial facility rental#80.13.15.00.00
+unspsc7#80.13.15.03.00#Land leases#80.13.15.00.00
+unspsc7#80.13.16.00.00#Sale of property and building#80.13.00.00.00
+unspsc7#80.13.16.01.00#Real estate brokers or agents#80.13.16.00.00
+unspsc7#80.13.16.02.00#Real estate auction#80.13.16.00.00
+unspsc7#80.13.16.03.00#Sale of residential land#80.13.16.00.00
+unspsc7#80.13.16.04.00#Sale of commercial or industrial land#80.13.16.00.00
+unspsc7#80.13.16.05.00#Sale of commercial building#80.13.16.00.00
+unspsc7#80.13.17.00.00#Escrow and title services#80.13.00.00.00
+unspsc7#80.13.17.01.00#Title reconveyance services#80.13.17.00.00
+unspsc7#80.13.17.02.00#Title search services#80.13.17.00.00
+unspsc7#80.13.17.03.00#Escrow account services#80.13.17.00.00
+unspsc7#80.13.18.00.00#Real estate management services#80.13.00.00.00
+unspsc7#80.13.18.01.00#Property management#80.13.18.00.00
+unspsc7#80.13.18.02.00#Real estate appraisal services#80.13.18.00.00
+unspsc7#80.13.18.03.00#Real estate listing services#80.13.18.00.00
+unspsc7#80.14.00.00.00#Marketing and distribution#80.00.00.00.00
+unspsc7#80.14.15.00.00#Market research#80.14.00.00.00
+unspsc7#80.14.15.01.00#Marketing analysis#80.14.15.00.00
+unspsc7#80.14.15.02.00#Distributive or service trade statistics#80.14.15.00.00
+unspsc7#80.14.15.03.00#Commodity price forecasting#80.14.15.00.00
+unspsc7#80.14.15.04.00#Preparation of commodity market surveys#80.14.15.00.00
+unspsc7#80.14.15.05.00#Marketing plans#80.14.15.00.00
+unspsc7#80.14.15.06.00#Internet based market research#80.14.15.00.00
+unspsc7#80.14.16.00.00#Sales and business promotion activities#80.14.00.00.00
+unspsc7#80.14.16.01.00#Sales promotion services#80.14.16.00.00
+unspsc7#80.14.16.02.00#Public relation services#80.14.16.00.00
+unspsc7#80.14.16.03.00#Telemarketing#80.14.16.00.00
+unspsc7#80.14.16.04.00#Branding of product naming services#80.14.16.00.00
+unspsc7#80.14.16.05.00#Promotional merchandise#80.14.16.00.00
+unspsc7#80.14.16.06.00#Direct marketing fulfillment#80.14.16.00.00
+unspsc7#80.14.16.07.00#Events management#80.14.16.00.00
+unspsc7#80.14.16.08.00#Letter shop services#80.14.16.00.00
+unspsc7#80.14.16.09.00#Sponsorship of event or celebrity#80.14.16.00.00
+unspsc7#80.14.16.10.00#Close outs#80.14.16.00.00
+unspsc7#80.14.17.00.00#Distribution#80.14.00.00.00
+unspsc7#80.14.17.01.00#Direct sales services#80.14.17.00.00
+unspsc7#80.14.17.02.00#Wholesale distribution services#80.14.17.00.00
+unspsc7#80.14.17.03.00#Retail distribution services#80.14.17.00.00
+unspsc7#80.14.17.04.00#Franchise operations#80.14.17.00.00
+unspsc7#80.14.17.05.00#Auction services#80.14.17.00.00
+unspsc7#80.14.18.00.00#Mailing services#80.14.00.00.00
+unspsc7#80.14.18.01.00#Mailing list compilation services#80.14.18.00.00
+unspsc7#80.14.18.02.00#Mailing list management service#80.14.18.00.00
+unspsc7#80.14.18.03.00#Addressing service#80.14.18.00.00
+unspsc7#80.15.00.00.00#Trade policy and services#80.00.00.00.00
+unspsc7#80.15.15.00.00#Trade facilitation#80.15.00.00.00
+unspsc7#80.15.15.01.00#Commodity policy or projections services#80.15.15.00.00
+unspsc7#80.15.15.02.00#Trade expansion#80.15.15.00.00
+unspsc7#80.15.15.03.00#Trade information services#80.15.15.00.00
+unspsc7#80.15.15.04.00#Trade promotion services#80.15.15.00.00
+unspsc7#80.15.15.05.00#Multinational marketing enterprises#80.15.15.00.00
+unspsc7#80.15.16.00.00#International trade services#80.15.00.00.00
+unspsc7#80.15.16.01.00#Export development#80.15.16.00.00
+unspsc7#80.15.16.02.00#Import planning#80.15.16.00.00
+unspsc7#80.15.16.03.00#Export projections#80.15.16.00.00
+unspsc7#80.15.16.04.00#Import procurement services#80.15.16.00.00
+unspsc7#80.16.00.00.00#Business administration services#80.00.00.00.00
+unspsc7#80.16.15.00.00#Management support services#80.16.00.00.00
+unspsc7#80.16.15.01.00#Office administration or secretarial services#80.16.15.00.00
+unspsc7#80.16.15.02.00#Meeting planning services#80.16.15.00.00
+unspsc7#80.16.15.03.00#Keyboard entry services#80.16.15.00.00
+unspsc7#80.16.15.04.00#Clerical services#80.16.15.00.00
+unspsc7#80.16.15.05.00#Fleet management services#80.16.15.00.00
+unspsc7#80.16.15.06.00#Data archiving services#80.16.15.00.00
+unspsc7#80.16.15.07.00#Audio visual services#80.16.15.00.00
+unspsc7#80.16.16.00.00#Business facilities oversight#80.16.00.00.00
+unspsc7#80.16.16.01.00#Property managment services#80.16.16.00.00
+unspsc7#81.00.00.00.00#Engineering and Research and Technology Based Services#81.00.00.00.00
+unspsc7#81.10.00.00.00#Professional engineering services#81.00.00.00.00
+unspsc7#81.10.15.00.00#Civil engineering#81.10.00.00.00
+unspsc7#81.10.15.01.00#Well engineering#81.10.15.00.00
+unspsc7#81.10.15.02.00#Technical drawing#81.10.15.00.00
+unspsc7#81.10.15.03.00#Harbor or water ports engineering#81.10.15.00.00
+unspsc7#81.10.15.05.00#Structural engineering#81.10.15.00.00
+unspsc7#81.10.15.06.00#Naval architecture#81.10.15.00.00
+unspsc7#81.10.15.07.00#Dam engineering#81.10.15.00.00
+unspsc7#81.10.15.08.00#Architectural engineering#81.10.15.00.00
+unspsc7#81.10.15.09.00#Airport engineering#81.10.15.00.00
+unspsc7#81.10.15.10.00#Highway engineering#81.10.15.00.00
+unspsc7#81.10.15.11.00#Railway engineering#81.10.15.00.00
+unspsc7#81.10.16.00.00#Mechanical engineering#81.10.00.00.00
+unspsc7#81.10.16.01.00#Mechanical drawing#81.10.16.00.00
+unspsc7#81.10.16.02.00#Mechanical product enclosures design#81.10.16.00.00
+unspsc7#81.10.16.03.00#Machine tool design#81.10.16.00.00
+unspsc7#81.10.16.04.00#Power transmission design#81.10.16.00.00
+unspsc7#81.10.17.00.00#Electrical and electronic engineering#81.10.00.00.00
+unspsc7#81.10.17.01.00#Electrical engineering services#81.10.17.00.00
+unspsc7#81.10.17.02.00#Electronic circuit design#81.10.17.00.00
+unspsc7#81.10.18.00.00#Chemical engineering#81.10.00.00.00
+unspsc7#81.10.18.01.00#Plastics engineering#81.10.18.00.00
+unspsc7#81.10.19.00.00#Oil and gas engineering#81.10.00.00.00
+unspsc7#81.10.19.01.00#Drilling engineering for oil or gas#81.10.19.00.00
+unspsc7#81.10.19.02.00#Production engineering for oil or gas#81.10.19.00.00
+unspsc7#81.10.19.03.00#Reservoir engineering for oil or gas#81.10.19.00.00
+unspsc7#81.10.20.00.00#Mining engineering#81.10.00.00.00
+unspsc7#81.10.20.01.00#Hydraulic mining#81.10.20.00.00
+unspsc7#81.10.21.00.00#Ocean engineering#81.10.00.00.00
+unspsc7#81.10.21.01.00#Coastal engineering#81.10.21.00.00
+unspsc7#81.10.22.00.00#Transportation engineering#81.10.00.00.00
+unspsc7#81.10.22.01.00#Traffic engineering#81.10.22.00.00
+unspsc7#81.10.22.02.00#Urban transport network#81.10.22.00.00
+unspsc7#81.10.22.03.00#Inland waterways#81.10.22.00.00
+unspsc7#81.10.23.00.00#Aeronautical engineering#81.10.00.00.00
+unspsc7#81.10.23.01.00#Avionics design#81.10.23.00.00
+unspsc7#81.10.24.00.00#Avionics design#81.10.00.00.00
+unspsc7#81.11.00.00.00#Computer services#81.00.00.00.00
+unspsc7#81.11.15.00.00#Software or hardware engineering#81.11.00.00.00
+unspsc7#81.11.15.01.00#Mainframe software applications design#81.11.15.00.00
+unspsc7#81.11.15.02.00#Personal computer (PC) application design#81.11.15.00.00
+unspsc7#81.11.15.03.00#Systems integration design#81.11.15.00.00
+unspsc7#81.11.15.04.00#Application programming services#81.11.15.00.00
+unspsc7#81.11.15.05.00#Operating system programming services#81.11.15.00.00
+unspsc7#81.11.15.06.00#Client or server programming services#81.11.15.00.00
+unspsc7#81.11.15.07.00#ERP or database applications programming services#81.11.15.00.00
+unspsc7#81.11.15.08.00#Application implementation services#81.11.15.00.00
+unspsc7#81.11.15.09.00#Internet or intranet client application development services#81.11.15.00.00
+unspsc7#81.11.15.10.00#Internet or intranet server application development services#81.11.15.00.00
+unspsc7#81.11.15.11.00#Human resources productivity audits#81.11.15.00.00
+unspsc7#81.11.16.00.00#Computer programmers#81.11.00.00.00
+unspsc7#81.11.16.01.00#Programming for Visual Basic#81.11.16.00.00
+unspsc7#81.11.16.02.00#Programming for Java#81.11.16.00.00
+unspsc7#81.11.16.03.00#Programming for HTML#81.11.16.00.00
+unspsc7#81.11.16.04.00#Programming for ALGOL#81.11.16.00.00
+unspsc7#81.11.16.05.00#Programming for Assembler#81.11.16.00.00
+unspsc7#81.11.16.06.00#Programming for Basic#81.11.16.00.00
+unspsc7#81.11.16.07.00#Programming for C or C++#81.11.16.00.00
+unspsc7#81.11.16.08.00#Programming for COBOL#81.11.16.00.00
+unspsc7#81.11.16.09.00#Programming for FORTRAN#81.11.16.00.00
+unspsc7#81.11.16.10.00#Programming for Pascal#81.11.16.00.00
+unspsc7#81.11.16.11.00#Programming for PL/1#81.11.16.00.00
+unspsc7#81.11.16.12.00#Programming or Proprietary Languages#81.11.16.00.00
+unspsc7#81.11.17.00.00#Management information systems (MIS)#81.11.00.00.00
+unspsc7#81.11.17.01.00#Wide area network communications design#81.11.17.00.00
+unspsc7#81.11.17.02.00#Local area network communications design#81.11.17.00.00
+unspsc7#81.11.17.03.00#Electronic data interchange (EDI) design#81.11.17.00.00
+unspsc7#81.11.17.04.00#Database design#81.11.17.00.00
+unspsc7#81.11.17.05.00#Systems architecture#81.11.17.00.00
+unspsc7#81.11.18.00.00#System administrators#81.11.00.00.00
+unspsc7#81.11.18.01.00#Computer or network or internet security#81.11.18.00.00
+unspsc7#81.11.18.02.00#Mainframe administration services#81.11.18.00.00
+unspsc7#81.11.18.03.00#Local area network (LAN) maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.04.00#Wide area network (WAN) maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.05.00#Proprietary or licensed systems maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.06.00#Database analysis#81.11.18.00.00
+unspsc7#81.11.18.07.00#Data storage#81.11.18.00.00
+unspsc7#81.11.18.08.00#Systems analysis#81.11.18.00.00
+unspsc7#81.11.18.09.00#System installation#81.11.18.00.00
+unspsc7#81.11.18.10.00#Software coding#81.11.18.00.00
+unspsc7#81.11.18.11.00#Technical support or help desk services#81.11.18.00.00
+unspsc7#81.11.18.12.00#Computer hardware maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.13.00#Computer software maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.14.00#Co location service#81.11.18.00.00
+unspsc7#81.11.18.15.00#Printer maintenance and support services#81.11.18.00.00
+unspsc7#81.11.18.16.00#Mainframe computer maintenance or support#81.11.18.00.00
+unspsc7#81.11.18.17.00#Telecom equipment maintenance or support#81.11.18.00.00
+unspsc7#81.11.19.00.00#Information retrieval systems#81.11.00.00.00
+unspsc7#81.11.19.01.00#Database information retrieval#81.11.19.00.00
+unspsc7#81.11.19.02.00#On line database information retrieval#81.11.19.00.00
+unspsc7#81.11.19.03.00#Remote database information retrieval#81.11.19.00.00
+unspsc7#81.11.20.00.00#Data services#81.11.00.00.00
+unspsc7#81.11.20.01.00#On line data processing#81.11.20.00.00
+unspsc7#81.11.20.02.00#Data processing or preparation services#81.11.20.00.00
+unspsc7#81.11.20.03.00#Data center services#81.11.20.00.00
+unspsc7#81.11.20.04.00#Disaster recovery services#81.11.20.00.00
+unspsc7#81.11.20.05.00#Document scanning service#81.11.20.00.00
+unspsc7#81.11.20.06.00#Data storage service#81.11.20.00.00
+unspsc7#81.11.20.07.00#Content or data standardization services#81.11.20.00.00
+unspsc7#81.11.21.00.00#Internet services#81.11.00.00.00
+unspsc7#81.11.21.01.00#Internet service providers (ISP)#81.11.21.00.00
+unspsc7#81.11.21.02.00#Electronic mail service provider#81.11.21.00.00
+unspsc7#81.11.21.03.00#World wide web (WWW) site design services#81.11.21.00.00
+unspsc7#81.11.21.04.00#Web search engine providers#81.11.21.00.00
+unspsc7#81.11.21.05.00#World wide web (WWW) site operation (host) services#81.11.21.00.00
+unspsc7#81.11.21.06.00#Application service providers#81.11.21.00.00
+unspsc7#81.11.21.07.00#Internet domain names#81.11.21.00.00
+unspsc7#81.11.22.00.00#Software maintenance and support#81.11.00.00.00
+unspsc7#81.11.22.01.00#Maintenance and support fees#81.11.22.00.00
+unspsc7#81.11.22.02.00#Software patches or upgrades#81.11.22.00.00
+unspsc7#81.12.00.00.00#Economics#81.00.00.00.00
+unspsc7#81.12.15.00.00#Economic analysis#81.12.00.00.00
+unspsc7#81.12.15.01.00#Macro economic analysis#81.12.15.00.00
+unspsc7#81.12.15.02.00#Micro economic analysis#81.12.15.00.00
+unspsc7#81.12.15.03.00#Econometrics#81.12.15.00.00
+unspsc7#81.12.15.04.00#Economic forecasts#81.12.15.00.00
+unspsc7#81.12.16.00.00#Monetary systems and issues#81.12.00.00.00
+unspsc7#81.12.16.01.00#Monetary policy#81.12.16.00.00
+unspsc7#81.12.16.02.00#Monetary systems#81.12.16.00.00
+unspsc7#81.12.16.03.00#Monetary analysis#81.12.16.00.00
+unspsc7#81.12.16.04.00#Monetary liquidity#81.12.16.00.00
+unspsc7#81.12.16.05.00#Precious metals reserves#81.12.16.00.00
+unspsc7#81.12.16.06.00#Foreign exchange control#81.12.16.00.00
+unspsc7#81.12.16.07.00#Currency exchange markets#81.12.16.00.00
+unspsc7#81.13.00.00.00#Statistics#81.00.00.00.00
+unspsc7#81.13.15.00.00#Methodology and analysis#81.13.00.00.00
+unspsc7#81.13.15.01.00#Factor analysis#81.13.15.00.00
+unspsc7#81.13.15.02.00#Multivariate analysis#81.13.15.00.00
+unspsc7#81.13.15.03.00#Regression analysis#81.13.15.00.00
+unspsc7#81.13.15.04.00#Sampling surveys#81.13.15.00.00
+unspsc7#81.13.15.05.00#Time series analysis#81.13.15.00.00
+unspsc7#81.14.00.00.00#Manufacturing technologies#81.00.00.00.00
+unspsc7#81.14.15.00.00#Quality control#81.14.00.00.00
+unspsc7#81.14.15.01.00#Materials testing#81.14.15.00.00
+unspsc7#81.14.15.02.00#Materials synthesis#81.14.15.00.00
+unspsc7#81.14.15.03.00#Materials inspection#81.14.15.00.00
+unspsc7#81.14.15.04.00#Equipment test or calibration#81.14.15.00.00
+unspsc7#81.14.15.05.00#Production standards development#81.14.15.00.00
+unspsc7#81.14.15.06.00#Product testing#81.14.15.00.00
+unspsc7#81.14.16.00.00#Supply chain management#81.14.00.00.00
+unspsc7#81.14.16.01.00#Logistics#81.14.16.00.00
+unspsc7#81.14.16.02.00#Transit analysis#81.14.16.00.00
+unspsc7#81.14.16.03.00#Transport finance or economics#81.14.16.00.00
+unspsc7#81.14.16.04.00#Transport facilitation#81.14.16.00.00
+unspsc7#81.14.16.05.00#Transport infrastructure#81.14.16.00.00
+unspsc7#81.14.16.06.00#Transport planning#81.14.16.00.00
+unspsc7#81.14.17.00.00#Production planning and control#81.14.00.00.00
+unspsc7#81.14.17.01.00#Production planning#81.14.17.00.00
+unspsc7#81.14.17.02.00#Production control#81.14.17.00.00
+unspsc7#81.14.17.03.00#Production scheduling#81.14.17.00.00
+unspsc7#81.14.17.04.00#Production statistics collection or analysis services#81.14.17.00.00
+unspsc7#81.14.18.00.00#Facilities management#81.14.00.00.00
+unspsc7#81.14.18.01.00#Safety or risk analysis#81.14.18.00.00
+unspsc7#81.14.18.02.00#Industrial hygiene or ventilation#81.14.18.00.00
+unspsc7#81.14.18.03.00#Acoustics or noise control#81.14.18.00.00
+unspsc7#81.14.18.04.00#Equipment inspection service#81.14.18.00.00
+unspsc7#81.14.18.05.00#Building inspection service#81.14.18.00.00
+unspsc7#81.14.18.06.00#Power line inspection service#81.14.18.00.00
+unspsc7#81.14.18.07.00#Plumbing or sewer inspection service#81.14.18.00.00
+unspsc7#81.15.00.00.00#Earth science services#81.00.00.00.00
+unspsc7#81.15.15.00.00#Meteorology#81.15.00.00.00
+unspsc7#81.15.15.01.00#Climatology#81.15.15.00.00
+unspsc7#81.15.15.02.00#Meteorological services#81.15.15.00.00
+unspsc7#81.15.15.03.00#Hydrometeorology#81.15.15.00.00
+unspsc7#81.15.16.00.00#Cartography#81.15.00.00.00
+unspsc7#81.15.16.01.00#Mapping#81.15.16.00.00
+unspsc7#81.15.16.02.00#Map production#81.15.16.00.00
+unspsc7#81.15.16.03.00#Photogrammetry#81.15.16.00.00
+unspsc7#81.15.16.04.00#Land surveying#81.15.16.00.00
+unspsc7#81.15.17.00.00#Geology#81.15.00.00.00
+unspsc7#81.15.17.01.00#Photogeology#81.15.17.00.00
+unspsc7#81.15.17.02.00#Stratigraphic geology#81.15.17.00.00
+unspsc7#81.15.17.03.00#Geological surveys#81.15.17.00.00
+unspsc7#81.15.17.04.00#Geological exploration#81.15.17.00.00
+unspsc7#81.15.17.05.00#Archaeological services#81.15.17.00.00
+unspsc7#81.15.18.00.00#Oceanography and hydrology#81.15.00.00.00
+unspsc7#81.15.18.01.00#Oceanographic survey#81.15.18.00.00
+unspsc7#81.15.18.02.00#Estuarine oceanography#81.15.18.00.00
+unspsc7#81.15.18.03.00#Physical oceanography#81.15.18.00.00
+unspsc7#81.15.18.04.00#Hydrological surveys#81.15.18.00.00
+unspsc7#81.15.18.05.00#Bathymetric surveys#81.15.18.00.00
+unspsc7#81.15.18.06.00#Underwater exploration#81.15.18.00.00
+unspsc7#81.15.19.00.00#Geophysics#81.15.00.00.00
+unspsc7#81.15.19.01.00#Geophysical surveys#81.15.19.00.00
+unspsc7#81.15.19.02.00#Geophysical exploration#81.15.19.00.00
+unspsc7#81.15.19.03.00#Geophysical photo interpretation#81.15.19.00.00
+unspsc7#81.15.19.04.00#Aero magnetic geophysics#81.15.19.00.00
+unspsc7#82.00.00.00.00#Editorial and Design and Graphic and Fine Art Services#82.00.00.00.00
+unspsc7#82.10.00.00.00#Advertising#82.00.00.00.00
+unspsc7#82.10.15.00.00#Print advertising#82.10.00.00.00
+unspsc7#82.10.15.01.00#Billboard advertising#82.10.15.00.00
+unspsc7#82.10.15.02.00#Poster advertising#82.10.15.00.00
+unspsc7#82.10.15.03.00#Magazine advertising#82.10.15.00.00
+unspsc7#82.10.15.04.00#Newspaper advertising#82.10.15.00.00
+unspsc7#82.10.15.05.00#Handbill or coupon advertising#82.10.15.00.00
+unspsc7#82.10.15.06.00#Transit advertising services#82.10.15.00.00
+unspsc7#82.10.15.07.00#Shopping news or advertising or distribution service#82.10.15.00.00
+unspsc7#82.10.15.08.00#Yellow pages advertising#82.10.15.00.00
+unspsc7#82.10.16.00.00#Broadcast advertising#82.10.00.00.00
+unspsc7#82.10.16.01.00#Radio advertising#82.10.16.00.00
+unspsc7#82.10.16.02.00#Television advertising#82.10.16.00.00
+unspsc7#82.10.16.03.00#Internet advertising#82.10.16.00.00
+unspsc7#82.10.17.00.00#Aerial advertising#82.10.00.00.00
+unspsc7#82.10.17.01.00#Banner advertising services#82.10.17.00.00
+unspsc7#82.10.17.02.00#Skywriting advertising services#82.10.17.00.00
+unspsc7#82.10.18.00.00#Advertising agency services#82.10.00.00.00
+unspsc7#82.10.18.01.00#Advertising campaign services#82.10.18.00.00
+unspsc7#82.11.00.00.00#Writing and translations#82.00.00.00.00
+unspsc7#82.11.15.00.00#Technical writing#82.11.00.00.00
+unspsc7#82.11.15.01.00#Instruction writing services#82.11.15.00.00
+unspsc7#82.11.15.02.00#Manual writing services#82.11.15.00.00
+unspsc7#82.11.15.03.00#Academic or scientific article writing#82.11.15.00.00
+unspsc7#82.11.16.00.00#Non technical writing#82.11.00.00.00
+unspsc7#82.11.16.01.00#Letter writing services#82.11.16.00.00
+unspsc7#82.11.16.02.00#Resume writing services#82.11.16.00.00
+unspsc7#82.11.16.03.00#Court reporting services#82.11.16.00.00
+unspsc7#82.11.16.04.00#Transcribing services#82.11.16.00.00
+unspsc7#82.11.17.00.00#Creative writing#82.11.00.00.00
+unspsc7#82.11.17.01.00#Article writers services#82.11.17.00.00
+unspsc7#82.11.17.02.00#Book authors services#82.11.17.00.00
+unspsc7#82.11.17.03.00#Poetry authors services#82.11.17.00.00
+unspsc7#82.11.17.04.00#Copywriting#82.11.17.00.00
+unspsc7#82.11.17.05.00#Speech writing#82.11.17.00.00
+unspsc7#82.11.18.00.00#Editorial and support services#82.11.00.00.00
+unspsc7#82.11.18.01.00#Editing services#82.11.18.00.00
+unspsc7#82.11.18.02.00#Fact checking services#82.11.18.00.00
+unspsc7#82.11.18.03.00#Proofreading services#82.11.18.00.00
+unspsc7#82.11.18.04.00#Written translation services#82.11.18.00.00
+unspsc7#82.11.19.00.00#News and publicity services#82.11.00.00.00
+unspsc7#82.11.19.01.00#Press release services#82.11.19.00.00
+unspsc7#82.11.19.02.00#Special interest newsletter services#82.11.19.00.00
+unspsc7#82.11.19.03.00#News agency wire services#82.11.19.00.00
+unspsc7#82.11.19.04.00#Newspaper or advertising material delivery services#82.11.19.00.00
+unspsc7#82.12.00.00.00#Reproduction services#82.00.00.00.00
+unspsc7#82.12.15.00.00#Printing#82.12.00.00.00
+unspsc7#82.12.15.01.00#Planning or layout of graphic production#82.12.15.00.00
+unspsc7#82.12.15.02.00#Typesetting#82.12.15.00.00
+unspsc7#82.12.15.03.00#Digital printing#82.12.15.00.00
+unspsc7#82.12.15.04.00#Letterpress or screen printing#82.12.15.00.00
+unspsc7#82.12.15.05.00#Promotional or advertising printing#82.12.15.00.00
+unspsc7#82.12.15.06.00#Publication printing#82.12.15.00.00
+unspsc7#82.12.15.07.00#Stationery or business form printing#82.12.15.00.00
+unspsc7#82.12.15.08.00#Wrap or tag or label or seal or bag printing#82.12.15.00.00
+unspsc7#82.12.15.09.00#Security or financial instruments printing#82.12.15.00.00
+unspsc7#82.12.15.10.00#Textile printing#82.12.15.00.00
+unspsc7#82.12.15.11.00#Technical manual and instruction sheet printing#82.12.15.00.00
+unspsc7#82.12.15.12.00#Embossing#82.12.15.00.00
+unspsc7#82.12.16.00.00#Engraving#82.12.00.00.00
+unspsc7#82.12.16.01.00#Currency engraving#82.12.16.00.00
+unspsc7#82.12.16.02.00#Engraved roll printing#82.12.16.00.00
+unspsc7#82.12.16.03.00#Metal plate engraving#82.12.16.00.00
+unspsc7#82.12.17.00.00#Photocopying#82.12.00.00.00
+unspsc7#82.12.17.01.00#Black and white copy or collating services#82.12.17.00.00
+unspsc7#82.12.17.02.00#Color copy or collating services#82.12.17.00.00
+unspsc7#82.12.18.00.00#Publishing#82.12.00.00.00
+unspsc7#82.12.18.01.00#Textbook or research publishing#82.12.18.00.00
+unspsc7#82.12.18.02.00#Author funded publishing services#82.12.18.00.00
+unspsc7#82.12.19.00.00#Bookbinding#82.12.00.00.00
+unspsc7#82.12.19.01.00#Thread stitch bookbinding#82.12.19.00.00
+unspsc7#82.12.19.02.00#Spiral binding#82.12.19.00.00
+unspsc7#82.12.19.03.00#Glued binding#82.12.19.00.00
+unspsc7#82.12.19.04.00#Comb or clamp type binding#82.12.19.00.00
+unspsc7#82.12.19.05.00#Binding restoration or repair#82.12.19.00.00
+unspsc7#82.12.19.06.00#Bronzing or gilding or edging or deckling#82.12.19.00.00
+unspsc7#82.13.00.00.00#Photographic services#82.00.00.00.00
+unspsc7#82.13.15.00.00#Film processing services#82.13.00.00.00
+unspsc7#82.13.15.01.00#Still film processing or reproduction#82.13.15.00.00
+unspsc7#82.13.15.02.00#Motion picture film processing or reproduction#82.13.15.00.00
+unspsc7#82.13.15.03.00#Microfiche services#82.13.15.00.00
+unspsc7#82.13.15.04.00#Color separation#82.13.15.00.00
+unspsc7#82.13.16.00.00#Photographers and cinematographers#82.13.00.00.00
+unspsc7#82.13.16.01.00#Aerial photography services#82.13.16.00.00
+unspsc7#82.13.16.02.00#Motion picture cinematography#82.13.16.00.00
+unspsc7#82.13.16.03.00#Video production services#82.13.16.00.00
+unspsc7#82.13.16.04.00#Studio photography services or still photographs#82.13.16.00.00
+unspsc7#82.14.00.00.00#Graphic design#82.00.00.00.00
+unspsc7#82.14.15.00.00#Art design services#82.14.00.00.00
+unspsc7#82.14.15.01.00#Layout or graphics editing services#82.14.15.00.00
+unspsc7#82.14.15.02.00#Art design or graphics#82.14.15.00.00
+unspsc7#82.14.15.03.00#Photocomposition#82.14.15.00.00
+unspsc7#82.14.15.04.00#Chart or graph design services#82.14.15.00.00
+unspsc7#82.14.15.05.00#Computer generated design services#82.14.15.00.00
+unspsc7#82.14.15.06.00#Package design services#82.14.15.00.00
+unspsc7#82.14.15.07.00#Silkscreen design services#82.14.15.00.00
+unspsc7#82.14.16.00.00#Graphic display services#82.14.00.00.00
+unspsc7#82.14.16.01.00#Photographic or picture mounting or framing services#82.14.16.00.00
+unspsc7#82.14.16.02.00#Article display arrangement#82.14.16.00.00
+unspsc7#82.15.00.00.00#Professional artists and performers#82.00.00.00.00
+unspsc7#82.15.15.00.00#Visual art services#82.15.00.00.00
+unspsc7#82.15.15.01.00#Painters services#82.15.15.00.00
+unspsc7#82.15.15.02.00#Lithographers services#82.15.15.00.00
+unspsc7#82.15.15.03.00#Cartoonists services#82.15.15.00.00
+unspsc7#82.15.15.04.00#Sculptors services#82.15.15.00.00
+unspsc7#82.15.15.05.00#Ceramics makers services#82.15.15.00.00
+unspsc7#82.15.15.06.00#Glass blowers services#82.15.15.00.00
+unspsc7#82.15.15.07.00#Textile spinners or loomers or weavers services#82.15.15.00.00
+unspsc7#82.15.15.08.00#Taxidermy services#82.15.15.00.00
+unspsc7#82.15.16.00.00#Circus performers#82.15.00.00.00
+unspsc7#82.15.16.01.00#Animal trainers services#82.15.16.00.00
+unspsc7#82.15.16.02.00#Acrobats services#82.15.16.00.00
+unspsc7#82.15.16.03.00#Magicians services#82.15.16.00.00
+unspsc7#82.15.16.04.00#Clowns services#82.15.16.00.00
+unspsc7#82.15.17.00.00#Performing arts professionals#82.15.00.00.00
+unspsc7#82.15.17.01.00#Acting services#82.15.17.00.00
+unspsc7#82.15.17.02.00#Comedians services#82.15.17.00.00
+unspsc7#82.15.17.03.00#Dancers services#82.15.17.00.00
+unspsc7#82.15.17.04.00#Musicians services#82.15.17.00.00
+unspsc7#82.15.17.05.00#Vocalists services#82.15.17.00.00
+unspsc7#82.15.17.06.00#Choreographic services#82.15.17.00.00
+unspsc7#83.00.00.00.00#Public Utilities and Public Sector Related Services#83.00.00.00.00
+unspsc7#83.10.00.00.00#Utilities#83.00.00.00.00
+unspsc7#83.10.15.00.00#Water and sewer utilities#83.10.00.00.00
+unspsc7#83.10.15.01.00#Supply of water#83.10.15.00.00
+unspsc7#83.10.15.02.00#Water resource management#83.10.15.00.00
+unspsc7#83.10.15.03.00#Water quality control management#83.10.15.00.00
+unspsc7#83.10.15.04.00#Water distribution management#83.10.15.00.00
+unspsc7#83.10.15.05.00#Water policy advisory services#83.10.15.00.00
+unspsc7#83.10.15.06.00#Water treatment services#83.10.15.00.00
+unspsc7#83.10.15.07.00#Desalination services#83.10.15.00.00
+unspsc7#83.10.15.08.00#Town water#83.10.15.00.00
+unspsc7#83.10.15.09.00#Service water#83.10.15.00.00
+unspsc7#83.10.15.10.00#Chilled water#83.10.15.00.00
+unspsc7#83.10.16.00.00#Oil and gas utilities#83.10.00.00.00
+unspsc7#83.10.16.01.00#Supply of natural gas#83.10.16.00.00
+unspsc7#83.10.16.02.00#Supply of fuel oil#83.10.16.00.00
+unspsc7#83.10.16.03.00#Oil pipeline services#83.10.16.00.00
+unspsc7#83.10.16.04.00#Gas pipeline services#83.10.16.00.00
+unspsc7#83.10.16.05.00#Gas facility charge#83.10.16.00.00
+unspsc7#83.10.18.00.00#Electric utilities#83.10.00.00.00
+unspsc7#83.10.18.01.00#Supply of single phase electricity#83.10.18.00.00
+unspsc7#83.10.18.02.00#Supply of two phase electricity#83.10.18.00.00
+unspsc7#83.10.18.03.00#Supply of three phase electricity#83.10.18.00.00
+unspsc7#83.10.18.04.00#Electric power transmission services#83.10.18.00.00
+unspsc7#83.10.18.05.00#Industrial electric power distribution#83.10.18.00.00
+unspsc7#83.10.18.06.00#Rural electrical power distribution#83.10.18.00.00
+unspsc7#83.10.18.07.00#Municipal electric power distribution#83.10.18.00.00
+unspsc7#83.10.19.00.00#Energy conservation#83.10.00.00.00
+unspsc7#83.10.19.01.00#Energy conservation programs#83.10.19.00.00
+unspsc7#83.10.19.02.00#Energy use reduction measures#83.10.19.00.00
+unspsc7#83.10.20.00.00#Funeral services#83.10.00.00.00
+unspsc7#83.10.20.01.00#Grave digging#83.10.20.00.00
+unspsc7#83.11.00.00.00#Telecommunications media services#83.00.00.00.00
+unspsc7#83.11.15.00.00#Local and long distance telephone communications#83.11.00.00.00
+unspsc7#83.11.15.01.00#Local telephone service#83.11.15.00.00
+unspsc7#83.11.15.02.00#Long distance telephone services#83.11.15.00.00
+unspsc7#83.11.15.03.00#Pay phone provider services#83.11.15.00.00
+unspsc7#83.11.15.04.00#Pre paid phone card services#83.11.15.00.00
+unspsc7#83.11.15.05.00#Directory assistance services#83.11.15.00.00
+unspsc7#83.11.15.06.00#Conference calling services#83.11.15.00.00
+unspsc7#83.11.15.07.00#Call centre bureau services#83.11.15.00.00
+unspsc7#83.11.15.08.00#Toll free inbound telephone service#83.11.15.00.00
+unspsc7#83.11.15.09.00#Telephone equipment repair services#83.11.15.00.00
+unspsc7#83.11.16.00.00#Mobile communications services#83.11.00.00.00
+unspsc7#83.11.16.01.00#Telecommunication signal enhancement network services#83.11.16.00.00
+unspsc7#83.11.16.02.00#Satellite or earth communication systems services#83.11.16.00.00
+unspsc7#83.11.16.03.00#Cellular telephone services#83.11.16.00.00
+unspsc7#83.11.16.04.00#Paging services#83.11.16.00.00
+unspsc7#83.11.17.00.00#Facsimile and telegraph services#83.11.00.00.00
+unspsc7#83.11.17.01.00#Facsimile transmission services#83.11.17.00.00
+unspsc7#83.11.17.02.00#Telegraph transmission services#83.11.17.00.00
+unspsc7#83.11.17.03.00#Telex transmission services#83.11.17.00.00
+unspsc7#83.11.18.00.00#Television services#83.11.00.00.00
+unspsc7#83.11.18.01.00#Cable television services#83.11.18.00.00
+unspsc7#83.11.18.02.00#Closed circuit television services#83.11.18.00.00
+unspsc7#83.11.18.03.00#Television antenna construction or rental services#83.11.18.00.00
+unspsc7#83.11.18.04.00#Television broadcasting station management#83.11.18.00.00
+unspsc7#83.11.19.00.00#Radio services#83.11.00.00.00
+unspsc7#83.11.19.01.00#Radio broadcasting station management#83.11.19.00.00
+unspsc7#83.11.19.02.00#Amateur radio networks or services#83.11.19.00.00
+unspsc7#83.11.19.03.00#Small scale radio systems#83.11.19.00.00
+unspsc7#83.11.19.04.00#Radio studio or equipment services#83.11.19.00.00
+unspsc7#83.11.20.00.00#Fiber telecommunications services#83.11.00.00.00
+unspsc7#83.11.20.01.00#Dark fiber#83.11.20.00.00
+unspsc7#83.11.20.02.00#Dense wavelength division multiplexing DWDM#83.11.20.00.00
+unspsc7#83.11.20.03.00#Wave division multiplexing WDM#83.11.20.00.00
+unspsc7#83.11.20.04.00#Ocx optical carrier service#83.11.20.00.00
+unspsc7#83.11.21.00.00#Switched dial up and leased dedicated line circuit telecommunications services#83.11.00.00.00
+unspsc7#83.11.21.01.00#High speed circuit switched dial up services#83.11.21.00.00
+unspsc7#83.11.21.02.00#ISDN integrated services digital network services#83.11.21.00.00
+unspsc7#83.11.21.03.00#Point to point digital telecommunications circuit#83.11.21.00.00
+unspsc7#83.11.21.04.00#Multi point analog telecommunications circuit#83.11.21.00.00
+unspsc7#83.11.21.05.00#Point to point analog telecommunications circuit#83.11.21.00.00
+unspsc7#83.11.21.06.00#xDSL digital subscriber line#83.11.21.00.00
+unspsc7#83.11.22.00.00#Enhanced telecommunications services#83.11.00.00.00
+unspsc7#83.11.22.01.00#ATM asyncronous transfer mode managed network services#83.11.22.00.00
+unspsc7#83.11.22.02.00#Frame relay public managed network services#83.11.22.00.00
+unspsc7#83.11.22.03.00#VPN virtual private network managed network services#83.11.22.00.00
+unspsc7#83.11.22.04.00#X75 managed network services#83.11.22.00.00
+unspsc7#83.11.22.05.00#X25 managed network services#83.11.22.00.00
+unspsc7#83.12.00.00.00#Information services#83.00.00.00.00
+unspsc7#83.12.15.00.00#Libraries#83.12.00.00.00
+unspsc7#83.12.15.01.00#General municipal public use libraries#83.12.15.00.00
+unspsc7#83.12.15.02.00#College or university libraries#83.12.15.00.00
+unspsc7#83.12.15.03.00#Privately owned libraries#83.12.15.00.00
+unspsc7#83.12.15.04.00#National government or military post libraries#83.12.15.00.00
+unspsc7#83.12.16.00.00#Information centers#83.12.00.00.00
+unspsc7#83.12.16.01.00#Chambers of commerce#83.12.16.00.00
+unspsc7#83.12.16.02.00#Tourism board services#83.12.16.00.00
+unspsc7#83.12.16.03.00#Computerized information retrieval systems#83.12.16.00.00
+unspsc7#83.12.16.04.00#Online database information retrieval systems#83.12.16.00.00
+unspsc7#83.12.16.05.00#Remote database information retrieval services#83.12.16.00.00
+unspsc7#83.12.16.06.00#Skip tracing#83.12.16.00.00
+unspsc7#83.12.17.00.00#Mass communication services#83.12.00.00.00
+unspsc7#83.12.17.01.00#Television related services#83.12.17.00.00
+unspsc7#83.12.17.02.00#Radio related services#83.12.17.00.00
+unspsc7#83.12.17.03.00#Internet related services#83.12.17.00.00
+unspsc7#83.12.17.04.00#Citizen warning systems#83.12.17.00.00
+unspsc7#84.00.00.00.00#Financial and Insurance Services#84.00.00.00.00
+unspsc7#84.10.00.00.00#Development finance#84.00.00.00.00
+unspsc7#84.10.15.00.00#Development assistance#84.10.00.00.00
+unspsc7#84.10.15.01.00#Financial assistance#84.10.15.00.00
+unspsc7#84.10.15.02.00#Savings mobilization programs#84.10.15.00.00
+unspsc7#84.10.15.03.00#Guarantee agreements#84.10.15.00.00
+unspsc7#84.10.16.00.00#Aid financing#84.10.00.00.00
+unspsc7#84.10.16.01.00#Co financing#84.10.16.00.00
+unspsc7#84.10.16.02.00#Bi lateral or multi lateral aid#84.10.16.00.00
+unspsc7#84.10.16.03.00#Non governmental aid#84.10.16.00.00
+unspsc7#84.10.16.04.00#Government aid#84.10.16.00.00
+unspsc7#84.10.17.00.00#Debt management#84.10.00.00.00
+unspsc7#84.10.17.01.00#Debt negotiation#84.10.17.00.00
+unspsc7#84.10.17.02.00#Debt reorganization#84.10.17.00.00
+unspsc7#84.10.17.03.00#Debt servicing#84.10.17.00.00
+unspsc7#84.10.17.04.00#Debt collection services#84.10.17.00.00
+unspsc7#84.10.17.05.00#Repossession services#84.10.17.00.00
+unspsc7#84.11.00.00.00#Accounting and auditing#84.00.00.00.00
+unspsc7#84.11.15.00.00#Accounting services#84.11.00.00.00
+unspsc7#84.11.15.01.00#Cost accounting#84.11.15.00.00
+unspsc7#84.11.15.02.00#Financial accounting#84.11.15.00.00
+unspsc7#84.11.15.03.00#Tax accounting#84.11.15.00.00
+unspsc7#84.11.15.04.00#Bookkeeping services#84.11.15.00.00
+unspsc7#84.11.15.05.00#Payroll accounting services#84.11.15.00.00
+unspsc7#84.11.15.06.00#Billing services#84.11.15.00.00
+unspsc7#84.11.15.07.00#Inventory accounting#84.11.15.00.00
+unspsc7#84.11.16.00.00#Audit services#84.11.00.00.00
+unspsc7#84.11.16.01.00#Year end audits#84.11.16.00.00
+unspsc7#84.11.16.02.00#Quarterly reviews#84.11.16.00.00
+unspsc7#84.11.16.03.00#Internal audits#84.11.16.00.00
+unspsc7#84.11.17.00.00#Corporate finance#84.11.00.00.00
+unspsc7#84.11.17.01.00#Treasury services#84.11.17.00.00
+unspsc7#84.11.17.02.00#Investor relations services or programs#84.11.17.00.00
+unspsc7#84.11.17.03.00#Budget preparation or review services#84.11.17.00.00
+unspsc7#84.11.18.00.00#Taxation issues and preparation#84.11.00.00.00
+unspsc7#84.11.18.01.00#Tax preparers#84.11.18.00.00
+unspsc7#84.11.18.02.00#Tax advisory services#84.11.18.00.00
+unspsc7#84.12.00.00.00#Banking and investment#84.00.00.00.00
+unspsc7#84.12.15.00.00#Banking institutions#84.12.00.00.00
+unspsc7#84.12.15.01.00#Privately owned banks#84.12.15.00.00
+unspsc7#84.12.15.02.00#Publicly owned banks#84.12.15.00.00
+unspsc7#84.12.15.03.00#Credit unions#84.12.15.00.00
+unspsc7#84.12.15.04.00#Development finance institutions#84.12.15.00.00
+unspsc7#84.12.16.00.00#Funds transfer and clearance and exchange services#84.12.00.00.00
+unspsc7#84.12.16.01.00#Funds clearance services#84.12.16.00.00
+unspsc7#84.12.16.02.00#Letter of credit services#84.12.16.00.00
+unspsc7#84.12.16.03.00#Currency exchange services#84.12.16.00.00
+unspsc7#84.12.16.04.00#Spot exchange transaction services#84.12.16.00.00
+unspsc7#84.12.16.05.00#Currency conversion service#84.12.16.00.00
+unspsc7#84.12.16.06.00#Remittance processing services#84.12.16.00.00
+unspsc7#84.12.17.00.00#Investment advice#84.12.00.00.00
+unspsc7#84.12.17.01.00#Investment advisers#84.12.17.00.00
+unspsc7#84.12.17.02.00#Investment policy#84.12.17.00.00
+unspsc7#84.12.17.03.00#Investment analysis#84.12.17.00.00
+unspsc7#84.12.17.04.00#Investment agreements#84.12.17.00.00
+unspsc7#84.12.17.05.00#Market data#84.12.17.00.00
+unspsc7#84.12.18.00.00#Securities and commodities markets services#84.12.00.00.00
+unspsc7#84.12.18.01.00#Stock market trading services#84.12.18.00.00
+unspsc7#84.12.18.02.00#Commodities or futures market services#84.12.18.00.00
+unspsc7#84.12.18.03.00#Government bonds#84.12.18.00.00
+unspsc7#84.12.18.04.00#Privately issued bonds#84.12.18.00.00
+unspsc7#84.12.18.05.00#Precious metals market services#84.12.18.00.00
+unspsc7#84.12.19.00.00#Mortgage banking#84.12.00.00.00
+unspsc7#84.12.19.01.00#Housing finance#84.12.19.00.00
+unspsc7#84.12.19.02.00#Re financing services#84.12.19.00.00
+unspsc7#84.12.19.03.00#Commercial mortgage finance#84.12.19.00.00
+unspsc7#84.12.20.00.00#Cash vault services#84.12.00.00.00
+unspsc7#84.12.20.01.00#Deposit verification services#84.12.20.00.00
+unspsc7#84.13.00.00.00#Insurance and retirement services#84.00.00.00.00
+unspsc7#84.13.15.00.00#Insurance services for structures and property and possessions#84.13.00.00.00
+unspsc7#84.13.15.01.00#Building or building contents insurance#84.13.15.00.00
+unspsc7#84.13.15.02.00#Homeowners or renters insurance#84.13.15.00.00
+unspsc7#84.13.15.03.00#Car or truck insurance#84.13.15.00.00
+unspsc7#84.13.15.04.00#Cargo insurance#84.13.15.00.00
+unspsc7#84.13.15.05.00#Marine insurance#84.13.15.00.00
+unspsc7#84.13.15.06.00#Reinsurance services#84.13.15.00.00
+unspsc7#84.13.16.00.00#Life and health and accident insurance#84.13.00.00.00
+unspsc7#84.13.16.01.00#Life insurance#84.13.16.00.00
+unspsc7#84.13.16.02.00#Health or hospitalization insurance#84.13.16.00.00
+unspsc7#84.13.16.03.00#Accidental injury insurance#84.13.16.00.00
+unspsc7#84.13.16.04.00#Disability insurance#84.13.16.00.00
+unspsc7#84.13.16.05.00#Workmens insurance#84.13.16.00.00
+unspsc7#84.13.16.06.00#Unemployment insurance#84.13.16.00.00
+unspsc7#84.13.16.07.00#Liability insurance#84.13.16.00.00
+unspsc7#84.13.17.00.00#Pension funds#84.13.00.00.00
+unspsc7#84.13.17.01.00#Employer administered pension funds#84.13.17.00.00
+unspsc7#84.13.17.02.00#Union or guild administered pension funds#84.13.17.00.00
+unspsc7#84.13.18.00.00#Retirement funds#84.13.00.00.00
+unspsc7#84.13.18.01.00#Self directed or employer sponsored retirement funds#84.13.18.00.00
+unspsc7#84.13.18.02.00#Self directed or self initiated retirement plans#84.13.18.00.00
+unspsc7#84.14.00.00.00#Credit agencies#84.00.00.00.00
+unspsc7#84.14.15.00.00#Governmental credit agencies#84.14.00.00.00
+unspsc7#84.14.15.01.00#Farm credit services#84.14.15.00.00
+unspsc7#84.14.15.02.00#Small business loan agencies#84.14.15.00.00
+unspsc7#84.14.15.03.00#Minority owned business programs#84.14.15.00.00
+unspsc7#84.14.16.00.00#Personal credit agencies#84.14.00.00.00
+unspsc7#84.14.16.01.00#Consumer credit gathering or reporting services#84.14.16.00.00
+unspsc7#84.14.16.02.00#Credit card service providers#84.14.16.00.00
+unspsc7#84.14.17.00.00#Business credit agencies#84.14.00.00.00
+unspsc7#84.14.17.01.00#Business credit gathering or reporting services#84.14.17.00.00
+unspsc7#84.14.17.02.00#Value added network (VAN) services#84.14.17.00.00
+unspsc7#85.00.00.00.00#Healthcare Services#85.00.00.00.00
+unspsc7#85.10.00.00.00#Comprehensive health services#85.00.00.00.00
+unspsc7#85.10.15.00.00#Healthcare centers#85.10.00.00.00
+unspsc7#85.10.15.01.00#Emergency or surgical hospital services#85.10.15.00.00
+unspsc7#85.10.15.02.00#Private specialized clinic services#85.10.15.00.00
+unspsc7#85.10.15.03.00#Medical office services#85.10.15.00.00
+unspsc7#85.10.15.04.00#Psychiatric hospital services#85.10.15.00.00
+unspsc7#85.10.15.05.00#Respiratory hospital services#85.10.15.00.00
+unspsc7#85.10.15.06.00#Substance abuse hospital services#85.10.15.00.00
+unspsc7#85.10.15.07.00#Urgent care centers#85.10.15.00.00
+unspsc7#85.10.15.08.00#Mobile healthcare centers or services#85.10.15.00.00
+unspsc7#85.10.15.09.00#Gynecological or obstetrical hospital services#85.10.15.00.00
+unspsc7#85.10.16.00.00#Healthcare provider support persons#85.10.00.00.00
+unspsc7#85.10.16.01.00#Nursing services#85.10.16.00.00
+unspsc7#85.10.16.02.00#Midwifery or child birth preparation services#85.10.16.00.00
+unspsc7#85.10.16.03.00#Personal care services in specialized institutions#85.10.16.00.00
+unspsc7#85.10.16.04.00#Physicians personnel assistance services#85.10.16.00.00
+unspsc7#85.10.16.05.00#Home health assistants#85.10.16.00.00
+unspsc7#85.10.17.00.00#Health administration services#85.10.00.00.00
+unspsc7#85.10.17.01.00#Health policy#85.10.17.00.00
+unspsc7#85.10.17.02.00#Health legislation or regulations#85.10.17.00.00
+unspsc7#85.10.17.03.00#Health service planning#85.10.17.00.00
+unspsc7#85.10.17.04.00#Health economics#85.10.17.00.00
+unspsc7#85.10.17.05.00#Public health administration#85.10.17.00.00
+unspsc7#85.10.17.06.00#Traditional healthcare services#85.10.17.00.00
+unspsc7#85.10.17.07.00#Health systems evaluation services#85.10.17.00.00
+unspsc7#85.11.00.00.00#Disease prevention and control#85.00.00.00.00
+unspsc7#85.11.15.00.00#Contagious disease prevention and control#85.11.00.00.00
+unspsc7#85.11.15.01.00#Aids prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.02.00#Parasitic disease prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.03.00#Fungal diseases prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.04.00#Tuberculosis prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.05.00#Leprosy prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.06.00#Bacterial disease prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.07.00#Sexually transmitted diseases prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.08.00#Viral diseases prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.09.00#Zoonotic diseases prevention or control services#85.11.15.00.00
+unspsc7#85.11.15.10.00#Vaccination services#85.11.15.00.00
+unspsc7#85.11.15.11.00#Quarantine services#85.11.15.00.00
+unspsc7#85.11.15.12.00#Immunization services#85.11.15.00.00
+unspsc7#85.11.15.13.00#Disinsectization services#85.11.15.00.00
+unspsc7#85.11.15.14.00#Epidemics prevention or control services#85.11.15.00.00
+unspsc7#85.11.16.00.00#Non contagious disease prevention and control#85.11.00.00.00
+unspsc7#85.11.16.01.00#Bone diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.02.00#Cancer or leukemia prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.03.00#Endocrine diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.04.00#Heart diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.05.00#Immunologic prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.06.00#Allergies prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.07.00#Neurological disorders prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.08.00#Nutritional diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.09.00#Radiation sickness prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.10.00#Digestive system diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.11.00#Eye disease prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.12.00#Respiratory diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.13.00#Tropical diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.14.00#Childhood diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.15.00#Diarrheal diseases prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.16.00#Alcoholism prevention or control services#85.11.16.00.00
+unspsc7#85.11.16.17.00#Drug addiction prevention or control services#85.11.16.00.00
+unspsc7#85.11.17.00.00#Disease vectors management and control#85.11.00.00.00
+unspsc7#85.11.17.01.00#Ticks management or control services#85.11.17.00.00
+unspsc7#85.11.17.02.00#Tsetse flies management or control services#85.11.17.00.00
+unspsc7#85.11.17.03.00#Bacteria management or control services#85.11.17.00.00
+unspsc7#85.11.17.04.00#Mosquito management or control services#85.11.17.00.00
+unspsc7#85.12.00.00.00#Medical practice#85.00.00.00.00
+unspsc7#85.12.15.00.00#Primary care practitioners services#85.12.00.00.00
+unspsc7#85.12.15.01.00#Primary care physicians home visits services#85.12.15.00.00
+unspsc7#85.12.15.02.00#Primary care physicians consultation services#85.12.15.00.00
+unspsc7#85.12.15.03.00#Primary care physicians control services#85.12.15.00.00
+unspsc7#85.12.15.04.00#Primary care physicians emergency medical services#85.12.15.00.00
+unspsc7#85.12.16.00.00#Medical doctors specialist services#85.12.00.00.00
+unspsc7#85.12.16.01.00#Gynecologic or obstetric services#85.12.16.00.00
+unspsc7#85.12.16.02.00#Nephrology services#85.12.16.00.00
+unspsc7#85.12.16.03.00#Cardiology services#85.12.16.00.00
+unspsc7#85.12.16.04.00#Pulomonary specialists services#85.12.16.00.00
+unspsc7#85.12.16.05.00#Gastroenterologists services#85.12.16.00.00
+unspsc7#85.12.16.06.00#Geriatric services#85.12.16.00.00
+unspsc7#85.12.16.07.00#Psychiatrist services#85.12.16.00.00
+unspsc7#85.12.16.08.00#Psychologists services#85.12.16.00.00
+unspsc7#85.12.16.09.00#Surgery services#85.12.16.00.00
+unspsc7#85.12.16.10.00#Ophthalmologists services#85.12.16.00.00
+unspsc7#85.12.16.11.00#Dermatology services#85.12.16.00.00
+unspsc7#85.12.16.12.00#Orthopedics services#85.12.16.00.00
+unspsc7#85.12.16.13.00#Pediatric services#85.12.16.00.00
+unspsc7#85.12.16.14.00#Nervous system specialist services#85.12.16.00.00
+unspsc7#85.12.17.00.00#Healthcare providers specialists services#85.12.00.00.00
+unspsc7#85.12.17.01.00#Psychotherapists services#85.12.17.00.00
+unspsc7#85.12.17.02.00#Optometrists services#85.12.17.00.00
+unspsc7#85.12.17.03.00#Podiatrists services#85.12.17.00.00
+unspsc7#85.12.17.04.00#Speech specialists services#85.12.17.00.00
+unspsc7#85.12.17.05.00#Acupuncturists services#85.12.17.00.00
+unspsc7#85.12.17.06.00#Chiropractors services#85.12.17.00.00
+unspsc7#85.12.18.00.00#Medical laboratories#85.12.00.00.00
+unspsc7#85.12.18.01.00#Blood analysis laboratory services#85.12.18.00.00
+unspsc7#85.12.18.02.00#Bacteriological laboratory services#85.12.18.00.00
+unspsc7#85.12.18.03.00#Biological laboratory services#85.12.18.00.00
+unspsc7#85.12.18.04.00#Pathological laboratory services#85.12.18.00.00
+unspsc7#85.12.18.05.00#Urinalysis laboratory services#85.12.18.00.00
+unspsc7#85.12.18.06.00#Neurological laboratory services#85.12.18.00.00
+unspsc7#85.12.18.07.00#Ultrasound laboratory services#85.12.18.00.00
+unspsc7#85.12.18.08.00#X ray laboratory services#85.12.18.00.00
+unspsc7#85.12.18.09.00#Blood or sperm or transplant organ banks services#85.12.18.00.00
+unspsc7#85.12.18.10.00#Drug or alcohol screening#85.12.18.00.00
+unspsc7#85.12.19.00.00#Pharmacists#85.12.00.00.00
+unspsc7#85.12.19.01.00#Pharmaceutical preparation services#85.12.19.00.00
+unspsc7#85.12.19.02.00#Commercial pharmaceutical services#85.12.19.00.00
+unspsc7#85.12.20.00.00#Dental services#85.12.00.00.00
+unspsc7#85.12.20.01.00#Dentists services#85.12.20.00.00
+unspsc7#85.12.20.02.00#Dental hygienists services#85.12.20.00.00
+unspsc7#85.12.20.03.00#Dentist support staff services#85.12.20.00.00
+unspsc7#85.12.20.04.00#Oral surgeons services#85.12.20.00.00
+unspsc7#85.12.20.05.00#Orthodontic services#85.12.20.00.00
+unspsc7#85.12.21.00.00#Rehabilitation services#85.12.00.00.00
+unspsc7#85.12.21.01.00#Physical therapy services#85.12.21.00.00
+unspsc7#85.12.21.02.00#Occupational therapy services#85.12.21.00.00
+unspsc7#85.12.21.03.00#Rehabilitation services for substance abuse#85.12.21.00.00
+unspsc7#85.12.21.04.00#Athletic rehabilitation services#85.12.21.00.00
+unspsc7#85.12.21.05.00#Eating disorders services#85.12.21.00.00
+unspsc7#85.12.21.06.00#Brain or spinal cord injury services#85.12.21.00.00
+unspsc7#85.12.21.07.00#Blind or vision impaired rehabilitation services#85.12.21.00.00
+unspsc7#85.12.21.08.00#Speech or language therapy#85.12.21.00.00
+unspsc7#85.12.21.09.00#Rehabilitation services for people with chronic disabilities#85.12.21.00.00
+unspsc7#85.13.00.00.00#Medical science research and experimentation#85.00.00.00.00
+unspsc7#85.13.15.00.00#Experimental medicine services#85.13.00.00.00
+unspsc7#85.13.15.01.00#Organ transplant services#85.13.15.00.00
+unspsc7#85.13.15.02.00#Clinical human drug trials#85.13.15.00.00
+unspsc7#85.13.15.03.00#Animal experimentation#85.13.15.00.00
+unspsc7#85.13.15.04.00#Human experimentation#85.13.15.00.00
+unspsc7#85.13.15.05.00#Space experimentation#85.13.15.00.00
+unspsc7#85.13.16.00.00#Medical ethics#85.13.00.00.00
+unspsc7#85.13.16.01.00#Euthanasia issues#85.13.16.00.00
+unspsc7#85.13.16.02.00#Medical code of conduct#85.13.16.00.00
+unspsc7#85.13.16.03.00#Medical societies#85.13.16.00.00
+unspsc7#85.13.16.04.00#International drug monitoring services#85.13.16.00.00
+unspsc7#85.13.17.00.00#Medical science and research#85.13.00.00.00
+unspsc7#85.13.17.01.00#Pharmaceutical research services#85.13.17.00.00
+unspsc7#85.13.17.02.00#Bacteriology research services#85.13.17.00.00
+unspsc7#85.13.17.03.00#Biomedical research services#85.13.17.00.00
+unspsc7#85.13.17.04.00#Cardiology research services#85.13.17.00.00
+unspsc7#85.13.17.05.00#Anatomy research services#85.13.17.00.00
+unspsc7#85.13.17.06.00#Pathology research services#85.13.17.00.00
+unspsc7#85.13.17.07.00#Embryology research services#85.13.17.00.00
+unspsc7#85.13.17.08.00#Epidemiology research services#85.13.17.00.00
+unspsc7#85.13.17.09.00#Genetics research services#85.13.17.00.00
+unspsc7#85.13.17.10.00#Immunology research services#85.13.17.00.00
+unspsc7#85.13.17.11.00#Physiology research services#85.13.17.00.00
+unspsc7#85.13.17.12.00#Toxicology research services#85.13.17.00.00
+unspsc7#85.13.17.13.00#Neurology research services#85.13.17.00.00
+unspsc7#85.14.00.00.00#Alternative and holistic medicine#85.00.00.00.00
+unspsc7#85.14.15.00.00#Faith healers#85.14.00.00.00
+unspsc7#85.14.15.01.00#Witch doctors or voodoo services#85.14.15.00.00
+unspsc7#85.14.15.02.00#Faith healers services#85.14.15.00.00
+unspsc7#85.14.15.03.00#Shamans#85.14.15.00.00
+unspsc7#85.14.15.04.00#Energy work#85.14.15.00.00
+unspsc7#85.14.16.00.00#Herbal treatments#85.14.00.00.00
+unspsc7#85.14.16.01.00#Herbal medicine or herbalists services#85.14.16.00.00
+unspsc7#85.14.16.02.00#Algae or sea weed medical cures#85.14.16.00.00
+unspsc7#85.14.16.03.00#Hot springs cure services#85.14.16.00.00
+unspsc7#85.14.17.00.00#Homeopathic practice#85.14.00.00.00
+unspsc7#85.14.17.01.00#Initial diagnostic assessment#85.14.17.00.00
+unspsc7#85.14.17.02.00#Remedy consultations#85.14.17.00.00
+unspsc7#85.15.00.00.00#Food and nutrition services#85.00.00.00.00
+unspsc7#85.15.15.00.00#Food technology#85.15.00.00.00
+unspsc7#85.15.15.01.00#Food hygiene control services#85.15.15.00.00
+unspsc7#85.15.15.02.00#Food contamination control services#85.15.15.00.00
+unspsc7#85.15.15.03.00#Food preservation management or control services#85.15.15.00.00
+unspsc7#85.15.15.04.00#Food preparation counseling or control services#85.15.15.00.00
+unspsc7#85.15.15.05.00#Food research services#85.15.15.00.00
+unspsc7#85.15.15.06.00#Studies on foods or food habits#85.15.15.00.00
+unspsc7#85.15.15.07.00#Food additive or quality standards services#85.15.15.00.00
+unspsc7#85.15.15.08.00#Food analysis services#85.15.15.00.00
+unspsc7#85.15.15.09.00#Food legislation services#85.15.15.00.00
+unspsc7#85.15.16.00.00#Nutrition issues#85.15.00.00.00
+unspsc7#85.15.16.01.00#Nutrition programming services#85.15.16.00.00
+unspsc7#85.15.16.02.00#Breast or bottle feeding policy#85.15.16.00.00
+unspsc7#85.15.16.03.00#Nutritional rehabilitation services#85.15.16.00.00
+unspsc7#85.15.16.04.00#Nutrition project evaluation#85.15.16.00.00
+unspsc7#85.15.16.05.00#Food or nutrition development strategies#85.15.16.00.00
+unspsc7#85.15.16.06.00#Nutrient deficiency control programs#85.15.16.00.00
+unspsc7#85.15.16.07.00#Diet control or programs#85.15.16.00.00
+unspsc7#85.15.17.00.00#Food policy planning and aid#85.15.00.00.00
+unspsc7#85.15.17.01.00#Food standards#85.15.17.00.00
+unspsc7#85.15.17.02.00#Food aid global information or early warning systems services#85.15.17.00.00
+unspsc7#85.15.17.03.00#Assessment of emergency food requirements#85.15.17.00.00
+unspsc7#85.15.17.04.00#National food intervention policy or programs#85.15.17.00.00
+unspsc7#85.15.17.05.00#Evaluation of food aid nutritional impact#85.15.17.00.00
+unspsc7#86.00.00.00.00#Education and Training Services#86.00.00.00.00
+unspsc7#86.10.00.00.00#Vocational training#86.00.00.00.00
+unspsc7#86.10.15.00.00#Agriculture and forestry and other natural resources training services#86.10.00.00.00
+unspsc7#86.10.15.01.00#Agro industry vocational training#86.10.15.00.00
+unspsc7#86.10.15.02.00#Dairy industry vocational training#86.10.15.00.00
+unspsc7#86.10.15.03.00#Meat industry vocational training#86.10.15.00.00
+unspsc7#86.10.15.04.00#Agriculture vocational training services#86.10.15.00.00
+unspsc7#86.10.15.05.00#Rural youth or farmers vocational training services#86.10.15.00.00
+unspsc7#86.10.15.06.00#Forestry vocational training services#86.10.15.00.00
+unspsc7#86.10.15.07.00#Fishery vocational training services#86.10.15.00.00
+unspsc7#86.10.15.08.00#Environmental vocational training services#86.10.15.00.00
+unspsc7#86.10.15.09.00#Natural resources vocational training services#86.10.15.00.00
+unspsc7#86.10.16.00.00#Scientific vocational training services#86.10.00.00.00
+unspsc7#86.10.16.01.00#Computer vocational training services#86.10.16.00.00
+unspsc7#86.10.16.02.00#Energy related vocational training services#86.10.16.00.00
+unspsc7#86.10.16.03.00#Chemistry vocational training services#86.10.16.00.00
+unspsc7#86.10.16.04.00#Biology vocational training services#86.10.16.00.00
+unspsc7#86.10.16.05.00#Medical vocational training services#86.10.16.00.00
+unspsc7#86.10.16.06.00#Electronics vocational training services#86.10.16.00.00
+unspsc7#86.10.16.07.00#Telecommunications vocational training services#86.10.16.00.00
+unspsc7#86.10.16.08.00#Hydraulics vocational training services#86.10.16.00.00
+unspsc7#86.10.16.09.00#Industrial vocational training services#86.10.16.00.00
+unspsc7#86.10.16.10.00#Engineering vocational training services#86.10.16.00.00
+unspsc7#86.10.17.00.00#Non scientific vocational training services#86.10.00.00.00
+unspsc7#86.10.17.01.00#Communications vocational training services#86.10.17.00.00
+unspsc7#86.10.17.02.00#Tourism related training#86.10.17.00.00
+unspsc7#86.10.17.03.00#Library or documentation training#86.10.17.00.00
+unspsc7#86.10.17.04.00#Procurement or supply chain training#86.10.17.00.00
+unspsc7#86.10.17.05.00#Clerical training#86.10.17.00.00
+unspsc7#86.10.17.06.00#Health assistance vocational training services#86.10.17.00.00
+unspsc7#86.10.17.07.00#Personal care vocational training services#86.10.17.00.00
+unspsc7#86.10.17.08.00#Literacy services#86.10.17.00.00
+unspsc7#86.10.17.09.00#Safety training services#86.10.17.00.00
+unspsc7#86.10.17.10.00#Teacher training services#86.10.17.00.00
+unspsc7#86.10.17.11.00#Fire fighting training services#86.10.17.00.00
+unspsc7#86.10.17.12.00#Handcrafts vocational training services#86.10.17.00.00
+unspsc7#86.10.17.13.00#Law vocational training services#86.10.17.00.00
+unspsc7#86.10.17.14.00#Law enforcement vocational training services#86.10.17.00.00
+unspsc7#86.10.17.15.00#Road or rail transportation vocational training services#86.10.17.00.00
+unspsc7#86.10.17.16.00#Shipping vocational training services#86.10.17.00.00
+unspsc7#86.10.18.00.00#In service training and manpower development#86.10.00.00.00
+unspsc7#86.10.18.01.00#Bank or finance sector manpower development#86.10.18.00.00
+unspsc7#86.10.18.02.00#Re training or refreshing training services#86.10.18.00.00
+unspsc7#86.10.18.03.00#Vocational rehabilitation services#86.10.18.00.00
+unspsc7#86.10.18.04.00#Commercial sector manpower development#86.10.18.00.00
+unspsc7#86.10.18.05.00#Industrial sector manpower development#86.10.18.00.00
+unspsc7#86.10.18.06.00#Health sector manpower development#86.10.18.00.00
+unspsc7#86.10.18.07.00#Management sector manpower development#86.10.18.00.00
+unspsc7#86.10.18.08.00#Public sector manpower development services#86.10.18.00.00
+unspsc7#86.10.18.09.00#Merchant marine vocational training services#86.10.18.00.00
+unspsc7#86.11.00.00.00#Alternative educational systems#86.00.00.00.00
+unspsc7#86.11.15.00.00#Distance learning services#86.11.00.00.00
+unspsc7#86.11.15.01.00#Distance learning guidance services#86.11.15.00.00
+unspsc7#86.11.15.02.00#Distance teaching services#86.11.15.00.00
+unspsc7#86.11.15.03.00#Certificated distance learning services#86.11.15.00.00
+unspsc7#86.11.15.04.00#Non certificated distance learning services#86.11.15.00.00
+unspsc7#86.11.15.05.00#Distance learning assessment services#86.11.15.00.00
+unspsc7#86.11.16.00.00#Adult education#86.11.00.00.00
+unspsc7#86.11.16.01.00#Evening courses#86.11.16.00.00
+unspsc7#86.11.16.02.00#Part time adult education services#86.11.16.00.00
+unspsc7#86.11.16.03.00#Parent education#86.11.16.00.00
+unspsc7#86.11.16.04.00#Employee Education#86.11.16.00.00
+unspsc7#86.11.17.00.00#Language schooling#86.11.00.00.00
+unspsc7#86.11.17.01.00#Conversational foreign language instruction#86.11.17.00.00
+unspsc7#86.11.17.02.00#Foreign language immersion instruction#86.11.17.00.00
+unspsc7#86.11.18.00.00#Educational exchanges#86.11.00.00.00
+unspsc7#86.11.18.01.00#Educational exchanges between universities#86.11.18.00.00
+unspsc7#86.11.18.02.00#Educational exchanges between schools#86.11.18.00.00
+unspsc7#86.12.00.00.00#Educational institutions#86.00.00.00.00
+unspsc7#86.12.15.00.00#Elementary and secondary schools#86.12.00.00.00
+unspsc7#86.12.15.01.00#Pre school educational services#86.12.15.00.00
+unspsc7#86.12.15.02.00#Religious elementary or secondary schools#86.12.15.00.00
+unspsc7#86.12.15.03.00#Private elementary or secondary schools#86.12.15.00.00
+unspsc7#86.12.15.04.00#Public elementary or secondary schools#86.12.15.00.00
+unspsc7#86.12.16.00.00#Junior colleges#86.12.00.00.00
+unspsc7#86.12.16.01.00#Community colleges#86.12.16.00.00
+unspsc7#86.12.16.02.00#Technical institutes#86.12.16.00.00
+unspsc7#86.12.17.00.00#University and colleges#86.12.00.00.00
+unspsc7#86.12.17.01.00#Undergraduate programs#86.12.17.00.00
+unspsc7#86.12.17.02.00#Postgraduate programs#86.12.17.00.00
+unspsc7#86.12.18.00.00#Professional schools#86.12.00.00.00
+unspsc7#86.12.18.02.00#Theological seminaries#86.12.18.00.00
+unspsc7#86.12.18.03.00#Technical professional schools#86.12.18.00.00
+unspsc7#86.12.18.04.00#Non technical professional schools#86.12.18.00.00
+unspsc7#86.13.00.00.00#Specialized educational services#86.00.00.00.00
+unspsc7#86.13.15.00.00#Fine arts#86.13.00.00.00
+unspsc7#86.13.15.01.00#Theater studies#86.13.15.00.00
+unspsc7#86.13.15.02.00#Painting#86.13.15.00.00
+unspsc7#86.13.15.03.00#Sculpture#86.13.15.00.00
+unspsc7#86.13.15.04.00#Media studies#86.13.15.00.00
+unspsc7#86.13.16.00.00#Music and drama#86.13.00.00.00
+unspsc7#86.13.16.01.00#Music schools#86.13.16.00.00
+unspsc7#86.13.16.02.00#Dance education#86.13.16.00.00
+unspsc7#86.13.16.03.00#Drama studies#86.13.16.00.00
+unspsc7#86.13.17.00.00#Driving and flying and sailing#86.13.00.00.00
+unspsc7#86.13.17.01.00#Vehicle driving schools services#86.13.17.00.00
+unspsc7#86.13.17.02.00#Flight school services#86.13.17.00.00
+unspsc7#86.13.17.03.00#Yachting or boating school services#86.13.17.00.00
+unspsc7#86.13.18.00.00#Military education#86.13.00.00.00
+unspsc7#86.13.18.01.00#Service academies#86.13.18.00.00
+unspsc7#86.13.18.02.00#Pilot schools#86.13.18.00.00
+unspsc7#86.13.18.03.00#Military police training#86.13.18.00.00
+unspsc7#86.13.18.04.00#War college#86.13.18.00.00
+unspsc7#86.13.19.00.00#Schools for people with disabilities#86.13.00.00.00
+unspsc7#86.13.19.01.00#Primary schooling services for people with disabilities#86.13.19.00.00
+unspsc7#86.13.19.02.00#Secondary schooling services for people with disabilities#86.13.19.00.00
+unspsc7#86.13.19.03.00#Specialized schools for people with disabilities#86.13.19.00.00
+unspsc7#86.13.19.04.00#Specialized rehabilitation services for people with disabilities#86.13.19.00.00
+unspsc7#86.14.00.00.00#Educational facilities#86.00.00.00.00
+unspsc7#86.14.15.00.00#Educational guidance services#86.14.00.00.00
+unspsc7#86.14.15.01.00#Educational advisory services#86.14.15.00.00
+unspsc7#86.14.15.02.00#Universities cooperation guidance services#86.14.15.00.00
+unspsc7#86.14.15.03.00#Study abroad advisory services#86.14.15.00.00
+unspsc7#86.14.16.00.00#Students organizations#86.14.00.00.00
+unspsc7#86.14.16.01.00#Students hobby clubs#86.14.16.00.00
+unspsc7#86.14.16.02.00#Students unions#86.14.16.00.00
+unspsc7#86.14.16.03.00#Students travelling organizations#86.14.16.00.00
+unspsc7#86.14.17.00.00#Educational technology#86.14.00.00.00
+unspsc7#86.14.17.01.00#Language laboratories#86.14.17.00.00
+unspsc7#86.14.17.02.00#Audio visual technology#86.14.17.00.00
+unspsc7#86.14.17.03.00#Computer programmed instruction#86.14.17.00.00
+unspsc7#86.14.17.04.00#Library or documentation services#86.14.17.00.00
+unspsc7#90.00.00.00.00#Travel and Food and Lodging and Entertainment Services#90.00.00.00.00
+unspsc7#90.10.00.00.00#Restaurants and catering#90.00.00.00.00
+unspsc7#90.10.15.00.00#Eating and drinking establishments#90.10.00.00.00
+unspsc7#90.10.15.01.00#Restaurants#90.10.15.00.00
+unspsc7#90.10.15.02.00#Bars#90.10.15.00.00
+unspsc7#90.10.15.03.00#Fast food establishments#90.10.15.00.00
+unspsc7#90.10.15.04.00#On street food vendors#90.10.15.00.00
+unspsc7#90.10.16.00.00#Banquet and catering services#90.10.00.00.00
+unspsc7#90.10.16.01.00#Banquet facilities#90.10.16.00.00
+unspsc7#90.10.16.02.00#Party tent services#90.10.16.00.00
+unspsc7#90.10.16.03.00#Catering services#90.10.16.00.00
+unspsc7#90.10.16.04.00#Construction or work site catering services#90.10.16.00.00
+unspsc7#90.10.17.00.00#Cafeteria services#90.10.00.00.00
+unspsc7#90.10.17.01.00#On site cafeteria management#90.10.17.00.00
+unspsc7#90.10.18.00.00#Carryout and takeaway services#90.10.00.00.00
+unspsc7#90.10.18.01.00#Professionally prepared carryout meals#90.10.18.00.00
+unspsc7#90.10.18.02.00#Delivered meals services#90.10.18.00.00
+unspsc7#90.11.00.00.00#Hotels and lodging and meeting facilities#90.00.00.00.00
+unspsc7#90.11.15.00.00#Hotels and motels and inns#90.11.00.00.00
+unspsc7#90.11.15.01.00#Hotels#90.11.15.00.00
+unspsc7#90.11.15.02.00#Lodges or resorts#90.11.15.00.00
+unspsc7#90.11.15.03.00#Bed and breakfast inns#90.11.15.00.00
+unspsc7#90.11.15.04.00#Cottage rental services#90.11.15.00.00
+unspsc7#90.11.16.00.00#Meeting facilities#90.11.00.00.00
+unspsc7#90.11.16.01.00#Conference centers#90.11.16.00.00
+unspsc7#90.11.16.02.00#Videoconferencing facilities#90.11.16.00.00
+unspsc7#90.11.16.03.00#Meeting or banquet rooms#90.11.16.00.00
+unspsc7#90.11.17.00.00#Camping and wilderness facilities#90.11.00.00.00
+unspsc7#90.11.17.01.00#Campsites#90.11.17.00.00
+unspsc7#90.11.17.02.00#Government owned parks#90.11.17.00.00
+unspsc7#90.11.17.03.00#Recreational vehicle campsite facilities#90.11.17.00.00
+unspsc7#90.12.00.00.00#Travel facilitation#90.00.00.00.00
+unspsc7#90.12.15.00.00#Travel agents#90.12.00.00.00
+unspsc7#90.12.15.01.00#Tour arrangement services#90.12.15.00.00
+unspsc7#90.12.15.02.00#Travel agencies#90.12.15.00.00
+unspsc7#90.12.15.03.00#Chartering services#90.12.15.00.00
+unspsc7#90.12.16.00.00#Travel document assistance#90.12.00.00.00
+unspsc7#90.12.16.01.00#Passport services#90.12.16.00.00
+unspsc7#90.12.16.02.00#Visa or auxilliary document services#90.12.16.00.00
+unspsc7#90.12.17.00.00#Guides and interpreters#90.12.00.00.00
+unspsc7#90.12.17.01.00#Area or tour guides#90.12.17.00.00
+unspsc7#90.12.17.02.00#Interpreters#90.12.17.00.00
+unspsc7#90.13.00.00.00#Performing arts#90.00.00.00.00
+unspsc7#90.13.15.00.00#Live performances#90.13.00.00.00
+unspsc7#90.13.15.01.00#Theatrical performances or plays#90.13.15.00.00
+unspsc7#90.13.15.02.00#Dance performances#90.13.15.00.00
+unspsc7#90.13.15.03.00#Opera#90.13.15.00.00
+unspsc7#90.13.15.04.00#Concerts#90.13.15.00.00
+unspsc7#90.13.16.00.00#Taped or motion picture performances#90.13.00.00.00
+unspsc7#90.13.16.01.00#Motion pictures#90.13.16.00.00
+unspsc7#90.13.16.02.00#Videotaped entertainment#90.13.16.00.00
+unspsc7#90.14.00.00.00#Commercial sports#90.00.00.00.00
+unspsc7#90.14.15.00.00#Professional sporting events#90.14.00.00.00
+unspsc7#90.14.15.01.00#League play#90.14.15.00.00
+unspsc7#90.14.15.02.00#Competitive events#90.14.15.00.00
+unspsc7#90.14.15.03.00#Exhibitions#90.14.15.00.00
+unspsc7#90.14.16.00.00#Sports event promotion and sponsorship#90.14.00.00.00
+unspsc7#90.14.16.01.00#Company sponsored professional sports events#90.14.16.00.00
+unspsc7#90.14.16.02.00#Company sponsored amateur sports events#90.14.16.00.00
+unspsc7#90.14.16.03.00#Sporting event promotion services#90.14.16.00.00
+unspsc7#90.14.17.00.00#Amateur and recreational sports#90.14.00.00.00
+unspsc7#90.14.17.01.00#Youth competitive sports leagues#90.14.17.00.00
+unspsc7#90.14.17.02.00#Adult sports leagues#90.14.17.00.00
+unspsc7#90.14.17.03.00#Youth sports#90.14.17.00.00
+unspsc7#90.15.00.00.00#Entertainment services#90.00.00.00.00
+unspsc7#90.15.15.00.00#Tourist attractions#90.15.00.00.00
+unspsc7#90.15.15.01.00#Museums#90.15.15.00.00
+unspsc7#90.15.15.02.00#Historical or cultural sites#90.15.15.00.00
+unspsc7#90.15.15.03.00#Zoological gardens#90.15.15.00.00
+unspsc7#90.15.16.00.00#Travelling shows#90.15.00.00.00
+unspsc7#90.15.16.01.00#Circuses#90.15.16.00.00
+unspsc7#90.15.16.02.00#Touring companies#90.15.16.00.00
+unspsc7#90.15.16.03.00#Art exhibitions#90.15.16.00.00
+unspsc7#90.15.17.00.00#Amusement parks#90.15.00.00.00
+unspsc7#90.15.17.01.00#Theme parks#90.15.17.00.00
+unspsc7#90.15.17.02.00#Water parks#90.15.17.00.00
+unspsc7#90.15.17.03.00#Miniature golf courses#90.15.17.00.00
+unspsc7#90.15.18.00.00#Carnivals and fairs#90.15.00.00.00
+unspsc7#90.15.18.01.00#Travelling carnivals#90.15.18.00.00
+unspsc7#90.15.18.02.00#Fair organization or management services#90.15.18.00.00
+unspsc7#90.15.19.00.00#Gambling and betting establishments#90.15.00.00.00
+unspsc7#90.15.19.01.00#Casinos#90.15.19.00.00
+unspsc7#90.15.19.02.00#Card clubs#90.15.19.00.00
+unspsc7#90.15.19.03.00#Racetracks#90.15.19.00.00
+unspsc7#90.15.20.00.00#Nightclubs and dance halls#90.15.00.00.00
+unspsc7#90.15.20.01.00#Nightclubs#90.15.20.00.00
+unspsc7#90.15.20.02.00#Dance halls#90.15.20.00.00
+unspsc7#91.00.00.00.00#Personal and Domestic Services#91.00.00.00.00
+unspsc7#91.10.00.00.00#Personal appearance#91.00.00.00.00
+unspsc7#91.10.15.00.00#Spa and workout and rejuvenation facilities#91.10.00.00.00
+unspsc7#91.10.15.01.00#Health or fitness clubs#91.10.15.00.00
+unspsc7#91.10.15.02.00#Spas#91.10.15.00.00
+unspsc7#91.10.15.03.00#Massage services#91.10.15.00.00
+unspsc7#91.10.15.04.00#Aerobics or exercise classes#91.10.15.00.00
+unspsc7#91.10.15.05.00#Turkish or steam or ritual baths#91.10.15.00.00
+unspsc7#91.10.16.00.00#Face and body care and adornment#91.10.00.00.00
+unspsc7#91.10.16.01.00#Facial or body treatments#91.10.16.00.00
+unspsc7#91.10.16.02.00#Make up consultation#91.10.16.00.00
+unspsc7#91.10.16.03.00#Tattoo services#91.10.16.00.00
+unspsc7#91.10.16.04.00#Body piercing services#91.10.16.00.00
+unspsc7#91.10.16.05.00#Electrolysis#91.10.16.00.00
+unspsc7#91.10.17.00.00#Hair care#91.10.00.00.00
+unspsc7#91.10.17.01.00#Hair cutting or color services#91.10.17.00.00
+unspsc7#91.10.17.02.00#Hair weaving or replacement services#91.10.17.00.00
+unspsc7#91.10.18.00.00#Clothing rental#91.10.00.00.00
+unspsc7#91.10.18.01.00#Tuxedo or formalwear rental#91.10.18.00.00
+unspsc7#91.10.18.02.00#Evening or bridal gown or dress rental#91.10.18.00.00
+unspsc7#91.10.18.03.00#Costume rental#91.10.18.00.00
+unspsc7#91.10.19.00.00#Fashion consultants#91.10.00.00.00
+unspsc7#91.10.19.01.00#Color consultant#91.10.19.00.00
+unspsc7#91.10.19.02.00#Fashion stylist#91.10.19.00.00
+unspsc7#91.10.19.03.00#Wardrobe consultant#91.10.19.00.00
+unspsc7#91.11.00.00.00#Domestic and personal assistance#91.00.00.00.00
+unspsc7#91.11.15.00.00#Laundering services#91.11.00.00.00
+unspsc7#91.11.15.01.00#Uniform rental#91.11.15.00.00
+unspsc7#91.11.15.02.00#Laundry services#91.11.15.00.00
+unspsc7#91.11.15.03.00#Dry cleaning#91.11.15.00.00
+unspsc7#91.11.15.04.00#Coin operated self service laundries#91.11.15.00.00
+unspsc7#91.11.16.00.00#Household assistance and care#91.11.00.00.00
+unspsc7#91.11.16.01.00#Housekeeping services#91.11.16.00.00
+unspsc7#91.11.16.02.00#Yard or pool care services#91.11.16.00.00
+unspsc7#91.11.16.03.00#Cooking or food preparation services#91.11.16.00.00
+unspsc7#91.11.17.00.00#Consumer buying and bartering services#91.11.00.00.00
+unspsc7#91.11.17.01.00#Used clothing consignment services#91.11.17.00.00
+unspsc7#91.11.17.02.00#Barter clubs or consortiums#91.11.17.00.00
+unspsc7#91.11.17.03.00#Wardrobe buying services#91.11.17.00.00
+unspsc7#91.11.18.00.00#Personal item care and storage#91.11.00.00.00
+unspsc7#91.11.18.01.00#Valet services#91.11.18.00.00
+unspsc7#91.11.18.02.00#Check room concessions#91.11.18.00.00
+unspsc7#91.11.18.03.00#Locker rental#91.11.18.00.00
+unspsc7#91.11.18.04.00#Fur storage#91.11.18.00.00
+unspsc7#91.11.19.00.00#Personal care services#91.11.00.00.00
+unspsc7#91.11.19.01.00#Infant or child daycare services#91.11.19.00.00
+unspsc7#91.11.19.02.00#Nanny or babysitting services#91.11.19.00.00
+unspsc7#91.11.19.03.00#Elderly daycare services#91.11.19.00.00
+unspsc7#91.11.19.04.00#Assisted living services#91.11.19.00.00
+unspsc7#92.00.00.00.00#National Defense and Public Order and Security and Safety Services#92.00.00.00.00
+unspsc7#92.10.00.00.00#Public order and safety#92.00.00.00.00
+unspsc7#92.10.15.00.00#Police services#92.10.00.00.00
+unspsc7#92.10.15.01.00#Policing services#92.10.15.00.00
+unspsc7#92.10.15.02.00#Special weapons and tactics (SWAT) or riot teams#92.10.15.00.00
+unspsc7#92.10.15.03.00#Community outreach programs#92.10.15.00.00
+unspsc7#92.10.15.04.00#Crime deterrence programs#92.10.15.00.00
+unspsc7#92.10.16.00.00#Fire services#92.10.00.00.00
+unspsc7#92.10.16.01.00#Municipal or national firefighting services#92.10.16.00.00
+unspsc7#92.10.16.02.00#Volunteer fire department services#92.10.16.00.00
+unspsc7#92.10.16.03.00#Fire prevention services#92.10.16.00.00
+unspsc7#92.10.16.04.00#Forest or wilderness firefighting services#92.10.16.00.00
+unspsc7#92.10.17.00.00#Jail and prison system#92.10.00.00.00
+unspsc7#92.10.17.01.00#Jail or prison or penitentiary services#92.10.17.00.00
+unspsc7#92.10.17.02.00#Youth camps or facilities services#92.10.17.00.00
+unspsc7#92.10.17.03.00#Half way house services#92.10.17.00.00
+unspsc7#92.10.17.04.00#Mentally impaired criminal facilities#92.10.17.00.00
+unspsc7#92.10.18.00.00#Court system#92.10.00.00.00
+unspsc7#92.10.18.01.00#Sheriffs services#92.10.18.00.00
+unspsc7#92.10.18.02.00#Plea bargain agreements#92.10.18.00.00
+unspsc7#92.10.18.03.00#Civil case court expenses#92.10.18.00.00
+unspsc7#92.10.18.04.00#Criminal case fees or fines#92.10.18.00.00
+unspsc7#92.10.18.05.00#Appeals process or judicial review#92.10.18.00.00
+unspsc7#92.10.19.00.00#Rescue services#92.10.00.00.00
+unspsc7#92.10.19.01.00#Search and rescue teams#92.10.19.00.00
+unspsc7#92.10.19.02.00#Ambulance services#92.10.19.00.00
+unspsc7#92.10.19.03.00#Life saving helicopter services#92.10.19.00.00
+unspsc7#92.10.19.04.00#Lifeguard services for pool or beach#92.10.19.00.00
+unspsc7#92.11.00.00.00#Military services and national defense#92.00.00.00.00
+unspsc7#92.11.15.00.00#Maintenance of international peace and security#92.11.00.00.00
+unspsc7#92.11.15.01.00#Dispute mediation or conciliation or negotiation or settlement#92.11.15.00.00
+unspsc7#92.11.15.02.00#Peace keeping operations#92.11.15.00.00
+unspsc7#92.11.15.03.00#Cease fire agreements or truce supervision#92.11.15.00.00
+unspsc7#92.11.15.04.00#Fact finding missions#92.11.15.00.00
+unspsc7#92.11.15.05.00#War prevention strategies#92.11.15.00.00
+unspsc7#92.11.15.06.00#Counterterrorism#92.11.15.00.00
+unspsc7#92.11.15.07.00#Embargoes#92.11.15.00.00
+unspsc7#92.11.16.00.00#Disarmament#92.11.00.00.00
+unspsc7#92.11.16.01.00#Arms limitations#92.11.16.00.00
+unspsc7#92.11.16.02.00#Conventional arms disarmament#92.11.16.00.00
+unspsc7#92.11.16.03.00#Nuclear freezes or disarmament#92.11.16.00.00
+unspsc7#92.11.16.04.00#Weapons destruction#92.11.16.00.00
+unspsc7#92.11.16.05.00#Disarmament negotiations or agreements#92.11.16.00.00
+unspsc7#92.11.16.06.00#Mutual or balanced force reductions#92.11.16.00.00
+unspsc7#92.11.17.00.00#Military science and research#92.11.00.00.00
+unspsc7#92.11.17.01.00#Military history#92.11.17.00.00
+unspsc7#92.11.17.02.00#Conventional weapons usage#92.11.17.00.00
+unspsc7#92.11.17.03.00#Chemical weapons usage#92.11.17.00.00
+unspsc7#92.11.17.04.00#Guerilla warfare#92.11.17.00.00
+unspsc7#92.11.17.05.00#Military strategy#92.11.17.00.00
+unspsc7#92.11.17.06.00#Aerial maneuvers#92.11.17.00.00
+unspsc7#92.11.17.07.00#Naval or submarine maneuvers#92.11.17.00.00
+unspsc7#92.11.17.08.00#Land maneuvers#92.11.17.00.00
+unspsc7#92.11.18.00.00#Military personnel and discipline#92.11.00.00.00
+unspsc7#92.11.18.01.00#Civil defense#92.11.18.00.00
+unspsc7#92.11.18.02.00#Compulsory military services#92.11.18.00.00
+unspsc7#92.11.18.03.00#Voluntary military services#92.11.18.00.00
+unspsc7#92.11.18.04.00#Military reservists#92.11.18.00.00
+unspsc7#92.11.18.05.00#Guerillas#92.11.18.00.00
+unspsc7#92.11.18.06.00#Mercenaries#92.11.18.00.00
+unspsc7#92.11.18.07.00#Veterans#92.11.18.00.00
+unspsc7#92.11.18.08.00#Military courts#92.11.18.00.00
+unspsc7#92.11.18.09.00#Military offenses#92.11.18.00.00
+unspsc7#92.11.18.10.00#Military personnel#92.11.18.00.00
+unspsc7#92.11.19.00.00#Military policy#92.11.00.00.00
+unspsc7#92.11.19.01.00#National security#92.11.19.00.00
+unspsc7#92.11.19.02.00#Defense contracts#92.11.19.00.00
+unspsc7#92.11.19.03.00#Non first use policy#92.11.19.00.00
+unspsc7#92.11.19.04.00#Arms race#92.11.19.00.00
+unspsc7#92.11.19.05.00#Military relations#92.11.19.00.00
+unspsc7#92.11.20.00.00#Military zones#92.11.00.00.00
+unspsc7#92.11.20.01.00#Demilitarized zones#92.11.20.00.00
+unspsc7#92.11.20.02.00#Nuclear or chemical weapon free zones#92.11.20.00.00
+unspsc7#92.11.20.03.00#Peace zones#92.11.20.00.00
+unspsc7#92.11.20.04.00#No fly zones#92.11.20.00.00
+unspsc7#92.11.21.00.00#Nuclear warfare#92.11.00.00.00
+unspsc7#92.11.21.01.00#Nuclear safeguards#92.11.21.00.00
+unspsc7#92.11.21.02.00#Nuclear weapon tests#92.11.21.00.00
+unspsc7#92.11.21.03.00#Nuclear non proliferation#92.11.21.00.00
+unspsc7#92.11.22.00.00#Military tactics#92.11.00.00.00
+unspsc7#92.11.22.01.00#Weapons deployment#92.11.22.00.00
+unspsc7#92.11.22.02.00#Military reconnaissance#92.11.22.00.00
+unspsc7#92.11.22.03.00#Arms transfers#92.11.22.00.00
+unspsc7#92.11.22.04.00#Military assistance#92.11.22.00.00
+unspsc7#92.11.22.05.00#Troop withdrawals#92.11.22.00.00
+unspsc7#92.11.22.06.00#Rapid deployment forces#92.11.22.00.00
+unspsc7#92.11.22.07.00#Environmental warfare#92.11.22.00.00
+unspsc7#92.11.23.00.00#Military bases#92.11.00.00.00
+unspsc7#92.11.23.01.00#Domestic military bases#92.11.23.00.00
+unspsc7#92.11.23.02.00#Foreign military bases#92.11.23.00.00
+unspsc7#92.11.23.03.00#Naval bases#92.11.23.00.00
+unspsc7#92.11.24.00.00#Armed conflicts and incidents#92.11.00.00.00
+unspsc7#92.11.24.01.00#Border incidents#92.11.24.00.00
+unspsc7#92.11.24.02.00#Limited war#92.11.24.00.00
+unspsc7#92.11.24.03.00#Nuclear war#92.11.24.00.00
+unspsc7#92.11.24.04.00#Space based war#92.11.24.00.00
+unspsc7#92.11.24.05.00#Response to terrorist attacks#92.11.24.00.00
+unspsc7#92.12.00.00.00#Security and personal safety#92.00.00.00.00
+unspsc7#92.12.15.00.00#Guard services#92.12.00.00.00
+unspsc7#92.12.15.01.00#Armored car services#92.12.15.00.00
+unspsc7#92.12.15.02.00#Burglary protection services#92.12.15.00.00
+unspsc7#92.12.15.03.00#Guard dog rental#92.12.15.00.00
+unspsc7#92.12.15.04.00#Security guard services#92.12.15.00.00
+unspsc7#92.12.16.00.00#Detective services#92.12.00.00.00
+unspsc7#92.12.16.01.00#Detective agencies#92.12.16.00.00
+unspsc7#92.12.16.02.00#Fingerprint services#92.12.16.00.00
+unspsc7#92.12.16.03.00#Lie detection services#92.12.16.00.00
+unspsc7#92.12.16.04.00#Private investigation services#92.12.16.00.00
+unspsc7#92.12.17.00.00#Security systems services#92.12.00.00.00
+unspsc7#92.12.17.01.00#Surveillance or alarm maintenance or monitoring#92.12.17.00.00
+unspsc7#92.12.17.02.00#Fire alarm maintenance or monitoring#92.12.17.00.00
+unspsc7#92.12.17.03.00#Store or business anti theft services#92.12.17.00.00
+unspsc7#92.12.17.04.00#Confinement surveillance systems maintenance or monitoring#92.12.17.00.00
+unspsc7#93.00.00.00.00#Politics and Civic Affairs Services#93.00.00.00.00
+unspsc7#93.10.00.00.00#Political systems and institutions#93.00.00.00.00
+unspsc7#93.10.15.00.00#Political bodies#93.10.00.00.00
+unspsc7#93.10.15.01.00#Political parties representation services#93.10.15.00.00
+unspsc7#93.10.15.02.00#Political parties fund raising services#93.10.15.00.00
+unspsc7#93.10.15.03.00#Political parties public appearance services#93.10.15.00.00
+unspsc7#93.10.15.04.00#Political legislature services#93.10.15.00.00
+unspsc7#93.10.15.05.00#Political judicial power or services#93.10.15.00.00
+unspsc7#93.10.15.06.00#Political executive power or services#93.10.15.00.00
+unspsc7#93.10.16.00.00#Political officials#93.10.00.00.00
+unspsc7#93.10.16.01.00#Cabinet officers services#93.10.16.00.00
+unspsc7#93.10.16.02.00#Governors services#93.10.16.00.00
+unspsc7#93.10.16.03.00#Heads of states services#93.10.16.00.00
+unspsc7#93.10.16.04.00#Presidential services#93.10.16.00.00
+unspsc7#93.10.16.05.00#Prime ministers services#93.10.16.00.00
+unspsc7#93.10.16.06.00#Monarch services#93.10.16.00.00
+unspsc7#93.10.16.07.00#Statesmen services#93.10.16.00.00
+unspsc7#93.10.16.08.00#Parliament members services#93.10.16.00.00
+unspsc7#93.10.17.00.00#Legislative bodies and practice#93.10.00.00.00
+unspsc7#93.10.17.01.00#National council services#93.10.17.00.00
+unspsc7#93.10.17.02.00#Corporate states#93.10.17.00.00
+unspsc7#93.10.17.03.00#Bill drafting services#93.10.17.00.00
+unspsc7#93.10.17.04.00#Legislative hearings services#93.10.17.00.00
+unspsc7#93.10.17.05.00#Intelligence services#93.10.17.00.00
+unspsc7#93.10.17.06.00#Legislators services#93.10.17.00.00
+unspsc7#93.10.17.07.00#Parliamentary practice services#93.10.17.00.00
+unspsc7#93.11.00.00.00#Socio political conditions#93.00.00.00.00
+unspsc7#93.11.15.00.00#Political movements#93.11.00.00.00
+unspsc7#93.11.15.01.00#Extremist movements#93.11.15.00.00
+unspsc7#93.11.15.02.00#Peace movements#93.11.15.00.00
+unspsc7#93.11.15.03.00#Protest movements#93.11.15.00.00
+unspsc7#93.11.15.04.00#Underground movements#93.11.15.00.00
+unspsc7#93.11.15.05.00#Student movements#93.11.15.00.00
+unspsc7#93.11.15.06.00#Peasant movements#93.11.15.00.00
+unspsc7#93.11.15.07.00#Opposition movements#93.11.15.00.00
+unspsc7#93.11.16.00.00#Political representation and participation#93.11.00.00.00
+unspsc7#93.11.16.01.00#Political representation#93.11.16.00.00
+unspsc7#93.11.16.02.00#Political participation#93.11.16.00.00
+unspsc7#93.11.16.03.00#Proportional representation#93.11.16.00.00
+unspsc7#93.11.16.04.00#Vote catcher services#93.11.16.00.00
+unspsc7#93.11.16.05.00#Voter registration or counting or analysis or scrutiny services#93.11.16.00.00
+unspsc7#93.11.16.06.00#Pressure groups representation or participation services#93.11.16.00.00
+unspsc7#93.11.16.07.00#Election analysis services#93.11.16.00.00
+unspsc7#93.11.16.08.00#Election organization services#93.11.16.00.00
+unspsc7#93.12.00.00.00#International relations#93.00.00.00.00
+unspsc7#93.12.15.00.00#Diplomacy#93.12.00.00.00
+unspsc7#93.12.15.01.00#Diplomatic services#93.12.15.00.00
+unspsc7#93.12.15.02.00#Consular services#93.12.15.00.00
+unspsc7#93.12.15.03.00#Diplomats security services#93.12.15.00.00
+unspsc7#93.12.15.04.00#Diplomatic privileges or immunities services#93.12.15.00.00
+unspsc7#93.12.15.05.00#State immunities services#93.12.15.00.00
+unspsc7#93.12.15.06.00#Embassies or ambassadors services#93.12.15.00.00
+unspsc7#93.12.15.07.00#State visits organization services#93.12.15.00.00
+unspsc7#93.12.15.08.00#International law prescription services#93.12.15.00.00
+unspsc7#93.12.15.09.00#International law promotion or recognition services#93.12.15.00.00
+unspsc7#93.12.16.00.00#International relations and cooperation#93.12.00.00.00
+unspsc7#93.12.16.01.00#Multilateral cooperation services#93.12.16.00.00
+unspsc7#93.12.16.02.00#Military cooperation services#93.12.16.00.00
+unspsc7#93.12.16.03.00#Political cooperation services#93.12.16.00.00
+unspsc7#93.12.16.04.00#International economic cooperation services#93.12.16.00.00
+unspsc7#93.12.16.05.00#North south cooperation services#93.12.16.00.00
+unspsc7#93.12.16.06.00#East west cooperation services#93.12.16.00.00
+unspsc7#93.12.16.07.00#International cooperation services#93.12.16.00.00
+unspsc7#93.12.16.08.00#Non governmental liaison services#93.12.16.00.00
+unspsc7#93.12.16.09.00#Non aligned countries cooperation#93.12.16.00.00
+unspsc7#93.12.16.10.00#Aligned countries cooperation#93.12.16.00.00
+unspsc7#93.12.16.11.00#Political crimes cooperation services#93.12.16.00.00
+unspsc7#93.12.16.12.00#Peace treaties cooperation#93.12.16.00.00
+unspsc7#93.12.16.13.00#Treaty signature or accessions or rectification services#93.12.16.00.00
+unspsc7#93.12.16.14.00#International watercourse cooperation services#93.12.16.00.00
+unspsc7#93.12.16.15.00#Territorial claims or negotiations third party services#93.12.16.00.00
+unspsc7#93.12.17.00.00#International organizations#93.12.00.00.00
+unspsc7#93.12.17.01.00#System of organizations services#93.12.17.00.00
+unspsc7#93.12.17.02.00#Security council services#93.12.17.00.00
+unspsc7#93.12.17.03.00#Economic or social council services#93.12.17.00.00
+unspsc7#93.12.17.04.00#Secretariat services#93.12.17.00.00
+unspsc7#93.12.17.05.00#Trustship council services#93.12.17.00.00
+unspsc7#93.12.17.06.00#General assembly services#93.12.17.00.00
+unspsc7#93.12.17.07.00#International court of justice services#93.12.17.00.00
+unspsc7#93.12.17.08.00#International political organizations services#93.12.17.00.00
+unspsc7#93.12.17.09.00#International charity organizations services#93.12.17.00.00
+unspsc7#93.12.17.10.00#International human relief organizations services#93.12.17.00.00
+unspsc7#93.12.17.11.00#International health organizations services#93.12.17.00.00
+unspsc7#93.13.00.00.00#Humanitarian aid and relief#93.00.00.00.00
+unspsc7#93.13.15.00.00#Refugee programs#93.13.00.00.00
+unspsc7#93.13.15.01.00#Protection of human rights services#93.13.15.00.00
+unspsc7#93.13.15.02.00#Promotion of human rights services#93.13.15.00.00
+unspsc7#93.13.15.03.00#Human rights education or information dissemination services#93.13.15.00.00
+unspsc7#93.13.15.04.00#Refugee emergency assistance services#93.13.15.00.00
+unspsc7#93.13.15.05.00#Refugee camps services#93.13.15.00.00
+unspsc7#93.13.15.06.00#Refugee resettlements or repatriation services#93.13.15.00.00
+unspsc7#93.13.15.07.00#Displaced persons assistance services#93.13.15.00.00
+unspsc7#93.13.16.00.00#Food and nutrition policy planning and programs#93.13.00.00.00
+unspsc7#93.13.16.01.00#Hunger eradication programs#93.13.16.00.00
+unspsc7#93.13.16.02.00#Emergency food supply services#93.13.16.00.00
+unspsc7#93.13.16.03.00#World food program services#93.13.16.00.00
+unspsc7#93.13.16.04.00#Food or agriculture organization services#93.13.16.00.00
+unspsc7#93.13.16.05.00#Common fund for commodities services#93.13.16.00.00
+unspsc7#93.13.16.06.00#International fund for agricultural development services#93.13.16.00.00
+unspsc7#93.13.16.07.00#Food distribution services#93.13.16.00.00
+unspsc7#93.13.16.08.00#Food supply services#93.13.16.00.00
+unspsc7#93.13.16.09.00#Food aid policies or programs#93.13.16.00.00
+unspsc7#93.13.16.10.00#Food planning services#93.13.16.00.00
+unspsc7#93.13.16.11.00#Food security services#93.13.16.00.00
+unspsc7#93.13.16.12.00#Food reserves management#93.13.16.00.00
+unspsc7#93.13.16.13.00#Food shortage or surplus management or control services#93.13.16.00.00
+unspsc7#93.13.17.00.00#Health programs#93.13.00.00.00
+unspsc7#93.13.17.01.00#Anti tobacco campaigns#93.13.17.00.00
+unspsc7#93.13.17.02.00#Sanitation programs#93.13.17.00.00
+unspsc7#93.13.17.03.00#Research programs#93.13.17.00.00
+unspsc7#93.13.17.04.00#Disease prevention or control services#93.13.17.00.00
+unspsc7#93.13.17.05.00#Drug abuse prevention or control programs#93.13.17.00.00
+unspsc7#93.13.18.00.00#Disaster preparedness and relief#93.13.00.00.00
+unspsc7#93.13.18.01.00#Disaster warning services#93.13.18.00.00
+unspsc7#93.13.18.02.00#Disaster preparedness response services#93.13.18.00.00
+unspsc7#93.13.18.03.00#Emergency housing services#93.13.18.00.00
+unspsc7#93.14.00.00.00#Community and social services#93.00.00.00.00
+unspsc7#93.14.15.00.00#Social development and services#93.14.00.00.00
+unspsc7#93.14.15.01.00#Social policy services#93.14.15.00.00
+unspsc7#93.14.15.02.00#Social security legislation services#93.14.15.00.00
+unspsc7#93.14.15.03.00#Social planning services#93.14.15.00.00
+unspsc7#93.14.15.04.00#Foster home care services or orphanage#93.14.15.00.00
+unspsc7#93.14.15.05.00#Adoption services#93.14.15.00.00
+unspsc7#93.14.15.06.00#Social welfare services#93.14.15.00.00
+unspsc7#93.14.15.07.00#Social work administration services#93.14.15.00.00
+unspsc7#93.14.15.08.00#Voluntary service management#93.14.15.00.00
+unspsc7#93.14.15.09.00#Social problems analysis or management services#93.14.15.00.00
+unspsc7#93.14.15.10.00#Social structure studies or related services#93.14.15.00.00
+unspsc7#93.14.15.11.00#Social groups studies or related services#93.14.15.00.00
+unspsc7#93.14.15.12.00#Youth movements or organizations services#93.14.15.00.00
+unspsc7#93.14.15.13.00#Social justice or legislation services#93.14.15.00.00
+unspsc7#93.14.15.14.00#Socio cultural services#93.14.15.00.00
+unspsc7#93.14.16.00.00#Population#93.14.00.00.00
+unspsc7#93.14.16.01.00#Population census services#93.14.16.00.00
+unspsc7#93.14.16.02.00#Population sample surveys services#93.14.16.00.00
+unspsc7#93.14.16.03.00#Birth reporting or control services#93.14.16.00.00
+unspsc7#93.14.16.04.00#Population control services#93.14.16.00.00
+unspsc7#93.14.16.05.00#Population trends or projections services#93.14.16.00.00
+unspsc7#93.14.16.06.00#Birth statistics services#93.14.16.00.00
+unspsc7#93.14.16.07.00#Marriage research or statistics services#93.14.16.00.00
+unspsc7#93.14.16.08.00#Population distribution or analysis services#93.14.16.00.00
+unspsc7#93.14.16.09.00#Population composition analysis services#93.14.16.00.00
+unspsc7#93.14.16.10.00#Demographic studies#93.14.16.00.00
+unspsc7#93.14.16.11.00#Immigration analysis or services#93.14.16.00.00
+unspsc7#93.14.16.12.00#Family planning programs or services#93.14.16.00.00
+unspsc7#93.14.16.13.00#Human reproduction analysis#93.14.16.00.00
+unspsc7#93.14.17.00.00#Culture#93.14.00.00.00
+unspsc7#93.14.17.01.00#Cultural events organizations#93.14.17.00.00
+unspsc7#93.14.17.02.00#Culture promotional services#93.14.17.00.00
+unspsc7#93.14.17.03.00#Art related services#93.14.17.00.00
+unspsc7#93.14.17.04.00#Song writing services#93.14.17.00.00
+unspsc7#93.14.17.05.00#Literary writing services#93.14.17.00.00
+unspsc7#93.14.17.06.00#Minorities protection services#93.14.17.00.00
+unspsc7#93.14.17.07.00#Cultural heritage preservation or promotion services#93.14.17.00.00
+unspsc7#93.14.17.08.00#Museum services#93.14.17.00.00
+unspsc7#93.14.17.09.00#Cultural policy services#93.14.17.00.00
+unspsc7#93.14.17.10.00#Archaic or indigenous language services#93.14.17.00.00
+unspsc7#93.14.17.11.00#Traditional handcrafts promotion services#93.14.17.00.00
+unspsc7#93.14.17.12.00#Protection of intellectual or cultural property services#93.14.17.00.00
+unspsc7#93.14.17.13.00#Historic sites or monuments protection services#93.14.17.00.00
+unspsc7#93.14.17.14.00#Mythology#93.14.17.00.00
+unspsc7#93.14.18.00.00#Employment#93.14.00.00.00
+unspsc7#93.14.18.01.00#Employment promotion or planning services#93.14.18.00.00
+unspsc7#93.14.18.02.00#Recruitment services#93.14.18.00.00
+unspsc7#93.14.18.03.00#International labor standards services#93.14.18.00.00
+unspsc7#93.14.18.04.00#International labor registration services#93.14.18.00.00
+unspsc7#93.14.18.05.00#Unemployment services#93.14.18.00.00
+unspsc7#93.14.18.06.00#Employment statistics or forecasting services#93.14.18.00.00
+unspsc7#93.14.18.07.00#Work time arrangements#93.14.18.00.00
+unspsc7#93.14.18.08.00#Occupational health or safety services#93.14.18.00.00
+unspsc7#93.14.18.10.00#Career development services#93.14.18.00.00
+unspsc7#93.14.18.11.00#Promotional services#93.14.18.00.00
+unspsc7#93.14.18.12.00#Labor inspection services#93.14.18.00.00
+unspsc7#93.14.18.13.00#Work council services#93.14.18.00.00
+unspsc7#93.14.18.14.00#International labor services#93.14.18.00.00
+unspsc7#93.14.19.00.00#Rural development#93.14.00.00.00
+unspsc7#93.14.19.01.00#Agricultural commercial banking services#93.14.19.00.00
+unspsc7#93.14.19.02.00#Rural investment services#93.14.19.00.00
+unspsc7#93.14.19.03.00#Agricultural institutions organization or management services#93.14.19.00.00
+unspsc7#93.14.19.04.00#Agricultural or rural cooperatives services#93.14.19.00.00
+unspsc7#93.14.19.05.00#Agricultural research services#93.14.19.00.00
+unspsc7#93.14.19.06.00#Farmers or peasants organizations services#93.14.19.00.00
+unspsc7#93.14.19.07.00#Womens services in agricultural production or rural development#93.14.19.00.00
+unspsc7#93.14.19.08.00#Agrarian reform or land settlement services#93.14.19.00.00
+unspsc7#93.14.19.09.00#Land administration services#93.14.19.00.00
+unspsc7#93.14.19.10.00#Island development services#93.14.19.00.00
+unspsc7#93.14.20.00.00#Urban development#93.14.00.00.00
+unspsc7#93.14.20.01.00#Urban development planning services#93.14.20.00.00
+unspsc7#93.14.20.02.00#Urban land administration services#93.14.20.00.00
+unspsc7#93.14.20.03.00#Urban investment programming services#93.14.20.00.00
+unspsc7#93.14.20.04.00#Slum redevlopment services#93.14.20.00.00
+unspsc7#93.14.20.05.00#Urban lighting services#93.14.20.00.00
+unspsc7#93.14.20.06.00#Urban development control or regulations services#93.14.20.00.00
+unspsc7#93.14.20.07.00#Urban building standards or regulations services#93.14.20.00.00
+unspsc7#93.14.20.08.00#Urban community services#93.14.20.00.00
+unspsc7#93.14.20.09.00#Urban project or program administration or management services#93.14.20.00.00
+unspsc7#93.14.21.00.00#Regional development#93.14.00.00.00
+unspsc7#93.14.21.01.00#Regional development planning services#93.14.21.00.00
+unspsc7#93.14.21.02.00#Economic cooperation services#93.14.21.00.00
+unspsc7#93.14.21.03.00#Technical cooperation services#93.14.21.00.00
+unspsc7#93.14.21.04.00#Sectoral planning services#93.14.21.00.00
+unspsc7#93.15.00.00.00#Public administration and finance services#93.00.00.00.00
+unspsc7#93.15.15.00.00#Public administration#93.15.00.00.00
+unspsc7#93.15.15.01.00#Public enterprises management or financial services#93.15.15.00.00
+unspsc7#93.15.15.02.00#Public enterprises information or control systems services#93.15.15.00.00
+unspsc7#93.15.15.03.00#Privatization programs#93.15.15.00.00
+unspsc7#93.15.15.04.00#Administrative reform services#93.15.15.00.00
+unspsc7#93.15.15.05.00#Administrative agencies services#93.15.15.00.00
+unspsc7#93.15.15.06.00#Administrative economic council services#93.15.15.00.00
+unspsc7#93.15.15.07.00#Administrative procedures or services#93.15.15.00.00
+unspsc7#93.15.15.08.00#Government departments services#93.15.15.00.00
+unspsc7#93.15.15.09.00#Government information services#93.15.15.00.00
+unspsc7#93.15.15.10.00#Administrative fees or tax collection services#93.15.15.00.00
+unspsc7#93.15.15.11.00#Administrative acts ratification or implementation services#93.15.15.00.00
+unspsc7#93.15.15.12.00#Public institutions services#93.15.15.00.00
+unspsc7#93.15.15.13.00#Multinational public corporations services#93.15.15.00.00
+unspsc7#93.15.15.14.00#Ombudsman services#93.15.15.00.00
+unspsc7#93.15.15.15.00#National planning services#93.15.15.00.00
+unspsc7#93.15.16.00.00#Public finance#93.15.00.00.00
+unspsc7#93.15.16.01.00#Program budgeting services#93.15.16.00.00
+unspsc7#93.15.16.02.00#Government budgeting services#93.15.16.00.00
+unspsc7#93.15.16.03.00#Budget or public investment management#93.15.16.00.00
+unspsc7#93.15.16.04.00#Military expenditures budgeting services#93.15.16.00.00
+unspsc7#93.15.16.05.00#Government finance services#93.15.16.00.00
+unspsc7#93.15.16.06.00#Government accounting services#93.15.16.00.00
+unspsc7#93.15.16.07.00#Government auditing services#93.15.16.00.00
+unspsc7#93.15.16.08.00#Government or central bank services#93.15.16.00.00
+unspsc7#93.15.16.09.00#Lotteries services#93.15.16.00.00
+unspsc7#93.15.16.10.00#Tax collection services#93.15.16.00.00
+unspsc7#93.15.16.11.00#Subsidies#93.15.16.00.00
+unspsc7#93.15.17.00.00#Currency#93.15.00.00.00
+unspsc7#93.15.17.01.00#Currencies or coinage#93.15.17.00.00
+unspsc7#93.15.17.02.00#National bank notes#93.15.17.00.00
+unspsc7#93.16.00.00.00#Taxation#93.00.00.00.00
+unspsc7#93.16.15.00.00#Income tax#93.16.00.00.00
+unspsc7#93.16.15.01.00#National income tax#93.16.15.00.00
+unspsc7#93.16.15.02.00#Municipal income tax#93.16.15.00.00
+unspsc7#93.16.15.03.00#Capital gains tax#93.16.15.00.00
+unspsc7#93.16.15.04.00#Excess profits tax#93.16.15.00.00
+unspsc7#93.16.16.00.00#Taxes other than income tax#93.16.00.00.00
+unspsc7#93.16.16.01.00#Property tax#93.16.16.00.00
+unspsc7#93.16.16.02.00#Land tax#93.16.16.00.00
+unspsc7#93.16.16.03.00#Value added tax (VAT)#93.16.16.00.00
+unspsc7#93.16.16.04.00#Payroll tax#93.16.16.00.00
+unspsc7#93.16.16.05.00#Sales tax#93.16.16.00.00
+unspsc7#93.16.16.06.00#Social security tax#93.16.16.00.00
+unspsc7#93.16.16.07.00#Inheritance or transfer tax#93.16.16.00.00
+unspsc7#93.16.17.00.00#Tax administration#93.16.00.00.00
+unspsc7#93.16.17.01.00#Tax collation#93.16.17.00.00
+unspsc7#93.16.17.02.00#Tax incentives#93.16.17.00.00
+unspsc7#93.16.17.03.00#Tax systems#93.16.17.00.00
+unspsc7#93.16.17.04.00#Tax revenue administration#93.16.17.00.00
+unspsc7#93.16.18.00.00#Taxation issues#93.16.00.00.00
+unspsc7#93.16.18.01.00#Tax reform#93.16.18.00.00
+unspsc7#93.16.18.02.00#Taxation policy#93.16.18.00.00
+unspsc7#93.16.18.03.00#Tax research#93.16.18.00.00
+unspsc7#93.16.18.04.00#Investment tax credit#93.16.18.00.00
+unspsc7#93.16.18.05.00#Tax deductions#93.16.18.00.00
+unspsc7#93.16.18.06.00#Tax evasion#93.16.18.00.00
+unspsc7#93.16.18.07.00#Tax shelters or havens#93.16.18.00.00
+unspsc7#93.16.18.08.00#Tax returns#93.16.18.00.00
+unspsc7#93.17.00.00.00#Trade policy and regulation#93.00.00.00.00
+unspsc7#93.17.15.00.00#Trade policy#93.17.00.00.00
+unspsc7#93.17.15.01.00#Trade agreements#93.17.15.00.00
+unspsc7#93.17.15.02.00#Trade negotiations#93.17.15.00.00
+unspsc7#93.17.15.03.00#Formulation of national commodity policies#93.17.15.00.00
+unspsc7#93.17.15.04.00#Development of small scale industries#93.17.15.00.00
+unspsc7#93.17.16.00.00#International trade#93.17.00.00.00
+unspsc7#93.17.16.01.00#International commodity agreements#93.17.16.00.00
+unspsc7#93.17.16.02.00#Export policy#93.17.16.00.00
+unspsc7#93.17.16.03.00#Global trade policies or procedures#93.17.16.00.00
+unspsc7#93.17.16.04.00#Bilateral trade agreements#93.17.16.00.00
+unspsc7#93.17.17.00.00#Customs administration and compliance#93.17.00.00.00
+unspsc7#93.17.17.01.00#Customs conventions#93.17.17.00.00
+unspsc7#93.17.17.02.00#Customs formalities#93.17.17.00.00
+unspsc7#93.17.17.03.00#Customs offences#93.17.17.00.00
+unspsc7#93.17.18.00.00#Trade analysis#93.17.00.00.00
+unspsc7#93.17.18.01.00#Trade projections#93.17.18.00.00
+unspsc7#93.17.18.02.00#Balance of trade projections#93.17.18.00.00
+unspsc7#93.17.18.03.00#Trade statistics#93.17.18.00.00
+unspsc7#94.00.00.00.00#Organizations and Clubs#94.00.00.00.00
+unspsc7#94.10.00.00.00#Work related organizations#94.00.00.00.00
+unspsc7#94.10.15.00.00#Business associations#94.10.00.00.00
+unspsc7#94.10.15.01.00#Agricultural industry associations#94.10.15.00.00
+unspsc7#94.10.15.02.00#Regulatory associations#94.10.15.00.00
+unspsc7#94.10.15.03.00#Sectoral business associations#94.10.15.00.00
+unspsc7#94.10.15.04.00#International business associations#94.10.15.00.00
+unspsc7#94.10.15.05.00#Employers associations#94.10.15.00.00
+unspsc7#94.10.16.00.00#Professional associations#94.10.00.00.00
+unspsc7#94.10.16.01.00#Dental associations#94.10.16.00.00
+unspsc7#94.10.16.02.00#Medical health associations#94.10.16.00.00
+unspsc7#94.10.16.03.00#Nursing associations#94.10.16.00.00
+unspsc7#94.10.16.04.00#Accounting associations#94.10.16.00.00
+unspsc7#94.10.16.05.00#Architect associations#94.10.16.00.00
+unspsc7#94.10.16.06.00#Bar associations#94.10.16.00.00
+unspsc7#94.10.16.07.00#Educational or teacher associations#94.10.16.00.00
+unspsc7#94.10.16.08.00#Engineering associations#94.10.16.00.00
+unspsc7#94.10.16.09.00#Scientific associations#94.10.16.00.00
+unspsc7#94.10.16.10.00#Professional standards review boards#94.10.16.00.00
+unspsc7#94.10.17.00.00#Staff associations#94.10.00.00.00
+unspsc7#94.10.17.01.00#Staff hobby clubs#94.10.17.00.00
+unspsc7#94.10.17.02.00#Staff sports associations#94.10.17.00.00
+unspsc7#94.10.17.03.00#Women staff associations#94.10.17.00.00
+unspsc7#94.10.17.04.00#Pensionnist staff associations#94.10.17.00.00
+unspsc7#94.10.17.05.00#Management staff associations#94.10.17.00.00
+unspsc7#94.10.18.00.00#Trade unions#94.10.00.00.00
+unspsc7#94.10.18.01.00#Labor or general workers trade unions#94.10.18.00.00
+unspsc7#94.10.18.02.00#Trade union activists services#94.10.18.00.00
+unspsc7#94.10.18.03.00#Trade union information services#94.10.18.00.00
+unspsc7#94.10.18.04.00#Transport unions#94.10.18.00.00
+unspsc7#94.10.18.05.00#Teachers unions#94.10.18.00.00
+unspsc7#94.10.18.06.00#Medical personnel unions#94.10.18.00.00
+unspsc7#94.10.18.07.00#Employers unions#94.10.18.00.00
+unspsc7#94.10.18.08.00#Civil servants unions#94.10.18.00.00
+unspsc7#94.10.18.09.00#Personal assistance services#94.10.18.00.00
+unspsc7#94.10.18.10.00#Aviation unions#94.10.18.00.00
+unspsc7#94.11.00.00.00#Religious organizations#94.00.00.00.00
+unspsc7#94.11.17.00.00#Religious residences#94.11.00.00.00
+unspsc7#94.11.17.01.00#Private religious home residences#94.11.17.00.00
+unspsc7#94.11.17.02.00#Community religious home residences#94.11.17.00.00
+unspsc7#94.11.17.03.00#Religious retreat residences#94.11.17.00.00
+unspsc7#94.11.17.04.00#Temporary religious home residences#94.11.17.00.00
+unspsc7#94.11.18.00.00#Pilgrimage organizations and services#94.11.00.00.00
+unspsc7#94.11.18.01.00#Mecca pilgrimage organizations or services#94.11.18.00.00
+unspsc7#94.11.18.02.00#Vatican pilgrimage organizations or services#94.11.18.00.00
+unspsc7#94.11.18.03.00#Pilgrimage travel assistance services#94.11.18.00.00
+unspsc7#94.11.18.04.00#Pilgrimage tour operators services#94.11.18.00.00
+unspsc7#94.11.19.00.00#Missionary services#94.11.00.00.00
+unspsc7#94.11.19.01.00#Religious orders services#94.11.19.00.00
+unspsc7#94.11.19.02.00#Evangelical missionary services#94.11.19.00.00
+unspsc7#94.11.19.03.00#Educational missionary services#94.11.19.00.00
+unspsc7#94.11.20.00.00#Denominational services#94.11.00.00.00
+unspsc7#94.11.20.01.00#Hinduism services#94.11.20.00.00
+unspsc7#94.11.20.02.00#Buddhism services#94.11.20.00.00
+unspsc7#94.11.20.03.00#Christian services#94.11.20.00.00
+unspsc7#94.11.20.04.00#Islam services#94.11.20.00.00
+unspsc7#94.11.20.05.00#Judaism services#94.11.20.00.00
+unspsc7#94.12.00.00.00#Clubs#94.00.00.00.00
+unspsc7#94.12.15.00.00#Sport clubs#94.12.00.00.00
+unspsc7#94.12.15.01.00#Ice sports clubs#94.12.15.00.00
+unspsc7#94.12.15.02.00#Boating or swimming sport clubs#94.12.15.00.00
+unspsc7#94.12.15.03.00#Gun or hunting sport clubs#94.12.15.00.00
+unspsc7#94.12.15.04.00#Outdoor field sport clubs#94.12.15.00.00
+unspsc7#94.12.15.05.00#Indoor or outdoor court sport clubs#94.12.15.00.00
+unspsc7#94.12.15.06.00#Winter sport clubs#94.12.15.00.00
+unspsc7#94.12.15.07.00#Beach or water sport clubs#94.12.15.00.00
+unspsc7#94.12.15.08.00#Cycling sport clubs#94.12.15.00.00
+unspsc7#94.12.15.09.00#Mountaineering sport clubs#94.12.15.00.00
+unspsc7#94.12.15.10.00#Racing sport clubs#94.12.15.00.00
+unspsc7#94.12.15.11.00#Flying sport clubs#94.12.15.00.00
+unspsc7#94.12.15.12.00#Professional or semiprofessional sports clubs#94.12.15.00.00
+unspsc7#94.12.15.13.00#Stadium event operator services#94.12.15.00.00
+unspsc7#94.12.15.14.00#Sport club managers or promoters services#94.12.15.00.00
+unspsc7#94.12.16.00.00#Hobby clubs#94.12.00.00.00
+unspsc7#94.12.16.01.00#Playing card hobby clubs#94.12.16.00.00
+unspsc7#94.12.16.02.00#Handcrafts clubs#94.12.16.00.00
+unspsc7#94.12.16.03.00#Poetry or literature hobby clubs#94.12.16.00.00
+unspsc7#94.12.16.04.00#Cooking hobby clubs#94.12.16.00.00
+unspsc7#94.12.16.05.00#Gardening hobby clubs#94.12.16.00.00
+unspsc7#94.12.16.06.00#Collector hobby club#94.12.16.00.00
+unspsc7#94.12.16.07.00#Scouting club#94.12.16.00.00
+unspsc7#94.12.17.00.00#Amateurs clubs#94.12.00.00.00
+unspsc7#94.12.17.01.00#Amateur drama clubs or services#94.12.17.00.00
+unspsc7#94.12.17.02.00#Amateur music clubs or services#94.12.17.00.00
+unspsc7#94.12.17.03.00#Amateur dance clubs or services#94.12.17.00.00
+unspsc7#94.12.17.04.00#Amateur fine arts clubs or services#94.12.17.00.00
+unspsc7#94.12.18.00.00#Social clubs#94.12.00.00.00
+unspsc7#94.12.18.01.00#Youth clubs#94.12.18.00.00
+unspsc7#94.12.18.02.00#Senior citizens clubs#94.12.18.00.00
+unspsc7#94.12.18.03.00#Social gathering clubs#94.12.18.00.00
+unspsc7#94.12.18.04.00#Social clubs for people with disabilities#94.12.18.00.00
+unspsc7#94.12.18.05.00#War veterans social clubs#94.12.18.00.00
+unspsc7#94.13.00.00.00#Civic organizations and associations and movements#94.00.00.00.00
+unspsc7#94.13.15.00.00#Non governmental organizations#94.13.00.00.00
+unspsc7#94.13.15.01.00#Environmental non governmental services#94.13.15.00.00
+unspsc7#94.13.15.02.00#Emergency relief non governmental services#94.13.15.00.00
+unspsc7#94.13.15.03.00#Technical assistance non governmental services#94.13.15.00.00
+unspsc7#94.13.15.04.00#Development aid non governemntal services#94.13.15.00.00
+unspsc7#94.13.16.00.00#Charity organizations#94.13.00.00.00
+unspsc7#94.13.16.01.00#Charity organizations shelter services#94.13.16.00.00
+unspsc7#94.13.16.02.00#Food relief services#94.13.16.00.00
+unspsc7#94.13.16.03.00#Legal assistance services#94.13.16.00.00
+unspsc7#94.13.16.04.00#Resource mobilization services#94.13.16.00.00
+unspsc7#94.13.16.05.00#International aid assistance services#94.13.16.00.00
+unspsc7#94.13.16.06.00#Orphanage or adoption services#94.13.16.00.00
+unspsc7#94.13.16.07.00#Ederly assistance organizations#94.13.16.00.00
+unspsc7#94.13.16.08.00#Prisoner assistance organizations#94.13.16.00.00
+unspsc7#94.13.17.00.00#Green associations#94.13.00.00.00
+unspsc7#94.13.17.01.00#Radical green associations#94.13.17.00.00
+unspsc7#94.13.17.02.00#Ecofeminists associations#94.13.17.00.00
+unspsc7#94.13.17.03.00#Ecological political organizations#94.13.17.00.00
+unspsc7#94.13.17.04.00#Green activists movements or services#94.13.17.00.00
+unspsc7#94.13.18.00.00#Movements#94.13.00.00.00
+unspsc7#94.13.18.01.00#Gay or lesbian or bisexual or transgender movements#94.13.18.00.00
+unspsc7#94.13.18.02.00#Anti racism movements#94.13.18.00.00
+unspsc7#94.13.18.03.00#Women liberation movements#94.13.18.00.00
+unspsc7#94.13.18.04.00#Fraternal associations#94.13.18.00.00
+unspsc7#94.13.18.05.00#Ethnic minorities cultural preservation services#94.13.18.00.00
+unspsc7#94.13.19.00.00#Animal protection associations#94.13.00.00.00
+unspsc7#94.13.19.01.00#Animal liberation movements#94.13.19.00.00
+unspsc7#94.13.19.02.00#Endangered species protection associations#94.13.19.00.00
+unspsc7#94.13.19.03.00#Threatened animals protection associations#94.13.19.00.00
+unspsc7#94.13.20.00.00#Human rights advocacy and defense associations#94.13.00.00.00
+unspsc7#94.13.20.01.00#Children rights defense services#94.13.20.00.00
+unspsc7#94.13.20.02.00#Prisoners defense services#94.13.20.00.00
+unspsc7#94.13.20.03.00#Physical or mental torture defense associations#94.13.20.00.00
+unspsc7#94.13.20.04.00#Freedom of speech defense associations#94.13.20.00.00
+unspsc7#94.13.20.05.00#Voting rights defense associations#94.13.20.00.00
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceAdvancedForm.jsp
new file mode 100644
index 000000000..80e9f9f2b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceAdvancedForm.jsp
@@ -0,0 +1,114 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<script language="javascript">
+ function processPublishServiceAdvancedForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processResultTable("publishServiceAdvancedServiceInterface","<%=UDDIActionInputs.NODEID_SERVICE_INTERFACE%>",form,false);
+ processLanguageInputTable("publishServiceAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processLanguageInputTable("publishServiceAdvancedDescriptions","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processCategoryTable("publishServiceAdvancedCategories",form,false);
+ return true;
+ }
+ return false;
+ }
+</script>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceAdvanced" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/BusPublishServiceAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processAdvancedForm(this)">
+ <input type="hidden" name="subQueryGet">
+ <input type="hidden" name="<%=UDDIActionInputs.NODEID_BUSINESS%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_business_publish_service_advance_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceAdvanced',<%=ActionInputs.WSDL_TYPE_SERVICE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_business_publish_service_advance_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ </table>
+<%
+ boolean tableHasErrors = !formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ String[] serviceInterfaceSpecificInfo = {"FORM_LABEL_SERVICE_INTERFACES",(new Boolean(tableHasErrors)).toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES),"publishServiceAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedServiceInterface");
+ sectionHeaderInfo.setOtherProperties(serviceInterfaceSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES))};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceForm.jsp
new file mode 100644
index 000000000..c23ce7bad
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceForm.jsp
@@ -0,0 +1,259 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.SelectSubQueryItemAction,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.ListElement,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.*,
+ org.uddi4j.datatype.tmodel.TModel,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode must be a business node.
+ Node busNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(busNode.getCurrentToolManager().getSelectedTool());
+%>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request">
+<%
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ subQueryKeyProperty.setSubQueryKey(subQueryKey);
+%>
+</jsp:useBean>
+<%
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+ // business parent node may be either the published items folder or a query node.
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ Node regNode = uddiMainNode.getRegistryNode(busNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_BUSINESS_PUBLISH_SERVICE")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<script language="javascript">
+ var sectionIds = ["publishServiceSimple","publishServiceAdvanced"];
+ var styleForm = "publishServiceStyle";
+
+ function processAdvancedForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processResultTable("publishServiceAdvancedServiceInterface","<%=UDDIActionInputs.NODEID_SERVICE_INTERFACE%>",form,false);
+ processLanguageInputTable("publishServiceAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processLanguageInputTable("publishServiceAdvancedDescriptions","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processCategoryTable("publishServiceAdvancedCategories",form,false);
+ return true;
+ }
+ return false;
+ }
+
+ function setAuthenticationSectionDefaults(form)
+ {
+<%
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ }
+
+ function setDefaults()
+ {
+<%
+ String publishServiceStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICES);
+%>
+ document.forms[styleForm].<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>[<%=publishServiceStyleIndex%>].checked = true;
+
+ var publishServiceSimpleSection = document.getElementById(sectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var publishServiceSimpleForm = publishServiceSimpleSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceSimpleForm);
+ publishServiceSimpleForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL))%>";
+ publishServiceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))%>";
+ publishServiceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION))%>";
+
+ // Advanced form details.
+ var publishServiceAdvancedSection = document.getElementById(sectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var publishServiceAdvancedForm = publishServiceAdvancedSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceAdvancedForm);
+ var publishServiceAdvancedNamesTable = getTable("publishServiceAdvancedNames");
+ var publishServiceAdvancedDescriptionsTable = getTable("publishServiceAdvancedDescriptions");
+ publishServiceAdvancedForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL))%>";
+<%
+ Vector serviceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ Vector serviceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY);
+ if (serviceInterfaces != null)
+ {
+ if (serviceInterfacesCopy == null)
+ serviceInterfacesCopy = new Vector();
+ else
+ serviceInterfacesCopy.removeAllElements();
+ for (int i=0;i<serviceInterfaces.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceInterfaces.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,i,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,false);
+ TModel tModel = (TModel)listElement.getObject();
+ serviceInterfacesCopy.addElement(serviceInterfaces.elementAt(i));
+%>
+ addResultRow("publishServiceAdvancedServiceInterface",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(tModel.getNameString())%>","<%=HTMLUtils.JSMangle(tModel.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceInterfacesCopy);
+ }
+ else
+ {
+ serviceInterfaces = new Vector();
+ serviceInterfacesCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,serviceInterfaces);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceInterfacesCopy);
+ }
+%>
+<%
+ Vector serviceNameVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ if (serviceNameVector != null)
+ {
+ for (int i=0;i<serviceNameVector.size();i++)
+ {
+ Name name = (Name)serviceNameVector.elementAt(i);
+%>
+ addLanguageInputRow("publishServiceAdvancedNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishServiceAdvancedNames",<%=i%>,"<%=HTMLUtils.JSMangle(name.getLang())%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i))
+ {
+%>
+ highlightErrantRow(publishServiceAdvancedNamesTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ Vector serviceDescriptionVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ if (serviceDescriptionVector != null)
+ {
+ for (int i=0;i<serviceDescriptionVector.size();i++)
+ {
+ Description description = (Description)serviceDescriptionVector.elementAt(i);
+%>
+ addLanguageInputRow("publishServiceAdvancedDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishServiceAdvancedDescriptions",<%=i%>,"<%=HTMLUtils.JSMangle(description.getLang())%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i))
+ {
+%>
+ highlightErrantRow(publishServiceAdvancedDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ CategoryBag serviceCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ if (serviceCatBag != null)
+ {
+ Vector keyedReferenceVector = serviceCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("publishServiceAdvancedCategories");
+ setCategoryRowSettings("publishServiceAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ if (!regElement.isLoggedIn())
+ {
+%>
+ document.getElementById("publishServiceSimpleAuthentication").style.display = "";
+ document.getElementById("publishServiceAdvancedAuthentication").style.display = "";
+<%
+ }
+%>
+ showPublishForm(<%=publishServiceStyleIndex%>);
+ }
+
+ function showPublishForm(style)
+ {
+ closeAllUddiChildWindows();
+ for (var i=0;i<sectionIds.length;i++)
+ {
+ if (i == style)
+ document.getElementById(sectionIds[i]).style.display = "";
+ else
+ document.getElementById(sectionIds[i]).style.display = "none";
+ }
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <table id="loadScreen">
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "uddi/images/publish_service_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_PUBLISH_SERVICE");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <form name="publishServiceStyle" style="margin-top:0;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_FORM")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_business_publish_service_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_business_publish_service_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_business_publish_service_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_business_publish_service_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/BusPublishServiceSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/BusPublishServiceAdvancedForm.jsp" flush="true"/>
+ </div>
+ </div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceSimpleForm.jsp
new file mode 100644
index 000000000..35a4d91bd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusPublishServiceSimpleForm.jsp
@@ -0,0 +1,95 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/BusPublishServiceSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.NODEID_BUSINESS%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceSimpleAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_business_publish_service_simple_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceSimple',<%=ActionInputs.WSDL_TYPE_SERVICE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_business_publish_service_simple_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_business_publish_service_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <tr>
+ <td colspan=3> <input type="text" id="input_business_publish_service_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>" class="textenter"> </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_business_publish_service_simple_desc"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3> <input type="text" id="input_business_publish_service_simple_desc" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusinessDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusinessDetailsForm.jsp
new file mode 100644
index 000000000..79bb31c25
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/BusinessDetailsForm.jsp
@@ -0,0 +1,293 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ FormTool formTool = (FormTool)(currentToolManager.getSelectedTool());
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_BUSINESS_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/detailstables.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+ var businessDetailsDiscoveryURLsTable = getTable("businessDetailsDiscoveryURLs");
+ var businessDetailsNamesTable = getTable("businessDetailsNames");
+ var businessDetailsDescriptionsTable = getTable("businessDetailsDescriptions");
+ var businessDetailsIdentifiersTable = getTable("businessDetailsIdentifiers");
+<%
+ Vector discoveryURLVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ if (discoveryURLVector != null)
+ {
+ for (int i=0;i<discoveryURLVector.size();i++)
+ {
+ ListElement listElement = (ListElement)discoveryURLVector.elementAt(i);
+ DiscoveryURL discoveryURL = (DiscoveryURL)listElement.getObject();
+ boolean isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,i);
+ boolean isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsDiscoveryURLRow("businessDetailsDiscoveryURLs",<%=isError||isNewItem%>);
+ setDetailsDiscoveryURLRow("businessDetailsDiscoveryURLs",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(discoveryURL.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(businessDetailsDiscoveryURLsTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector nameIndexVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ if (nameIndexVector != null)
+ {
+ for (int i=0;i<nameIndexVector.size();i++)
+ {
+ ListElement listElement = (ListElement)nameIndexVector.elementAt(i);
+ Name name = (Name)listElement.getObject();
+ boolean isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i);
+ boolean isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsLanguageInputRow("businessDetailsNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>",<%=isError||isNewItem%>);
+ setDetailsLanguageInputRow("businessDetailsNames",<%=i%>,<%=listElement.getViewId()%>,"<%=name.getLang()%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(businessDetailsNamesTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector descriptionIndexVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+ if (descriptionIndexVector != null)
+ {
+ for (int i=0;i<descriptionIndexVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionIndexVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ boolean isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i);
+ boolean isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsLanguageInputRow("businessDetailsDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>",<%=isError||isNewItem%>);
+ setDetailsLanguageInputRow("businessDetailsDescriptions",<%=i%>,<%=listElement.getViewId()%>,"<%=description.getLang()%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(businessDetailsDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector idVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ if (idVector != null)
+ {
+ for (int i=0;i<idVector.size();i++)
+ {
+ ListElement listElement = (ListElement)idVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ boolean isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS,i);
+ boolean isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsIdentifierRow("businessDetailsIdentifiers",<%=isError||isNewItem%>);
+ setDetailsIdentifierRow("businessDetailsIdentifiers",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(businessDetailsIdentifiersTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector catVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ if (catVector != null)
+ {
+ for (int i=0;i<catVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ boolean isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES,i);
+ boolean isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsCategoryRow("businessDetailsCategories",<%=isError||isNewItem%>);
+ setDetailsCategoryRow("businessDetailsCategories",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(businessDetailsCategoriesTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ // Authentication.
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ if (<%=!regElement.isLoggedIn()%>)
+ document.getElementById("businessDetailsAuthentication").style.display = "";
+
+ showMainForm();
+ }
+
+ function showMainForm()
+ {
+ closeAllUddiChildWindows();
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function processForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processDetailsDiscoveryURLTable("businessDetailsDiscoveryURLs","<%=UDDIActionInputs.DISCOVERYURL_MODIFIED%>","<%=UDDIActionInputs.DISCOVERYURL_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DISCOVERYURL%>",form);
+ processDetailsLanguageInputTable("businessDetailsNames","<%=UDDIActionInputs.NAME_MODIFIED%>","<%=UDDIActionInputs.NAME_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processDetailsLanguageInputTable("businessDetailsDescriptions","<%=UDDIActionInputs.DESCRIPTION_MODIFIED%>","<%=UDDIActionInputs.DESCRIPTION_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processDetailsIdentifierTable("businessDetailsIdentifiers",form);
+ processDetailsCategoryTable("businessDetailsCategories",form);
+ return true;
+ }
+ return false;
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateBusinessActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_BUSINESS_DETAILS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY%>" value="<%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY)%>">
+ <table>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_DETAILS_EDITABLE",selectedNode.getNodeName())%>
+ </td>
+ </tr>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=uddiPerspective.getMessage("FORM_LABEL_BUSINESS_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY)%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",String.valueOf(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES))};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsLanguageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsLanguageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsIdentifiers");
+%>
+<jsp:include page="/uddi/forms/detailsIdentifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsCategories");
+%>
+<jsp:include page="/uddi/forms/detailsCategories_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsDiscoveryURLs");
+ Boolean discoveryURLSpecificInfo = new Boolean(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS));
+ sectionHeaderInfo.setOtherProperties(discoveryURLSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsDiscoveryURLs_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("businessDetailsAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </div>
+ </form>
+ </div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/GetForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/GetForm.jsp
new file mode 100644
index 000000000..5dfbbd73e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/GetForm.jsp
@@ -0,0 +1,217 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.service.*,
+ org.uddi4j.datatype.tmodel.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<jsp:useBean id="subQueryTransferTargetHolder" class="java.util.Vector" scope="request">
+<%
+ subQueryTransferTargetHolder.removeAllElements();
+%>
+</jsp:useBean>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey);
+ TreeElement treeElement = selectedNode.getTreeElement();
+ String parentQueryKey;
+ int lastSeparatorPos = subQueryKey.lastIndexOf(':');
+ if (lastSeparatorPos == -1)
+ parentQueryKey = "";
+ else
+ parentQueryKey = subQueryKey.substring(0,lastSeparatorPos);
+ FormToolPropertiesInterface parentFormToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(parentQueryKey);
+ Object queryItemProperty = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_ITEM);
+ Object queryStyleBus = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES);
+ Object queryStyleSer = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICES);
+ Object queryStyleSerInt = parentFormToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES);
+ Hashtable parentQueryData = new Hashtable();
+ if (queryItemProperty != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_ITEM, queryItemProperty);
+ if (queryStyleBus != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_BUSINESSES, queryStyleBus);
+ if (queryStyleSer != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_SERVICES, queryStyleSer);
+ if (queryStyleSerInt != null)
+ parentQueryData.put(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES, queryStyleSerInt);
+ SubQueryTransferTarget subQueryTransferTarget = new SubQueryTransferTarget(selectedNode,subQueryKey,parentQueryData);
+ treeElement.setPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET,subQueryTransferTarget);
+ subQueryTransferTargetHolder.addElement(subQueryTransferTarget);
+ boolean hasTarget = true;
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_GET_FORM")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/results.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+<%
+ int queryItem = Integer.parseInt((String)formToolPI.getProperty(UDDIActionInputs.QUERY_ITEM));
+ Hashtable allUniqueNodes = new Hashtable();
+ Vector allNodes = new Vector();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)nodeManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ regNode.getAllBusinessNodes(allNodes);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ regNode.getAllServiceNodes(allNodes);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ regNode.getAllServiceInterfaceNodes(allNodes);
+ }
+
+ for (int i=0;i<allNodes.size();i++)
+ {
+ Node node = (Node)allNodes.elementAt(i);
+ allUniqueNodes.put(node.getTreeElement().getKey(),node);
+ }
+
+ if (!allUniqueNodes.isEmpty())
+ {
+ Object[] itemNodes = allUniqueNodes.values().toArray();
+ QuickSort.sort(itemNodes,0,itemNodes.length-1);
+ for (int i=0;i<itemNodes.length;i++)
+ {
+ Node itemNode = (Node)itemNodes[i];
+ String url = SelectNavigatorNodeAction.getActionLink(itemNode.getNodeId(),false);
+ String name = null;
+ String description = null;
+ if (itemNode instanceof BusinessNode)
+ {
+ BusinessElement busElement = (BusinessElement)itemNode.getTreeElement();
+ BusinessEntity be = busElement.getBusinessEntity();
+ name = be.getDefaultNameString();
+ description = be.getDefaultDescriptionString();
+ }
+ else if (itemNode instanceof ServiceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)itemNode.getTreeElement();
+ BusinessService bs = serviceElement.getBusinessService();
+ name = bs.getDefaultNameString();
+ description = bs.getDefaultDescriptionString();
+ }
+ else if (itemNode instanceof ServiceInterfaceNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)itemNode.getTreeElement();
+ TModel tModel = siElement.getTModel();
+ name = tModel.getNameString();
+ description = tModel.getDefaultDescriptionString();
+ }
+%>
+ addResultRow("Get",<%=itemNode.getNodeId()%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(description)%>");
+<%
+ }
+%>
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+<%
+ }
+ else
+ {
+%>
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(TransferSubQueryResultsAction.getActionLinkForReturn()))%>";
+<%
+ }
+%>
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<div id="content">
+ <table id="loadScreen">
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String title = uddiPerspective.getMessage("ALT_GET");
+ String titleImagePath = "uddi/images/find_highlighted.gif";
+%>
+<%@ include file="/uddi/forms/resultsformheader.inc" %>
+ <form target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" method="post" enctype="multipart/form-data" style="margin-top:10px;">
+<%
+ sectionHeaderInfo.clear();
+ String tableTitle;
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_BUSINESSES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES");
+ }
+ String[] otherProperties = {tableTitle,""};
+ sectionHeaderInfo.setContainerId("Get");
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/results_table.jsp" flush="true"/>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_TRANSFER")%>" onClick="transferSelections('Get',this.form)" class="button">
+ </td>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_REFRESH")%>" onClick="refreshSelections('Get',this.form)" class="button">
+ </td>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_ADD_TO_FAVORITES")%>" onClick="addSelectionsToFavorites('Get',this.form)" class="button">
+ </td>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_CLEAR")%>" onClick="clearSelections('Get',this.form)" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </form>
+ </div>
+</div>
+</div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ItemsSummaryForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ItemsSummaryForm.jsp
new file mode 100644
index 000000000..ba4802aa8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ItemsSummaryForm.jsp
@@ -0,0 +1,210 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.service.*,
+ org.uddi4j.datatype.tmodel.*,
+ java.util.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ int queryItem = Integer.parseInt(request.getParameter(UDDIActionInputs.QUERY_ITEM));
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)nodeManager.getRootNode();
+ Node selectedNode = nodeManager.getSelectedNode();
+ Tool selectedTool = selectedNode.getCurrentToolManager().getSelectedTool();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ TreeElement treeElement = selectedNode.getTreeElement();
+ Vector summaryNodes = new Vector();
+ if (treeElement instanceof QueryParentElement)
+ regNode.getDiscoveredNodes(summaryNodes,queryItem);
+ else if (treeElement instanceof PublishedItemsElement)
+ {
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ regNode.getPublishedBusinessNodes(summaryNodes);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ regNode.getPublishedServiceNodes(summaryNodes);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ regNode.getPublishedServiceInterfaceNodes(summaryNodes);
+ }
+ }
+ boolean hasTarget = false;
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_ITEMS_SUMMARY")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/results.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+<%
+ Hashtable allUniqueNodes = new Hashtable();
+ for (int i=0;i<summaryNodes.size();i++)
+ {
+ Node summaryNode = (Node)summaryNodes.elementAt(i);
+ allUniqueNodes.put(summaryNode.getTreeElement().getKey(),summaryNode);
+ }
+
+ if (!allUniqueNodes.isEmpty())
+ {
+ Object[] itemNodes = allUniqueNodes.values().toArray();
+ QuickSort.sort(itemNodes,0,itemNodes.length-1);
+ for (int i=0;i<itemNodes.length;i++)
+ {
+ Node itemNode = (Node)itemNodes[i];
+ String url = SelectNavigatorNodeAction.getActionLink(itemNode.getNodeId(),false);
+ String name = null;
+ String description = null;
+ if (itemNode instanceof QueryNode)
+ {
+ QueryElement queryElement = (QueryElement)itemNode.getTreeElement();
+ name = queryElement.getName();
+ String numberOfChildNodesString = String.valueOf(itemNode.getChildNodes().size());
+ switch (queryElement.getQueryType())
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ description = uddiPerspective.getMessage("MSG_INFO_BUSINESSES_FOUND",numberOfChildNodesString);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ description = uddiPerspective.getMessage("MSG_INFO_SERVICES_FOUND",numberOfChildNodesString);
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ description = uddiPerspective.getMessage("MSG_INFO_SERVICE_INTERFACES_FOUND",numberOfChildNodesString);
+ }
+ }
+ else if (itemNode instanceof BusinessNode)
+ {
+ BusinessElement busElement = (BusinessElement)itemNode.getTreeElement();
+ BusinessEntity be = busElement.getBusinessEntity();
+ name = be.getDefaultNameString();
+ description = be.getDefaultDescriptionString();
+ }
+ else if (itemNode instanceof ServiceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)itemNode.getTreeElement();
+ BusinessService bs = serviceElement.getBusinessService();
+ name = bs.getDefaultNameString();
+ description = bs.getDefaultDescriptionString();
+ }
+ else if (itemNode instanceof ServiceInterfaceNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)itemNode.getTreeElement();
+ TModel tModel = siElement.getTModel();
+ name = tModel.getNameString();
+ description = tModel.getDefaultDescriptionString();
+ }
+%>
+ addResultRow("Summary",<%=itemNode.getNodeId()%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(description)%>");
+<%
+ }
+ }
+%>
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<div id="content">
+ <table id="loadScreen">
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String title = selectedTool.getAltText();
+ String titleImagePath = selectedTool.getHighlightedImageLink();
+%>
+<%@ include file="/uddi/forms/resultsformheader.inc" %>
+ <form target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" method="post" enctype="multipart/form-data" style="margin-top:10px;">
+<%
+ sectionHeaderInfo.clear();
+ String tableTitle;
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_QUERIES:
+ tableTitle = uddiPerspective.getMessage("FORM_LABEL_QUERIES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_BUSINESSES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES");
+ }
+ String[] otherProperties = {tableTitle,""};
+ sectionHeaderInfo.setContainerId("Summary");
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/results_table.jsp" flush="true"/>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_REFRESH")%>" onClick="refreshSelections('Summary',this.form)" class="button">
+ </td>
+<%
+ if (queryItem != UDDIActionInputs.QUERY_ITEM_QUERIES)
+ {
+%>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_ADD_TO_FAVORITES")%>" onClick="addSelectionsToFavorites('Summary',this.form)" class="button">
+ </td>
+<%
+ }
+%>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_CLEAR")%>" onClick="clearSelections('Summary',this.form)" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </form>
+ </div>
+</div>
+</div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManagePublisherAssertionsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManagePublisherAssertionsForm.jsp
new file mode 100644
index 000000000..7fdc17baa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManagePublisherAssertionsForm.jsp
@@ -0,0 +1,408 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.response.CompletionStatus,
+ org.uddi4j.datatype.business.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ String pubAssertionForm = "showPublisherAssertionsForm";
+ String publisherAssertionsBusiness = "publisherAssertionsBusiness";
+
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+
+ String divPublisherAssertionTable = "divPublisherAssertionTable";
+ String xdivPublisherAssertionTable = "xdivPublisherAssertionTable";
+%>
+
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request">
+<%
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ subQueryKeyProperty.setSubQueryKey(subQueryKey);
+%>
+</jsp:useBean>
+<%
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/uddipanes.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/results.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+ closeAllUddiChildWindows();
+<%
+ if (!regElement.isLoggedIn())
+ {
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ document.getElementById("<%=pubAssertionForm%>").style.display = "";
+<%
+ }
+
+ Vector business = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS);
+ ListManager businessCopy = (ListManager)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS_COPY);
+ if (business != null)
+ {
+ if (businessCopy == null)
+ businessCopy = new ListManager();
+ else
+ businessCopy.clear();
+ for (int i=0;i<business.size();i++)
+ {
+ ListElement listElement = (ListElement)business.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS,i,UDDIActionInputs.QUERY_ITEM_BUSINESSES,false);
+ BusinessEntity be = (BusinessEntity)listElement.getObject();
+ businessCopy.add(listElement);
+%>
+ addPublisherAssertionResultRow("<%=publisherAssertionsBusiness%>",<%=listElement.getViewId()%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(be.getDefaultNameString())%>","<%=HTMLUtils.JSMangle(be.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS_COPY,businessCopy);
+ }
+ else
+ {
+ business = new Vector();
+ businessCopy = new ListManager();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS,business);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS_COPY,businessCopy);
+ }
+%>
+ }
+
+ function populateAssertionTable() {
+<%
+ if (selectedElement instanceof BusinessElement)
+ {
+ ListManager pubAssertions = ((BusinessElement)selectedElement).getPublisherAssertions();
+ if (pubAssertions == null)
+ {
+ ShowPublisherAssertionsAction action = new ShowPublisherAssertionsAction(controller);
+ action.run();
+%>
+ statusContent.location = "<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>";
+<%
+ pubAssertions = ((BusinessElement)selectedElement).getPublisherAssertions();
+ }
+
+ pubAssertions = ((BusinessElement)selectedElement).getPublisherAssertions();
+ Enumeration e = ((pubAssertions != null) ? pubAssertions.getListElements() : null);
+ while (e != null && e.hasMoreElements())
+ {
+ ListElement le = (ListElement)e.nextElement();
+ PublisherAssertionElement pubAssertionElement = (PublisherAssertionElement)le.getObject();
+ int viewId = le.getViewId();
+ String direction;
+ if (((BusinessElement)selectedElement).getBusinessEntity().getBusinessKey().equals(pubAssertionElement.getFromKey()))
+ direction = uddiPerspective.getMessage("FORM_OPTION_ASSERTION_DIRECTION_FROM");
+ else
+ direction = uddiPerspective.getMessage("FORM_OPTION_ASSERTION_DIRECTION_TO");
+ ListElement sp = (ListElement)pubAssertionElement.getServiceProvider();
+ int targetNodeId = sp.getTargetNodeId();
+ int targetToolId = sp.getTargetToolId();
+ int targetViewId = sp.getTargetViewId();
+ int subQueryItemId = pubAssertionElement.getSubQueryItemId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_EXISTING_PUBLISHER_ASSERTIONS,subQueryItemId,UDDIActionInputs.QUERY_ITEM_BUSINESSES,false);
+ String name = ((BusinessEntity)sp.getObject()).getDefaultNameString();
+ String desc = ((BusinessEntity)sp.getObject()).getDefaultDescriptionString();
+ String status = pubAssertionElement.getStatus();
+ String type = pubAssertionElement.getKeyedRef().getKeyValue();
+%>
+ addAssertion("<%=divPublisherAssertionTable%>",<%=viewId%>,"<%=direction%>","<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(desc)%>","<%=status%>","<%=HTMLUtils.JSMangle(type)%>");
+<%
+ }
+ }
+%>
+ }
+
+ function addAssertion(tableContainerId,viewId,direction,url,name,desc,status,type)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+ var column5 = document.createElement("td");
+ var column6 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ rowCheckbox.name = "<%=UDDIActionInputs.PUBLISHER_ASSERTIONS_VIEWID%>";
+ rowCheckbox.value = viewId;
+ column0.appendChild(rowCheckbox);
+
+ column1.appendChild(document.createTextNode("<%=uddiPerspective.getMessage("FORM_LABEL_THIS_BUSINESS")%>"));
+
+ column2.appendChild(document.createTextNode(direction));
+
+ var nameDetailsLink = document.createElement("a");
+ nameDetailsLink.href = url;
+ nameDetailsLink.target = "<%=FrameNames.PERSPECTIVE_WORKAREA%>";
+ nameDetailsLink.appendChild(document.createTextNode(name));
+ column3.appendChild(nameDetailsLink);
+
+ column4.appendChild(document.createTextNode(getDefaultDisplayString(desc)));
+
+ column5.appendChild(document.createTextNode(status));
+
+ column6.appendChild(document.createTextNode(type));
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column2.className = "tablecells";
+ column3.className = "tablecells";
+ column4.className = "tablecells";
+ column5.className = "tablecells";
+ column6.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+ newRow.appendChild(column5);
+ newRow.appendChild(column6);
+ tableBody.appendChild(newRow);
+
+ }
+
+ function addPublisherAssertionResultRow(tableContainerId,nodeId,url,name,description)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+ var column5 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+ column0.appendChild(createHiddenElement("",nodeId));
+
+ column1.appendChild(document.createTextNode("<%=uddiPerspective.getMessage("FORM_LABEL_THIS_BUSINESS")%>"));
+
+ var direction = document.createElement("select");
+ direction.id = "label_publisher_assertion_direction";
+ direction.name = "<%=UDDIActionInputs.PUBLISHER_ASSERTIONS_DIRECTION%>";
+ direction.className = "selectlist";
+ direction.options[0] = new Option("<%=uddiPerspective.getMessage("FORM_OPTION_ASSERTION_DIRECTION_FROM")%>", "<%=String.valueOf(UDDIActionInputs.DIRECTION_FROM)%>");
+ direction.options[1] = new Option("<%=uddiPerspective.getMessage("FORM_OPTION_ASSERTION_DIRECTION_TO")%>", "<%=String.valueOf(UDDIActionInputs.DIRECTION_TO)%>");
+ column2.appendChild(direction);
+
+ var nameDetailsLink = document.createElement("a");
+ nameDetailsLink.href = url;
+ nameDetailsLink.target = "<%=FrameNames.PERSPECTIVE_WORKAREA%>";
+ nameDetailsLink.appendChild(document.createTextNode(name));
+ column3.appendChild(nameDetailsLink);
+
+ column4.appendChild(document.createTextNode(getDefaultDisplayString(description)));
+
+ var assertionType = document.createElement("select");
+ assertionType.id = "label_publisher_assertion_type";
+ assertionType.name = "<%=UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE%>";
+ assertionType.className = "selectlist";
+ assertionType.options[0] = new Option("<%=uddiPerspective.getMessage("FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD")%>", "<%=String.valueOf(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE_PARENT_CHILD)%>");
+ assertionType.options[1] = new Option("<%=uddiPerspective.getMessage("FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER")%>", "<%=String.valueOf(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE_PEER_TO_PEER)%>");
+ assertionType.options[2] = new Option("<%=uddiPerspective.getMessage("FORM_OPTION_ASSERTION_TYPE_IDENTITY")%>", "<%=String.valueOf(UDDIActionInputs.PUBLISHER_ASSERTIONS_TYPE_IDENTITY)%>");
+ column5.appendChild(assertionType);
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column2.className = "tablecells";
+ column3.className = "tablecells";
+ column4.className = "tablecells";
+ column5.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+ newRow.appendChild(column5);
+ tableBody.appendChild(newRow);
+ }
+
+ function setFormLocationAndSubmit(form,location)
+ {
+ form.action = location;
+ if (handleSubmit(form))
+ {
+ processResultTable("<%=publisherAssertionsBusiness%>", "<%=UDDIActionInputs.PUBLISHER_ASSERTIONS_SELECTED_BUS_ID%>", form, false);
+ form.submit();
+ }
+ }
+
+ function checkTableEntriesAndSubmit(tableContainerId,form,location)
+ {
+ if (getNumberOfSelections(tableContainerId) > 0) {
+ setFormLocationAndSubmit(form,location);
+ return;
+ }
+ alert("<%=controller.getUDDIPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+
+ function checkTableSizeAndSubmit(tableContainerId,form,location)
+ {
+ var table = getTable(tableContainerId);
+ if (table.rows.length > numberOfHeaderRows) {
+ setFormLocationAndSubmit(form,location);
+ return;
+ }
+ alert("<%=controller.getUDDIPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <div id="publisherAssertions">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ShowPublisherAssertionsActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+
+<%
+ String titleImagePath = "uddi/images/publisher_assertions_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_MANAGE_PUBLISHER_ASSERTIONS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <table width="90%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divPublisherAssertionTable%>','<%=xdivPublisherAssertionTable%>')"><img name="<%=xdivPublisherAssertionTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_ASSERTIONS")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divPublisherAssertionTable%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=divPublisherAssertionTable%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=((BusinessElement)selectedElement).getBusinessEntity().getDefaultNameString()%></th>
+ <th class="headercolor"><label for="label_publisher_assertion_direction"><%=uddiPerspective.getMessage("FORM_LABEL_DIRECTION")%></label></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_BUSINESS")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_STATUS")%></th>
+ <th class="headercolor"><label for="label_publisher_assertion_type"><%=uddiPerspective.getMessage("FORM_LABEL_ASSERTION_TYPE")%></label></th>
+ </tr>
+ </table>
+ <table width="90%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" align="left" nowrap class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC")%>
+ </td>
+ </tr>
+ </table>
+ </div>
+
+<%
+ boolean tableHasErrors = !formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS);
+ String[] busSpecificInfo = {"FORM_LABEL_BUSINESSES",(new Boolean(tableHasErrors)).toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES),"publisherAssertions",UDDIActionInputs.QUERY_INPUT_ADD_PUBLISHER_ASSERTIONS};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId(publisherAssertionsBusiness);
+ sectionHeaderInfo.setOtherProperties(busSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjectsPublisherAssertions_table.jsp" flush="true"/>
+
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId(pubAssertionForm);
+%>
+<jsp:include page="authentication_table.jsp" flush="true"/>
+ <br>
+ <table>
+ <tr>
+ <td>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS")%>" onClick="setFormLocationAndSubmit(this.form,'<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ShowPublisherAssertionsActionJSP.jsp"))%>')" class="button">
+ </td>
+ <td>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS")%>" onClick="checkTableEntriesAndSubmit('<%=divPublisherAssertionTable%>',this.form,'<%=response.encodeURL(controller.getPathWithContext("uddi/actions/CompletePublisherAssertionsActionJSP.jsp"))%>')" class="button">
+ </td>
+ <td>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS")%>" onClick="checkTableSizeAndSubmit('<%=publisherAssertionsBusiness%>',this.form,'<%=response.encodeURL(controller.getPathWithContext("uddi/actions/AddPublisherAssertionsActionJSP.jsp"))%>')" class="button">
+ </td>
+ <td>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS")%>" onClick="checkTableEntriesAndSubmit('<%=divPublisherAssertionTable%>',this.form,'<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RemovePublisherAssertionsActionJSP.jsp"))%>')" class="button">
+ </td>
+ </tr>
+ </table>
+ </form>
+
+ </div>
+ </div>
+<script language="javascript">
+ populateAssertionTable();
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManageReferencedServicesForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManageReferencedServicesForm.jsp
new file mode 100644
index 000000000..d5dbfd314
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ManageReferencedServicesForm.jsp
@@ -0,0 +1,231 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.service.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+ BusinessElement busElement = (BusinessElement)selectedNode.getTreeElement();
+%>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request">
+<%
+ String sk = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ subQueryKeyProperty.setSubQueryKey(sk);
+%>
+</jsp:useBean>
+<html>
+<head>
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_MANAGE_REFERENCED_SERVICES")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/results.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+<%
+ if (!regElement.isLoggedIn())
+ {
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ document.getElementById("manageReferencedServicesAuthentication").style.display = "";
+<%
+ }
+ String subQueryKey = subQueryKeyProperty.getSubQueryKey();
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKey);
+ Vector referencedServices = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES);
+ if (referencedServices == null)
+ {
+ referencedServices = new Vector();
+ BusinessEntity businessEntity = busElement.getBusinessEntity();
+ String businessKey = businessEntity.getBusinessKey();
+ BusinessServices businessSvcs = businessEntity.getBusinessServices();
+ if (businessSvcs != null)
+ {
+ Vector businessSvcVector = businessSvcs.getBusinessServiceVector();
+ for (int i=0;i<businessSvcVector.size();i++)
+ {
+ BusinessService busService = (BusinessService)businessSvcVector.elementAt(i);
+ if (!busService.getBusinessKey().equals(businessKey))
+ {
+ ListElement listElement = new ListElement(busService);
+ referencedServices.addElement(listElement);
+ }
+ }
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES,referencedServices);
+ }
+
+ for (int i=0;i<referencedServices.size();i++)
+ {
+ ListElement listElement = (ListElement)referencedServices.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKey,UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES,i,UDDIActionInputs.QUERY_ITEM_SERVICES,false);
+ BusinessService bs = (BusinessService)listElement.getObject();
+ String name = bs.getDefaultNameString();
+ String description = bs.getDefaultDescriptionString();
+%>
+ addResultRow("manageReferencedServicesReferences",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(description)%>");
+<%
+ }
+
+ Vector services = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SERVICES);
+ if (services != null)
+ {
+ for (int i=0;i<services.size();i++)
+ {
+ ListElement listElement = (ListElement)services.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKey,UDDIActionInputs.QUERY_INPUT_SERVICES,i,UDDIActionInputs.QUERY_ITEM_SERVICES,false);
+ BusinessService bs = (BusinessService)listElement.getObject();
+ String name = bs.getDefaultNameString();
+ String description = bs.getDefaultDescriptionString();
+%>
+ addResultRow("manageReferencedServicesServices",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(description)%>");
+<%
+ }
+ }
+%>
+ }
+
+ function processReferenceTable(tableContainerId,inputName,form)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var inputs = table.rows[i].getElementsByTagName("input");
+ form.appendChild(createHiddenElement(inputName,inputs.item(0).checked));
+ }
+ }
+
+ function processForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processReferenceTable("manageReferencedServicesReferences","<%=UDDIActionInputs.REFERENCED_SERVICE_SELECT_STATE%>",form);
+ processResultTable("manageReferencedServicesServices","<%=UDDIActionInputs.NODEID_SERVICE%>",form,false);
+ form.submit();
+ }
+ }
+
+ function processAddServices(form)
+ {
+ var table = getTable("manageReferencedServicesServices");
+ if (table.rows.length == numberOfHeaderRows)
+ alert("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_ERROR_NO_SERVICES"))%>");
+ else
+ {
+ form.<%=UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION%>.value = "<%=UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION_ADD%>";
+ processForm(form);
+ }
+ }
+
+ function processRemoveReferences(form)
+ {
+ var numberOfSelections = getNumberOfSelections("manageReferencedServicesReferences");
+ if (getNumberOfSelections("manageReferencedServicesReferences") == 0)
+ alert("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_ERROR_NO_REFERENCE_SELECTED"))%>");
+ else
+ {
+ form.<%=UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION%>.value = "<%=UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION_REMOVE%>";
+ processForm(form);
+ }
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <div id="manageReferencedServices">
+<%
+ String titleImagePath = "uddi/images/referenced_services_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_MANAGE_REFERENCED_SERVICES");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ManageReferencedServicesActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" style="margin-top:0;">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <input type="hidden" name="<%=UDDIActionInputs.MANAGE_REFERENCED_SERVICES_OPERATION%>">
+ <table width="90%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ String[] projectionsSpecificInfo = {"FORM_LABEL_REFERENCED_SERVICES",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES),"manageReferencedServices",UDDIActionInputs.QUERY_INPUT_REFERENCED_SERVICES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("manageReferencedServicesReferences");
+ sectionHeaderInfo.setOtherProperties(projectionsSpecificInfo);
+ sectionHeaderInfo.enableDynamic(false);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ String[] servicesSpecificInfo = {"FORM_OPTION_SERVICES",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES),"manageReferencedServices",UDDIActionInputs.QUERY_INPUT_SERVICES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("manageReferencedServicesServices");
+ sectionHeaderInfo.setOtherProperties(servicesSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("manageReferencedServicesAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" align="left" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_ADD_SERVICES")%>" onClick="processAddServices(this.form)" class="button">
+ </td>
+ <td height=30 valign="bottom" align="left" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_REMOVE_REFERENCES")%>" onClick="processRemoveReferences(this.form)" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenPrivateRegistryForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenPrivateRegistryForm.jsp
new file mode 100644
index 000000000..ac44704f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenPrivateRegistryForm.jsp
@@ -0,0 +1,111 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+OpenRegistryTool openRegistryTool = (OpenRegistryTool)(uddiMainNode.getCurrentToolManager().getSelectedTool());
+%>
+<script language="javascript">
+ function toInquiryURL()
+ {
+ var inputHost = document.getElementById("privateRegistryHost");
+ var inputPort = document.getElementById("privateRegistryPort");
+ var inputInquiryURL = document.getElementById("privateRegistryInquiryURL");
+ var inputPublishURL = document.getElementById("privateRegistryPublishURL");
+ inputInquiryURL.value = "http://" + inputHost.value + ":" + inputPort.value + "/uddisoap/inquiryapi";
+ inputPublishURL.value = "http://" + inputHost.value + ":" + inputPort.value + "/uddisoap/publishapi";
+ }
+</script>
+<form id="openPrivateRegistryForm" action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/OpenRegistryActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)" style="display:none;">
+ <input type="hidden" id="privateRegistryPublishURL" name="<%=UDDIActionInputs.PUBLISH_URL%>">
+ <input type="hidden" name="<%=UDDIActionInputs.UDDI_USERNAME%>" value="UNAUTHENTICATED">
+ <input type="hidden" name="<%=UDDIActionInputs.UDDI_PASSWORD%>" value="">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom">
+ <label for="privateRegistryName"><%=uddiPerspective.getMessage("FORM_LABEL_REGISTRY_NAME")%></label>
+ <%
+ if (!openRegistryTool.isInputValid(UDDIActionInputs.REGISTRY_NAME))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="privateRegistryName" name="<%=UDDIActionInputs.REGISTRY_NAME%>" value="<%=uddiPerspective.getMessage("DEFAULT_REGISTRY_NAME_WEBSPHERE")%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=25 valign="bottom">
+ <label for="privateRegistryHost"><%=uddiPerspective.getMessage("FORM_LABEL_REGISTRY_HOST")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="privateRegistryHost" value="localhost" onkeyup="javascript:toInquiryURL()" onpaste="javascript:toInquiryURL()" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=25 valign="bottom">
+ <label for="privateRegistryPort"><%=uddiPerspective.getMessage("FORM_LABEL_REGISTRY_PORT")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="privateRegistryPort" value="9080" onkeyup="javascript:toInquiryURL()" onpaste="javascript:toInquiryURL()" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="privateRegistryInquiryURL"><%=uddiPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%></label>
+ <%
+ if (!openRegistryTool.isInputValid(UDDIActionInputs.INQUIRY_URL))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="privateRegistryInquiryURL" name="<%=UDDIActionInputs.INQUIRY_URL%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=40 valign="bottom">
+ <input type="checkbox" id="privateRegistryCategories" name="<%=UDDIActionInputs.CHECK_USER_DEFINED_CATEGORIES%>"><label for="privateRegistryCategories"><%=uddiPerspective.getMessage("FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES")%></label>
+ </td>
+ </tr>
+ </table>
+ <jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+</form>
+<script language="javascript">
+ toInquiryURL();
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenRegistryForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenRegistryForm.jsp
new file mode 100644
index 000000000..e3216b31c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/OpenRegistryForm.jsp
@@ -0,0 +1,196 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+OpenRegistryTool openRegistryTool = (OpenRegistryTool)(uddiMainNode.getCurrentToolManager().getSelectedTool());
+Enumeration favoriteRegistryElements = openRegistryTool.getFavoriteRegistryElements();
+Vector favoriteRegistryList = new Vector();
+while (favoriteRegistryElements.hasMoreElements())
+ favoriteRegistryList.addElement(favoriteRegistryElements.nextElement());
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_OPEN_REGISTRY")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+ <jsp:include page="/scripts/formutils.jsp" flush="true"/>
+ <script language="javascript">
+ function fillFavoriteInfo(favoriteRegistrySelect)
+ {
+ var selectedFavoriteRegistryIndex = favoriteRegistrySelect.selectedIndex-1;
+ if (selectedFavoriteRegistryIndex >= 0)
+ {
+ var form = document.getElementById("openRegistryForm");
+ switch (selectedFavoriteRegistryIndex)
+ {
+ <%
+ for (int i=0;i<favoriteRegistryList.size();i++)
+ {
+ FavoritesUDDIRegistryElement favRegElement = (FavoritesUDDIRegistryElement)favoriteRegistryList.elementAt(i);
+ %>
+ case <%=i%>:
+ form.<%=UDDIActionInputs.REGISTRY_NAME%>.value = "<%=HTMLUtils.JSMangle(favRegElement.getName())%>";
+ form.<%=UDDIActionInputs.INQUIRY_URL%>.value = "<%=HTMLUtils.JSMangle(favRegElement.getInquiryURL())%>";
+ break;
+ <%
+ }
+ %>
+ }
+ }
+ }
+
+ function setDefaults()
+ {
+ var form = document.getElementById("openRegistryForm");
+ form.<%=UDDIActionInputs.REGISTRY_NAME%>.value = "<%=HTMLUtils.JSMangle((String)openRegistryTool.getProperty(UDDIActionInputs.REGISTRY_NAME))%>";
+ form.<%=UDDIActionInputs.INQUIRY_URL%>.value = "<%=HTMLUtils.JSMangle((String)openRegistryTool.getProperty(UDDIActionInputs.INQUIRY_URL))%>";
+ showMainForm();
+ }
+
+ function showMainForm()
+ {
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function toggleRegistryType(isPrivateRegistry)
+ {
+ var openRegistryForm = document.getElementById("openRegistryForm");
+ var openPrivateRegistryForm = document.getElementById("openPrivateRegistryForm");
+ if (isPrivateRegistry)
+ {
+ openRegistryForm.style.display = "none";
+ openPrivateRegistryForm.style.display = "";
+ }
+ else
+ {
+ openRegistryForm.style.display = "";
+ openPrivateRegistryForm.style.display = "none";
+ }
+ }
+ </script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+ <%
+ String titleImagePath = "uddi/images/open_registry_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_OPEN_REGISTRY");
+ %>
+ <%@ include file="/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_OPEN_REGISTRY_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=40 valign="bottom">
+ <input type="checkbox" id="registryType" onClick="javascript:toggleRegistryType(this.checked)"><label for="registryType"><%=uddiPerspective.getMessage("FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY")%></label>
+ </td>
+ </tr>
+ </table>
+ <form id="openRegistryForm" action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/OpenRegistryActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" valign="bottom" nowrap height=25>
+ <label for="favoriteRegistry"><%=uddiPerspective.getMessage("FORM_LABEL_FAVORITE_REGISTRY")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td height=25 valign="bottom">
+ <select id="favoriteRegistry" onChange="fillFavoriteInfo(this)" class="selectlist">
+ <option value="" selected>
+ <%
+ for (int i=0;i<favoriteRegistryList.size();i++)
+ {
+ FavoritesUDDIRegistryElement favRegElement = (FavoritesUDDIRegistryElement)favoriteRegistryList.elementAt(i);
+ %>
+ <option value="<%=favRegElement.getName()%>"><%=favRegElement.getName()%>
+ <%
+ }
+ %>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=25 valign="bottom">
+ <label for="input_registry_name"><%=uddiPerspective.getMessage("FORM_LABEL_REGISTRY_NAME")%></label>
+ <%
+ if (!openRegistryTool.isInputValid(UDDIActionInputs.REGISTRY_NAME))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="input_registry_name" name="<%=UDDIActionInputs.REGISTRY_NAME%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="input_inquiry_url"><%=uddiPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%></label>
+ <%
+ if (!openRegistryTool.isInputValid(UDDIActionInputs.INQUIRY_URL))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="input_inquiry_url" name="<%=UDDIActionInputs.INQUIRY_URL%>" class="textenter">
+ </td>
+ </tr>
+ </table>
+ <jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+ <script language="javascript">
+ setDefaults();
+ </script>
+ <jsp:include page="/uddi/forms/OpenPrivateRegistryForm.jsp" flush="true"/>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ProcessUDDIFramesetsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ProcessUDDIFramesetsForm.jsp
new file mode 100644
index 000000000..2b3ede0eb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ProcessUDDIFramesetsForm.jsp
@@ -0,0 +1,27 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request"/>
+<form action="<%=response.encodeURL(controller.getPathWithContext(formAction.toString()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" style="margin-top:0;margin-bottom:0">
+ <input name="<%=ActionInputs.FRAME_NAME%>" type="hidden" value="<%=formFrameName%>">
+ <input name="<%=UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>" type="hidden" value="<%=uddiPerspective.getPerspectiveContentFramesetCols()%>">
+ <input name="<%=UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>" type="hidden" value="<%=uddiPerspective.getActionsContainerFramesetRows()%>">
+</form>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegDetailsForm.jsp
new file mode 100644
index 000000000..dc93a703b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegDetailsForm.jsp
@@ -0,0 +1,263 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ FavoritesPerspective favPerspective = controller.getFavoritesPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // The selected node must be a registry node.
+ Node registryNode = navigatorManager.getSelectedNode();
+ ToolManager currentToolManager = registryNode.getCurrentToolManager();
+ FormTool formTool = (FormTool)(currentToolManager.getSelectedTool());
+ RegistryElement regElement = (RegistryElement)registryNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_REGISTRY_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/detailstables.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<script language="javascript">
+ function setDefaults()
+ {
+ var registryDetailsNameTable = getTable("registryDetailsName");
+<%
+ String name = regElement.getName();
+ boolean isError = !formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME);
+%>
+ addDetailsSingleItemRow("registryDetailsName",false);
+ setDetailsNameSingleItemRow("registryDetailsName","<%=HTMLUtils.JSMangle(name)%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(registryDetailsNameTable.rows[numberOfHeaderRows],"errantRow");
+<%
+ }
+
+ Enumeration userDefinedCategories = regElement.getUserDefinedCategories();
+ boolean containsUserDefinedCategories;
+ if (userDefinedCategories != null && userDefinedCategories.hasMoreElements())
+ {
+%>
+ var registryCategoriesTable = getTable("registryUserDefinedCategories");
+<%
+ containsUserDefinedCategories = true;
+ ArrayList userDefinedCategoriesList = new ArrayList();
+ do
+ {
+ userDefinedCategoriesList.add(userDefinedCategories.nextElement());
+ } while (userDefinedCategories.hasMoreElements());
+ CategoryModel[] userDefinedCategoriesArray = new CategoryModel[userDefinedCategoriesList.size()];
+ userDefinedCategoriesList.toArray(userDefinedCategoriesArray);
+ QuickSort.sort(userDefinedCategoriesArray,0,userDefinedCategoriesArray.length-1);
+ StringBuffer fileName = new StringBuffer();
+ for (int i=0;i<userDefinedCategoriesArray.length;i++)
+ {
+ name = userDefinedCategoriesArray[i].getDisplayName();
+ String tModelKey = userDefinedCategoriesArray[i].getTModelKey();
+ boolean checked = userDefinedCategoriesArray[i].isChecked();
+ fileName.setLength(0);
+ if (userDefinedCategoriesArray[i].isDataLoaded())
+ fileName.append(userDefinedCategoriesArray[i].getCategoryKey()).append(".txt");
+ else
+ fileName.append(controller.getMessage("TABLE_BLANK_PLACEHOLDER"));
+ boolean hasError = !formTool.isRowInputValid(UDDIActionInputs.USER_DEFINED_CATEGORIES,tModelKey);
+%>
+ addDetailsUserDefinedCategoryRow("registryUserDefinedCategories","<%=tModelKey%>","<%=HTMLUtils.JSMangle(name)%>",<%=checked%>,"<%=HTMLUtils.JSMangle(fileName.toString())%>",<%=hasError%>);
+<%
+ if (hasError)
+ {
+%>
+ highlightErrantRow(registryCategoriesTable.rows[numberOfHeaderRows+<%=i%>],"errantRow");
+<%
+ }
+ }
+ }
+ else
+ containsUserDefinedCategories = false;
+%>
+ showMainForm();
+ }
+
+ function showMainForm()
+ {
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function processForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processDetailsSingleItemTable("registryDetailsName","<%=UDDIActionInputs.NAME_MODIFIED%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_REGISTRY_NAME%>",form);
+ return true;
+ }
+ return false;
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateRegistryActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_REGISTRY_DETAILS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_DETAILS_EDITABLE",registryNode.getNodeName())%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("registryDetailsName");
+ sectionHeaderInfo.setOtherProperties(uddiPerspective.getMessage("FORM_LABEL_REGISTRY_NAME"));
+%>
+<jsp:include page="/uddi/forms/detailsSingleItem_table.jsp" flush="true"/>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_INQUIRY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=regElement.getInquiryURL()%>
+ </td>
+ </tr>
+ </table>
+<%
+ String publishURL = regElement.getPublishURL();
+ if (Validator.validateURL(publishURL))
+ {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=regElement.getPublishURL()%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+
+ if (containsUserDefinedCategories)
+ {
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("registryUserDefinedCategories");
+%>
+<jsp:include page="/uddi/forms/ud_categories_table.jsp" flush="true"/>
+<%
+ }
+ if (regElement.isLoggedIn())
+ {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_USERID")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=regElement.getUserId()%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+
+ String registrationURL = regElement.getRegistrationURL();
+ if (Validator.validateURL(registrationURL))
+ {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table>
+ <tr>
+ <td align="left">
+ <%=favPerspective.getMessage("FORM_LABEL_REGISTRY_URL",registrationURL)%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+%>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </div>
+ </form>
+ </div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesAdvancedForm.jsp
new file mode 100644
index 000000000..a907d0f14
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesAdvancedForm.jsp
@@ -0,0 +1,93 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="findBusinessesAdvanced">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindBusinessesAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processFindBusinessesAdvancedForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="90%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=20 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_FIND_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=35 valign="bottom">
+ <input type="checkbox" id="input_find_businesses_advance_owned" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED%>" onClick="toggleAdvancedAuthenticationSection(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,this.checked)">
+ <label for="input_find_businesses_advance_owned"><%=uddiPerspective.getMessage("FORM_LABEL_OWNED")%></label>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",Boolean.FALSE.toString()};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedIdentifiers");
+%>
+<jsp:include page="/uddi/forms/identifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<%
+ String[] siSpecificInfo = {"FORM_LABEL_SERVICE_INTERFACES",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES),"findBusinessesAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedServiceInterfaces");
+ sectionHeaderInfo.setOtherProperties(siSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedDiscoveryURLs");
+ sectionHeaderInfo.setOtherProperties(new Boolean(false));
+%>
+<jsp:include page="/uddi/forms/discoveryURLs_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedFindQualifiers");
+%>
+<jsp:include page="/uddi/forms/findQualifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findBusinessesAdvancedCommon");
+%>
+<jsp:include page="/uddi/forms/advancedCommon_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesForm.jsp
new file mode 100644
index 000000000..f9148349a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesForm.jsp
@@ -0,0 +1,47 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="findBusinesses" style="display:none;">
+ <form name="findBusinessesStyle">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_SEARCH_TYPE")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_find_business_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_find_business_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_find_business_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_find_business_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ <input type="radio" id="radio_find_business_uuid" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=UDDIActionInputs.QUERY_STYLE_UUID%>)"><label for="radio_find_business_uuid"><%=uddiPerspective.getMessage("FORM_RADIO_UUID")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegFindBusinessesSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegFindBusinessesAdvancedForm.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.setContainerId("findBusinessUUID");
+ String[] otherProperties = {"uddi/actions/RegFindBusinessUUIDActionJSP.jsp",UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY,"FORM_LABEL_FIND_BUSINESS_UUID_DESC"};
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/RegFindUUIDForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesSimpleForm.jsp
new file mode 100644
index 000000000..2c7e34ad3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindBusinessesSimpleForm.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="findBusinessesSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindBusinessesSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="input_find_businesses_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="input_find_businesses_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindForm.jsp
new file mode 100644
index 000000000..a3cf1c0d7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindForm.jsp
@@ -0,0 +1,705 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.service.*,
+ org.uddi4j.datatype.tmodel.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+%>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request">
+<%
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ subQueryKeyProperty.setSubQueryKey(subQueryKey);
+%>
+</jsp:useBean>
+<%
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ Node regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_REGISTRY_FIND")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<script language="javascript">
+ var sectionIds = ["findBusinesses","findServices","findServiceInterfaces"];
+ var findBusinessesSectionIds = ["findBusinessesSimple","findBusinessesAdvanced","findBusinessUUID"];
+ var findServicesSectionIds = ["findServicesSimple","findServicesAdvanced","findServiceUUID"];
+ var findServiceInterfacesSectionIds = ["findServiceInterfacesSimple","findServiceInterfacesAdvanced","findServiceInterfaceUUID"];
+ var styleForms = ["findBusinessesStyle","findServicesStyle","findServiceInterfacesStyle"];
+ var authenticationSectionIds = ["findBusinessesAdvancedAuthentication","findServicesAdvancedAuthentication","findServiceInterfacesAdvancedAuthentication"];
+
+ function validateQueryName()
+ {
+<%
+ String subQueryKeyValue = subQueryKeyProperty.getSubQueryKey();
+ boolean isSubQuery = (subQueryKeyValue != null && subQueryKeyValue.length() > 0);
+%>
+ if (<%=isSubQuery%>)
+ {
+ // Subqueries must have a name which is different from that of the current query or the closest query enclosing this object.
+<%
+ String currentQueryName = "";
+ if (selectedNode instanceof QueryNode)
+ currentQueryName = selectedNode.getNodeName();
+ else if (selectedNode instanceof BusinessNode)
+ {
+ Node parentNode = selectedNode.getParent();
+ if (parentNode instanceof QueryNode)
+ currentQueryName = parentNode.getNodeName();
+ }
+%>
+ var queryName = document.getElementById("queryName").value;
+ if (queryName == "<%=HTMLUtils.JSMangle(currentQueryName)%>")
+ {
+ alert("<%=uddiPerspective.getMessage("MSG_ERROR_QUERY_NAME_CONFLICT")%>");
+ return false;
+ }
+ }
+ return true;
+ }
+
+ function processForm(form)
+ {
+ if (!handleSubmit(form))
+ return false;
+ if (!validateQueryName())
+ return false;
+ form.<%=UDDIActionInputs.SUBQUERY_KEY%>.value = "<%=subQueryKeyProperty.getSubQueryKey()%>";
+ form.<%=UDDIActionInputs.QUERY_NAME%>.value = document.getElementById("queryName").value;
+ return true;
+ }
+
+ function processFindBusinessesAdvancedForm(form)
+ {
+ if (processForm(form))
+ {
+ processLanguageInputTable("findBusinessesAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processNameFindQualifiers("findBusinessesAdvancedNames",form);
+ processIdentifierTable("findBusinessesAdvancedIdentifiers",form);
+ processCategoryTable("findBusinessesAdvancedCategories",form,true);
+ processResultTable("findBusinessesAdvancedServiceInterfaces","<%=UDDIActionInputs.NODEID_SERVICE_INTERFACE%>",form,false);
+ processDiscoveryURLTable("findBusinessesAdvancedDiscoveryURLs",form);
+ processFindQualifierTable("findBusinessesAdvancedFindQualifiers",form);
+ return true;
+ }
+ return false;
+ }
+
+ function processFindServicesAdvancedForm(form)
+ {
+ if (processForm(form))
+ {
+ processResultTable("findServicesAdvancedBusiness","<%=UDDIActionInputs.NODEID_BUSINESS%>",form,false);
+ processLanguageInputTable("findServicesAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processNameFindQualifiers("findServicesAdvancedNames",form);
+ processCategoryTable("findServicesAdvancedCategories",form,false);
+ processResultTable("findServicesAdvancedServiceInterfaces","<%=UDDIActionInputs.NODEID_SERVICE_INTERFACE%>",form,false);
+ processFindQualifierTable("findServicesAdvancedFindQualifiers",form);
+ return true;
+ }
+ return false;
+ }
+
+ function processFindServiceInterfacesAdvancedForm(form)
+ {
+ if (processForm(form))
+ {
+ processResultTable("findServiceInterfacesAdvancedService","<%=UDDIActionInputs.NODEID_SERVICE%>",form,false);
+ processNameFindQualifiers("findServiceInterfacesAdvancedName",form);
+ processIdentifierTable("findServiceInterfacesAdvancedIdentifiers",form);
+ processCategoryTable("findServiceInterfacesAdvancedCategories",form,false);
+ processFindQualifierTable("findServiceInterfacesAdvancedFindQualifiers",form);
+ return true;
+ }
+ return false;
+ }
+
+ function setDefaults()
+ {
+ // Set the query name
+ document.getElementById("queryName").value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_NAME))%>";
+ var searchFor = document.getElementById("searchFor");
+ searchFor.selectedIndex = <%=formToolPI.getProperty(UDDIActionInputs.QUERY_ITEM)%>;
+ setDefaultsForFindBusinessesForms();
+ setDefaultsForFindServicesForms();
+ setDefaultsForFindServiceInterfacesForms();
+ showMainForm(searchFor.value);
+ }
+
+ function setAuthenticationSectionDefaults(advancedForm,queryItemIndex,isOwnedChecked)
+ {
+<%
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ advancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED%>.checked = isOwnedChecked;
+ advancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ advancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ advancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ toggleAdvancedAuthenticationSection(queryItemIndex,isOwnedChecked);
+ }
+
+ function setAdvancedCommonSectionDefaults(form,maxSearchSet,maxResults)
+ {
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET%>.value = maxSearchSet;
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS%>.value = maxResults;
+ }
+
+ function setDefaultsForFindBusinessesForms()
+ {
+ // Initialize the findBusinesses form.
+<%
+ String findBusinessesStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>]].<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>[<%=findBusinessesStyleIndex%>].checked = true;
+ var findBusinessesSimpleSection = document.getElementById(findBusinessesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var findBusinessesSimpleForm = findBusinessesSimpleSection.getElementsByTagName("form").item(0);
+ findBusinessesSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME))%>";
+
+ // Advanced form details.
+ var findBusinessesAdvancedSection = document.getElementById(findBusinessesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var findBusinessesAdvancedForm = findBusinessesAdvancedSection.getElementsByTagName("form").item(0);
+ var isOwnedChecked = <%=(formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_OWNED) != null)%>;
+ setAuthenticationSectionDefaults(findBusinessesAdvancedForm,<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,isOwnedChecked);
+<%
+ Vector busNameVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ if (busNameVector != null)
+ {
+ for (int i=0;i<busNameVector.size();i++)
+ {
+ Name name = (Name)busNameVector.elementAt(i);
+%>
+ addLanguageInputRow("findBusinessesAdvancedNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("findBusinessesAdvancedNames",<%=i%>,"<%=HTMLUtils.JSMangle(name.getLang())%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ }
+ }
+
+ IdentifierBag busIdBag = (IdentifierBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ if (busIdBag != null)
+ {
+ Vector keyedReferenceVector = busIdBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addIdentifierRow("findBusinessesAdvancedIdentifiers");
+ setIdentifierRowSettings("findBusinessesAdvancedIdentifiers",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ CategoryBag busCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ if (busCatBag != null)
+ {
+ Vector keyedReferenceVector = busCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("findBusinessesAdvancedCategories");
+ setCategoryRowSettings("findBusinessesAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ Vector busServiceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES);
+ Vector busServiceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES_COPY);
+ if (busServiceInterfaces != null)
+ {
+ if (busServiceInterfacesCopy == null)
+ busServiceInterfacesCopy = new Vector();
+ else
+ busServiceInterfacesCopy.removeAllElements();
+ for (int i=0;i<busServiceInterfaces.size();i++)
+ {
+ ListElement listElement = (ListElement)busServiceInterfaces.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES,i,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,false);
+ TModel tModel = (TModel)listElement.getObject();
+ busServiceInterfacesCopy.addElement(busServiceInterfaces.elementAt(i));
+%>
+ addResultRow("findBusinessesAdvancedServiceInterfaces",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(tModel.getNameString())%>","<%=HTMLUtils.JSMangle(tModel.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES_COPY,busServiceInterfacesCopy);
+ }
+ else
+ {
+ busServiceInterfaces = new Vector();
+ busServiceInterfacesCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES,busServiceInterfaces);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_SERVICE_INTERFACES_COPY,busServiceInterfacesCopy);
+ }
+
+ DiscoveryURLs busDiscoveryURLs = (DiscoveryURLs)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ if (busDiscoveryURLs != null)
+ {
+ Vector discoveryURLVector = busDiscoveryURLs.getDiscoveryURLVector();
+ for (int i=0;i<discoveryURLVector.size();i++)
+ {
+ DiscoveryURL discoveryURL = (DiscoveryURL)discoveryURLVector.elementAt(i);
+%>
+ addDiscoveryURLRow("findBusinessesAdvancedDiscoveryURLs");
+ setDiscoveryURLRowSettings("findBusinessesAdvancedDiscoveryURLs",<%=i%>,"<%=HTMLUtils.JSMangle(discoveryURL.getText())%>");
+<%
+ }
+ }
+
+ FindQualifiers busFindQualifiers = (FindQualifiers)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_FINDQUALIFIERS);
+ if (busFindQualifiers != null)
+ {
+ Vector findQualifierVector = busFindQualifiers.getFindQualifierVector();
+ for (int i=0;i<findQualifierVector.size();i++)
+ {
+ FindQualifier findQualifier = (FindQualifier)findQualifierVector.elementAt(i);
+%>
+ setFindQualifier("<%=HTMLUtils.JSMangle(findQualifier.getText())%>","findBusinessesAdvancedNames","findBusinessesAdvancedCategories","findBusinessesAdvancedFindQualifiers");
+<%
+ }
+ }
+%>
+ setAdvancedCommonSectionDefaults(findBusinessesAdvancedForm,"<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_SEARCH_SET))%>","<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_MAX_RESULTS))%>");
+
+ // UUID form details.
+ var findBusinessesUUIDSection = document.getElementById(findBusinessesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_UUID%>]);
+ var findBusinessesUUIDForm = findBusinessesUUIDSection.getElementsByTagName("form").item(0);
+ findBusinessesUUIDForm.<%=UDDIActionInputs.QUERY_INPUT_UUID_KEY%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY))%>";
+
+ showFindForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=findBusinessesStyleIndex%>);
+ }
+
+ function setDefaultsForFindServicesForms()
+ {
+ // Initialize the findServices form.
+<%
+ String findServicesStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>]].<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>[<%=findServicesStyleIndex%>].checked = true;
+ var findServicesSimpleSection = document.getElementById(findServicesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var findServicesSimpleForm = findServicesSimpleSection.getElementsByTagName("form").item(0);
+ findServicesSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))%>";
+
+ // Advanced form details.
+ var findServicesAdvancedSection = document.getElementById(findServicesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var findServicesAdvancedForm = findServicesAdvancedSection.getElementsByTagName("form").item(0);
+ var isOwnedChecked = <%=(formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_OWNED) != null)%>;
+ setAuthenticationSectionDefaults(findServicesAdvancedForm,<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,isOwnedChecked);
+<%
+ Vector serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ Vector serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY);
+ if (serviceBusiness != null)
+ {
+ if (serviceBusinessCopy == null)
+ serviceBusinessCopy = new Vector();
+ else
+ serviceBusinessCopy.removeAllElements();
+ for (int i=0;i<serviceBusiness.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceBusiness.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,i,UDDIActionInputs.QUERY_ITEM_BUSINESSES,false);
+ BusinessEntity be = (BusinessEntity)listElement.getObject();
+ serviceBusinessCopy.addElement(serviceBusiness.elementAt(i));
+%>
+ addResultRow("findServicesAdvancedBusiness",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(be.getDefaultNameString())%>","<%=HTMLUtils.JSMangle(be.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+ else
+ {
+ serviceBusiness = new Vector();
+ serviceBusinessCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,serviceBusiness);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+
+ Vector serviceNameVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ if (serviceNameVector != null)
+ {
+ for (int i=0;i<serviceNameVector.size();i++)
+ {
+ Name name = (Name)serviceNameVector.elementAt(i);
+%>
+ addLanguageInputRow("findServicesAdvancedNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("findServicesAdvancedNames",<%=i%>,"<%=HTMLUtils.JSMangle(name.getLang())%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ }
+ }
+
+ CategoryBag serviceCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ if (serviceCatBag != null)
+ {
+ Vector keyedReferenceVector = serviceCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("findServicesAdvancedCategories");
+ setCategoryRowSettings("findServicesAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ Vector serviceServiceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ Vector serviceServiceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY);
+ if (serviceServiceInterfaces != null)
+ {
+ if (serviceServiceInterfacesCopy == null)
+ serviceServiceInterfacesCopy = new Vector();
+ else
+ serviceServiceInterfacesCopy.removeAllElements();
+ for (int i=0;i<serviceServiceInterfaces.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceServiceInterfaces.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,i,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,false);
+ TModel tModel = (TModel)listElement.getObject();
+ serviceServiceInterfacesCopy.addElement(serviceServiceInterfaces.elementAt(i));
+%>
+ addResultRow("findServicesAdvancedServiceInterfaces",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(tModel.getNameString())%>","<%=HTMLUtils.JSMangle(tModel.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceServiceInterfacesCopy);
+ }
+ else
+ {
+ serviceServiceInterfaces = new Vector();
+ serviceServiceInterfacesCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,serviceServiceInterfaces);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceServiceInterfacesCopy);
+ }
+
+ FindQualifiers serviceFindQualifiers = (FindQualifiers)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_FINDQUALIFIERS);
+ if (serviceFindQualifiers != null)
+ {
+ Vector findQualifierVector = serviceFindQualifiers.getFindQualifierVector();
+ for (int i=0;i<findQualifierVector.size();i++)
+ {
+ FindQualifier findQualifier = (FindQualifier)findQualifierVector.elementAt(i);
+%>
+ setFindQualifier("<%=HTMLUtils.JSMangle(findQualifier.getText())%>","findServicesAdvancedNames","findServicesAdvancedCategories","findServicesAdvancedFindQualifiers");
+<%
+ }
+ }
+%>
+ setAdvancedCommonSectionDefaults(findServicesAdvancedForm,"<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_SEARCH_SET))%>","<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_MAX_RESULTS))%>");
+
+ // UUID form details.
+ var findServicesUUIDSection = document.getElementById(findServicesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_UUID%>]);
+ var findServicesUUIDForm = findServicesUUIDSection.getElementsByTagName("form").item(0);
+ findServicesUUIDForm.<%=UDDIActionInputs.QUERY_INPUT_UUID_KEY%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY))%>";
+
+ showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=findServicesStyleIndex%>);
+ }
+
+ function setDefaultsForFindServiceInterfacesForms()
+ {
+ // Initialize the findServiceInterfaces form.
+<%
+ String findServiceInterfacesStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>]].<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>[<%=findServiceInterfacesStyleIndex%>].checked = true;
+ var findServiceInterfacesSimpleSection = document.getElementById(findServiceInterfacesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var findServiceInterfacesSimpleForm = findServiceInterfacesSimpleSection.getElementsByTagName("form").item(0);
+ findServiceInterfacesSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME))%>";
+
+ // Advanced form details.
+ var findServiceInterfacesAdvancedSection = document.getElementById(findServiceInterfacesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var findServiceInterfacesAdvancedForm = findServiceInterfacesAdvancedSection.getElementsByTagName("form").item(0);
+
+ var isOwnedChecked = <%=(formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_OWNED) != null)%>;
+ setAuthenticationSectionDefaults(findServiceInterfacesAdvancedForm,<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,isOwnedChecked);
+ var isUseServiceChecked = <%=(formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE) != null)%>;
+ findServiceInterfacesAdvancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE%>.checked = isUseServiceChecked;
+ toggleFindServiceInterfacesAdvancedServiceParameters(findServiceInterfacesAdvancedForm);
+ findServiceInterfacesAdvancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME))%>";
+
+<%
+ Vector siService = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE);
+ Vector siServiceCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE_COPY);
+ if (siService != null)
+ {
+ if (siServiceCopy == null)
+ siServiceCopy = new Vector();
+ else
+ siServiceCopy.removeAllElements();
+ for (int i=0;i<siService.size();i++)
+ {
+ ListElement listElement = (ListElement)siService.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE,i,UDDIActionInputs.QUERY_ITEM_SERVICES,false);
+ BusinessService bs = (BusinessService)listElement.getObject();
+ siServiceCopy.addElement(siService.elementAt(i));
+%>
+ addResultRow("findServiceInterfacesAdvancedService",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(bs.getDefaultNameString())%>","<%=HTMLUtils.JSMangle(bs.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE_COPY,siServiceCopy);
+ }
+ else
+ {
+ siService = new Vector();
+ siServiceCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE,siService);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE_COPY,siServiceCopy);
+ }
+
+ IdentifierBag siIdBag = (IdentifierBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ if (siIdBag != null)
+ {
+ Vector keyedReferenceVector = siIdBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addIdentifierRow("findServiceInterfacesAdvancedIdentifiers");
+ setIdentifierRowSettings("findServiceInterfacesAdvancedIdentifiers",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ CategoryBag siCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ if (siCatBag != null)
+ {
+ Vector keyedReferenceVector = siCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("findServiceInterfacesAdvancedCategories");
+ setCategoryRowSettings("findServiceInterfacesAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ FindQualifiers siFindQualifiers = (FindQualifiers)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_FINDQUALIFIERS);
+ if (siFindQualifiers != null)
+ {
+ Vector findQualifierVector = siFindQualifiers.getFindQualifierVector();
+ for (int i=0;i<findQualifierVector.size();i++)
+ {
+ FindQualifier findQualifier = (FindQualifier)findQualifierVector.elementAt(i);
+%>
+ setFindQualifier("<%=HTMLUtils.JSMangle(findQualifier.getText())%>","findServiceInterfacesAdvancedName","findServiceInterfacesAdvancedCategories","findServiceInterfacesAdvancedFindQualifiers");
+<%
+ }
+ }
+%>
+ setAdvancedCommonSectionDefaults(findServiceInterfacesAdvancedForm,"<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET))%>","<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS))%>");
+
+ // UUID form details.
+ var findServiceInterfacesUUIDSection = document.getElementById(findServiceInterfacesSectionIds[<%=UDDIActionInputs.QUERY_STYLE_UUID%>]);
+ var findServiceInterfacesUUIDForm = findServiceInterfacesUUIDSection.getElementsByTagName("form").item(0);
+ findServiceInterfacesUUIDForm.<%=UDDIActionInputs.QUERY_INPUT_UUID_KEY%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY))%>";
+
+ showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=findServiceInterfacesStyleIndex%>);
+ }
+
+ function showMainForm(searchForValueString)
+ {
+ closeAllUddiChildWindows();
+ var queryInfoItemList = document.getElementById("queryInfoItemList");
+ var searchForIndex = parseInt(searchForValueString);
+ for (var i=0;i<sectionIds.length;i++)
+ {
+ if (i == searchForIndex)
+ document.getElementById(sectionIds[i]).style.display = "";
+ else
+ document.getElementById(sectionIds[i]).style.display = "none";
+ }
+<%
+ if (subQueryKeyProperty.getSubQueryKey().length() < 1)
+ {
+%>
+ document.getElementById("queryInfoItemList").style.display = "";
+<%
+ }
+%>
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function showFindForm(queryItemIndex,style)
+ {
+ closeAllUddiChildWindows();
+ var findSectionIds;
+ switch (queryItemIndex)
+ {
+ case <%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>:
+ findSectionIds = findBusinessesSectionIds;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICES%>:
+ findSectionIds = findServicesSectionIds;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>:
+ default:
+ findSectionIds = findServiceInterfacesSectionIds;
+ }
+ for (var i=0;i<findSectionIds.length;i++)
+ {
+ if (i == style)
+ document.getElementById(findSectionIds[i]).style.display = "";
+ else
+ document.getElementById(findSectionIds[i]).style.display = "none";
+ }
+ }
+
+ function toggleAdvancedAuthenticationSection(queryItemIndex,isChecked)
+ {
+ if (isChecked && <%=!regElement.isLoggedIn()%>)
+ document.getElementById(authenticationSectionIds[queryItemIndex]).style.display = "";
+ else
+ document.getElementById(authenticationSectionIds[queryItemIndex]).style.display = "none";
+ }
+
+ function toggleFindServiceInterfacesAdvancedServiceParameters(form)
+ {
+ var isUseServiceChecked = form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE%>.checked;
+ var isOwnedChecked = form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED%>.checked;
+ if (isUseServiceChecked)
+ {
+ document.getElementById("findServiceInterfacesAdvancedServiceSection").style.display = "";
+ document.getElementById("findServiceInterfacesAdvancedOwned").style.display = "none";
+ toggleAdvancedAuthenticationSection(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,false);
+ document.getElementById("findServiceInterfacesAdvancedNameFindQualifiersSection").style.display = "none";
+ document.getElementById("findServiceInterfacesAdvancedFindQualifiersSection").style.display = "none";
+ }
+ else
+ {
+ document.getElementById("findServiceInterfacesAdvancedServiceSection").style.display = "none";
+ document.getElementById("findServiceInterfacesAdvancedOwned").style.display = "";
+ toggleAdvancedAuthenticationSection(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,isOwnedChecked);
+ document.getElementById("findServiceInterfacesAdvancedNameFindQualifiersSection").style.display = "";
+ document.getElementById("findServiceInterfacesAdvancedFindQualifiersSection").style.display = "";
+ }
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "uddi/images/find_highlighted.gif";
+ String title;
+ String subQueryKey = subQueryKeyProperty.getSubQueryKey();
+ if (subQueryKey != null && subQueryKey.length() > 0)
+ {
+ int queryItem = Integer.parseInt((String)formToolPI.getProperty(UDDIActionInputs.QUERY_ITEM));
+ switch (queryItem)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ title = uddiPerspective.getMessage("ALT_SUBQUERY",uddiPerspective.getMessage("FORM_OPTION_BUSINESSES"));
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ title = uddiPerspective.getMessage("ALT_SUBQUERY",uddiPerspective.getMessage("FORM_OPTION_SERVICES"));
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ title = uddiPerspective.getMessage("ALT_SUBQUERY",uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES"));
+ }
+ }
+ else
+ title = uddiPerspective.getMessage("ALT_FIND");
+%>
+<%@ include file="/uddi/forms/findformheader.inc" %>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=20 valign="bottom">
+ <label for="queryName"><%=uddiPerspective.getMessage("FORM_LABEL_QUERY_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input id="queryName" type="text" value="<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("DEFAULT_QUERY_NAME"))%>" class="textenter"> </td>
+ </tr>
+ </table>
+ <div id="queryInfoItemList" style="display:none;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" valign="middle" nowrap height=40>
+ <label for="searchFor"><%=uddiPerspective.getMessage("FORM_LABEL_SEARCH_FOR")%></label>
+ </td>
+ <td valign="middle" nowrap height=40>
+ <select id="searchFor" onChange="showMainForm(this.value)" class="selectlist">
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>"><%=uddiPerspective.getMessage("FORM_OPTION_BUSINESSES")%>
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>"><%=uddiPerspective.getMessage("FORM_OPTION_SERVICES")%>
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>"><%=uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES")%>
+ </select>
+ </td>
+ <td width="90%" height=40>&nbsp;</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+<jsp:include page="/uddi/forms/RegFindBusinessesForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegFindServicesForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegFindServiceInterfacesForm.jsp" flush="true"/>
+ </div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesAdvancedForm.jsp
new file mode 100644
index 000000000..11bad2bd7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesAdvancedForm.jsp
@@ -0,0 +1,114 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="findServiceInterfacesAdvanced" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindServiceInterfacesAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processFindServiceInterfacesAdvancedForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=20 valign="bottom"> <%=uddiPerspective.getMessage("FORM_LABEL_FIND_ADVANCED_DESC")%> </td>
+ </tr>
+ <tr>
+ <td height=40 valign="bottom">
+ <input type="checkbox" id="input_find_service_interface_advance_use_service" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_USE_SERVICE%>" onClick="toggleFindServiceInterfacesAdvancedServiceParameters(this.form)"><label for="input_find_service_interface_advance_use_service"><%=uddiPerspective.getMessage("FORM_LABEL_USE_SERVICE")%></label>
+ </td>
+ </tr>
+ </table>
+<%
+ String[] serviceSpecificInfo = {"FORM_LABEL_SERVICE",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICES),"findServiceInterfacesAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServiceInterfacesAdvancedService");
+ sectionHeaderInfo.setOtherProperties(serviceSpecificInfo);
+%>
+<div id="findServiceInterfacesAdvancedServiceSection" style="display:none;">
+ <jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+</div>
+ <div id="findServiceInterfacesAdvancedOwned">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=35 valign="bottom">
+ <input type="checkbox" id="input_find_service_interface_advance_owned" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED%>" onClick="toggleAdvancedAuthenticationSection(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,this.checked)">
+ <label for="input_find_service_interface_advance_owned"><%=uddiPerspective.getMessage("FORM_LABEL_OWNED")%></label>
+ </td>
+ </tr>
+ </table>
+ </div>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServiceInterfacesAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <div id="findServiceInterfacesAdvancedName">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=40 valign="bottom">
+ <label for="input_find_service_interface_advanced_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td><input type="text" id="input_find_service_interface_advanced_name" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME%>" class="textenter"></td>
+ </tr>
+ </table>
+<div id="findServiceInterfacesAdvancedNameFindQualifiersSection">
+<jsp:include page="/uddi/forms/names_findQualifiers_table.jsp" flush="true"/>
+</div>
+ </div>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServiceInterfacesAdvancedIdentifiers");
+%>
+<jsp:include page="/uddi/forms/identifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServiceInterfacesAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServiceInterfacesAdvancedFindQualifiers");
+%>
+<div id="findServiceInterfacesAdvancedFindQualifiersSection">
+<jsp:include page="/uddi/forms/findQualifiers_table.jsp" flush="true"/>
+</div>
+<jsp:include page="/uddi/forms/advancedCommon_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesForm.jsp
new file mode 100644
index 000000000..59ed9c456
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesForm.jsp
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="findServiceInterfaces" style="display:none;">
+ <form name="findServiceInterfacesStyle">
+ <table>
+ <tr>
+ <td> <%=uddiPerspective.getMessage("FORM_LABEL_SEARCH_TYPE")%> </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_find_service_interface_simple" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_find_service_interface_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_find_service_interface_advance" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_find_service_interface_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ <input type="radio" id="radio_find_service_interface_uuid" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=UDDIActionInputs.QUERY_STYLE_UUID%>)"><label for="radio_find_service_interface_uuid"><%=uddiPerspective.getMessage("FORM_RADIO_UUID")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegFindServiceInterfacesSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegFindServiceInterfacesAdvancedForm.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.setContainerId("findServiceInterfaceUUID");
+ String[] otherProperties = {"uddi/actions/RegFindServiceInterfaceUUIDActionJSP.jsp",UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY,"FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC"};
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/RegFindUUIDForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesSimpleForm.jsp
new file mode 100644
index 000000000..635934bd3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServiceInterfacesSimpleForm.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="findServiceInterfacesSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindServiceInterfacesSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="input_find_service_interfaces_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="input_find_service_interfaces_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesAdvancedForm.jsp
new file mode 100644
index 000000000..b6976a9d6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesAdvancedForm.jsp
@@ -0,0 +1,85 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="findServicesAdvanced">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindServicesAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processFindServicesAdvancedForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="90%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=20 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_FIND_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=35 valign="bottom">
+ <input type="checkbox" id="input_find_services_advance_owned" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_OWNED%>" onClick="toggleAdvancedAuthenticationSection(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,this.checked)">
+ <label for="input_find_services_advance_owned"><%=uddiPerspective.getMessage("FORM_LABEL_OWNED")%></label>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<%
+ String[] busSpecificInfo = {"FORM_LABEL_BUSINESS",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES),"findServicesAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedBusiness");
+ sectionHeaderInfo.setOtherProperties(busSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",Boolean.FALSE.toString()};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<%
+ String[] siSpecificInfo = {"FORM_LABEL_SERVICE_INTERFACES",Boolean.FALSE.toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES),"findServicesAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedServiceInterfaces");
+ sectionHeaderInfo.setOtherProperties(siSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("findServicesAdvancedFindQualifiers");
+%>
+<jsp:include page="/uddi/forms/findQualifiers_table.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/advancedCommon_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesForm.jsp
new file mode 100644
index 000000000..f94f39345
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesForm.jsp
@@ -0,0 +1,47 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="findServices" style="display:none;">
+ <form name="findServicesStyle">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_SEARCH_TYPE")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_find_service_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_find_service_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_find_service_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_find_service_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ <input type="radio" id="radio_find_service_uuid" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showFindForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=UDDIActionInputs.QUERY_STYLE_UUID%>)"><label for="radio_find_service_uuid"><%=uddiPerspective.getMessage("FORM_RADIO_UUID")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegFindServicesSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegFindServicesAdvancedForm.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.setContainerId("findServiceUUID");
+ String[] otherProperties = {"uddi/actions/RegFindServiceUUIDActionJSP.jsp",UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY,"FORM_LABEL_FIND_SERVICE_UUID_DESC"};
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/RegFindUUIDForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesSimpleForm.jsp
new file mode 100644
index 000000000..40b72816b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindServicesSimpleForm.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="findServicesSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegFindServicesSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_FIND_SERVICES_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="input_find_services_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="input_find_services_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindUUIDForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindUUIDForm.jsp
new file mode 100644
index 000000000..ae39db2d9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegFindUUIDForm.jsp
@@ -0,0 +1,65 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode could be the registry or query nodes.
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+
+ String formContainerId = sectionHeaderInfo.getContainerId();
+ String[] otherProperties = (String[])(sectionHeaderInfo.getOtherProperties());
+ String actionLink = (String)otherProperties[0];
+ String uuidEntryKey = (String)otherProperties[1];
+ String descriptionKey = (String)otherProperties[2];
+%>
+<div id="<%=formContainerId%>" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(actionLink))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_KEY%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_NAME%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage(descriptionKey)%>
+ </td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="<%=(formContainerId+"_input_uuid_key")%>"><%=uddiPerspective.getMessage("FORM_LABEL_UUID_KEY")%></label>
+<%
+ if (!formToolPI.isInputValid(uuidEntryKey))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="<%=(formContainerId+"_input_uuid_key")%>" name="<%=UDDIActionInputs.QUERY_INPUT_UUID_KEY%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessAdvancedForm.jsp
new file mode 100644
index 000000000..0de1a93df
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessAdvancedForm.jsp
@@ -0,0 +1,74 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishBusinessAdvanced" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishBusinessAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processPublishBusinessAdvancedForm(this)">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES))};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedIdentifiers");
+%>
+<jsp:include page="/uddi/forms/identifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessAdvancedDiscoveryURLs");
+ sectionHeaderInfo.setOtherProperties(new Boolean(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS)));
+%>
+<jsp:include page="/uddi/forms/discoveryURLs_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessForm.jsp
new file mode 100644
index 000000000..b7b30c127
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessForm.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="publishBusiness" style="display:none;">
+ <form name="publishBusinessStyle">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_FORM")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_publish_business_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_publish_business_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_publish_business_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_publish_business_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegPublishBusinessSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegPublishBusinessAdvancedForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessSimpleForm.jsp
new file mode 100644
index 000000000..9c193d599
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishBusinessSimpleForm.jsp
@@ -0,0 +1,71 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishBusinessSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishBusinessSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishBusinessSimpleAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=20 valign="bottom">
+ <label for="input_publish_business_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="input_publish_business_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME%>" class="textenter"> </td>
+ </tr>
+ <tr>
+ <td class="labels">
+ <label for="input_publish_business_simple_desc"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td> <input type="text" id="input_publish_business_simple_desc" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishForm.jsp
new file mode 100644
index 000000000..fe04c890a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishForm.jsp
@@ -0,0 +1,583 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.tmodel.TModel,
+ org.uddi4j.datatype.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ // selectedNode must be a registry node.
+ Node regNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(regNode.getCurrentToolManager().getSelectedTool());
+%>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request">
+<%
+ String subQueryKey = (String)formTool.getProperty(UDDIActionInputs.SUBQUERY_KEY);
+ subQueryKeyProperty.setSubQueryKey(subQueryKey);
+%>
+</jsp:useBean>
+<%
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_REGISTRY_PUBLISH")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<script language="javascript">
+ var sectionIds = ["publishBusiness","publishService","publishServiceInterface"];
+ var publishBusinessSectionIds = ["publishBusinessSimple","publishBusinessAdvanced"];
+ var publishServiceSectionIds = ["publishServiceSimple","publishServiceAdvanced"];
+ var publishServiceInterfaceSectionIds = ["publishServiceInterfaceSimple","publishServiceInterfaceAdvanced"];
+ var styleForms = ["publishBusinessStyle","publishServiceStyle","publishServiceInterfaceStyle"];
+
+ function processPublishBusinessAdvancedForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processLanguageInputTable("publishBusinessAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processLanguageInputTable("publishBusinessAdvancedDescriptions","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processIdentifierTable("publishBusinessAdvancedIdentifiers",form);
+ processCategoryTable("publishBusinessAdvancedCategories",form,false);
+ processDiscoveryURLTable("publishBusinessAdvancedDiscoveryURLs",form);
+ return true;
+ }
+ return false;
+ }
+
+ function processPublishServiceSimpleForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processResultTable("publishServiceSimpleBusiness","<%=UDDIActionInputs.NODEID_BUSINESS%>",form,false);
+ return true;
+ }
+ return false;
+ }
+
+ function processPublishServiceAdvancedForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processResultTable("publishServiceAdvancedBusiness","<%=UDDIActionInputs.NODEID_BUSINESS%>",form,false);
+ processResultTable("publishServiceAdvancedServiceInterface","<%=UDDIActionInputs.NODEID_SERVICE_INTERFACE%>",form,false);
+ processLanguageInputTable("publishServiceAdvancedNames","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processLanguageInputTable("publishServiceAdvancedDescriptions","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processCategoryTable("publishServiceAdvancedCategories",form,false);
+ return true;
+ }
+ return false;
+ }
+
+ function processPublishServiceInterfaceAdvancedForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processLanguageInputTable("publishServiceInterfaceAdvancedDescriptions","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processIdentifierTable("publishServiceInterfaceAdvancedIdentifiers",form);
+ processCategoryTable("publishServiceInterfaceAdvancedCategories",form,false);
+ return true;
+ }
+ return false;
+ }
+
+ function setDefaults()
+ {
+ var publish = document.getElementById("publish");
+ publish.selectedIndex = <%=formToolPI.getProperty(UDDIActionInputs.QUERY_ITEM)%>;
+ setDefaultsForPublishBusinessForms();
+ setDefaultsForPublishServiceForms();
+ setDefaultsForPublishServiceInterfaceForms();
+<%
+ if (!regElement.isLoggedIn())
+ {
+%>
+ document.getElementById("publishBusinessSimpleAuthentication").style.display = "";
+ document.getElementById("publishBusinessAdvancedAuthentication").style.display = "";
+ document.getElementById("publishServiceSimpleAuthentication").style.display = "";
+ document.getElementById("publishServiceAdvancedAuthentication").style.display = "";
+ document.getElementById("publishServiceInterfaceSimpleAuthentication").style.display = "";
+ document.getElementById("publishServiceInterfaceAdvancedAuthentication").style.display = "";
+<%
+ }
+%>
+ showMainForm(publish.value);
+ }
+
+ function setAuthenticationSectionDefaults(form)
+ {
+<%
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ }
+
+ function setDefaultsForPublishBusinessForms()
+ {
+ // Initialize the publishBusiness form.
+<%
+ String publishBusinessStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_BUSINESSES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>]].<%=UDDIActionInputs.QUERY_STYLE_BUSINESSES%>[<%=publishBusinessStyleIndex%>].checked = true;
+ var publishBusinessSimpleSection = document.getElementById(publishBusinessSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var publishBusinessSimpleForm = publishBusinessSimpleSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishBusinessSimpleForm);
+ publishBusinessSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_NAME))%>";
+ publishBusinessSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_BUSINESS_DESCRIPTION))%>";
+
+ // Advanced form details.
+ var publishBusinessAdvancedSection = document.getElementById(publishBusinessSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var publishBusinessAdvancedForm = publishBusinessAdvancedSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishBusinessAdvancedForm);
+ var publishBusinessAdvancedNamesTable = getTable("publishBusinessAdvancedNames");
+ var publishBusinessAdvancedDescriptionsTable = getTable("publishBusinessAdvancedDescriptions");
+ var publishBusinessAdvancedDiscoveryURLsTable = getTable("publishBusinessAdvancedDiscoveryURLs");
+<%
+ Vector busNameVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES);
+ if (busNameVector != null)
+ {
+ for (int i=0;i<busNameVector.size();i++)
+ {
+ Name name = (Name)busNameVector.elementAt(i);
+%>
+ addLanguageInputRow("publishBusinessAdvancedNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishBusinessAdvancedNames",<%=i%>,"<%=HTMLUtils.JSMangle(name.getLang())%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_NAMES,i))
+ {
+%>
+ highlightErrantRow(publishBusinessAdvancedNamesTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ Vector busDescriptionVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS);
+ if (busDescriptionVector != null)
+ {
+ for (int i=0;i<busDescriptionVector.size();i++)
+ {
+ Description description = (Description)busDescriptionVector.elementAt(i);
+%>
+ addLanguageInputRow("publishBusinessAdvancedDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishBusinessAdvancedDescriptions",<%=i%>,"<%=HTMLUtils.JSMangle(description.getLang())%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DESCRIPTIONS,i))
+ {
+%>
+ highlightErrantRow(publishBusinessAdvancedDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ IdentifierBag busIdBag = (IdentifierBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_IDENTIFIERS);
+ if (busIdBag != null)
+ {
+ Vector keyedReferenceVector = busIdBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addIdentifierRow("publishBusinessAdvancedIdentifiers");
+ setIdentifierRowSettings("publishBusinessAdvancedIdentifiers",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ CategoryBag busCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_CATEGORIES);
+ if (busCatBag != null)
+ {
+ Vector keyedReferenceVector = busCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("publishBusinessAdvancedCategories");
+ setCategoryRowSettings("publishBusinessAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ DiscoveryURLs discoveryURLs = (DiscoveryURLs)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS);
+ if (discoveryURLs != null)
+ {
+ Vector discoveryURLVector = discoveryURLs.getDiscoveryURLVector();
+ for (int i=0;i<discoveryURLVector.size();i++)
+ {
+ DiscoveryURL discoveryURL = (DiscoveryURL)discoveryURLVector.elementAt(i);
+%>
+ addDiscoveryURLRow("publishBusinessAdvancedDiscoveryURLs");
+ setDiscoveryURLRowSettings("publishBusinessAdvancedDiscoveryURLs",<%=i%>,"<%=HTMLUtils.JSMangle(discoveryURL.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_BUSINESS_DISCOVERYURLS,i))
+ {
+%>
+ highlightErrantRow(publishBusinessAdvancedDiscoveryURLsTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+%>
+ showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>,<%=publishBusinessStyleIndex%>);
+ }
+
+ function setDefaultsForPublishServiceForms()
+ {
+<%
+ String publishServiceStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>]].<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>[<%=publishServiceStyleIndex%>].checked = true;
+ var publishServiceSimpleSection = document.getElementById(publishServiceSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var publishServiceSimpleForm = publishServiceSimpleSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceSimpleForm);
+<%
+ Vector serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS);
+ Vector serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY);
+ if (serviceBusiness != null)
+ {
+ if (serviceBusinessCopy == null)
+ serviceBusinessCopy = new Vector();
+ else
+ serviceBusinessCopy.removeAllElements();
+ for (int i=0;i<serviceBusiness.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceBusiness.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS,i,UDDIActionInputs.QUERY_ITEM_BUSINESSES,false);
+ BusinessEntity be = (BusinessEntity)listElement.getObject();
+ serviceBusinessCopy.addElement(serviceBusiness.elementAt(i));
+%>
+ addResultRow("publishServiceSimpleBusiness",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(be.getDefaultNameString())%>","<%=HTMLUtils.JSMangle(be.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+ else
+ {
+ serviceBusiness = new Vector();
+ serviceBusinessCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS,serviceBusiness);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+%>
+<%
+ Vector serviceInterfaces = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ Vector serviceInterfacesCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY);
+ if (serviceInterfaces != null)
+ {
+ if (serviceInterfacesCopy == null)
+ serviceInterfacesCopy = new Vector();
+ else
+ serviceInterfacesCopy.removeAllElements();
+ for (int i=0;i<serviceInterfaces.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceInterfaces.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,i,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,false);
+ TModel tModel = (TModel)listElement.getObject();
+ serviceInterfacesCopy.addElement(serviceInterfaces.elementAt(i));
+%>
+ addResultRow("publishServiceAdvancedServiceInterface",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(tModel.getNameString())%>","<%=HTMLUtils.JSMangle(tModel.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceInterfacesCopy);
+ }
+ else
+ {
+ serviceInterfaces = new Vector();
+ serviceInterfacesCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES,serviceInterfaces);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES_COPY,serviceInterfacesCopy);
+ }
+%>
+ publishServiceSimpleForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL))%>";
+ publishServiceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))%>";
+ publishServiceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION))%>";
+
+ // Advanced form details.
+ var publishServiceAdvancedSection = document.getElementById(publishServiceSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var publishServiceAdvancedForm = publishServiceAdvancedSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceAdvancedForm);
+ var publishServiceAdvancedNamesTable = getTable("publishServiceAdvancedNames");
+ var publishServiceAdvancedDescriptionsTable = getTable("publishServiceAdvancedDescriptions");
+<%
+ serviceBusiness = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ serviceBusinessCopy = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY);
+ if (serviceBusiness != null)
+ {
+ if (serviceBusinessCopy == null)
+ serviceBusinessCopy = new Vector();
+ else
+ serviceBusinessCopy.removeAllElements();
+ for (int i=0;i<serviceBusiness.size();i++)
+ {
+ ListElement listElement = (ListElement)serviceBusiness.elementAt(i);
+ int targetNodeId = listElement.getTargetNodeId();
+ int targetToolId = listElement.getTargetToolId();
+ int targetViewId = listElement.getTargetViewId();
+ String url = SelectSubQueryItemAction.getActionLink(targetNodeId,targetToolId,targetViewId,subQueryKeyProperty.getSubQueryKey(),UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,i,UDDIActionInputs.QUERY_ITEM_BUSINESSES,false);
+ BusinessEntity be = (BusinessEntity)listElement.getObject();
+ serviceBusinessCopy.addElement(serviceBusiness.elementAt(i));
+%>
+ addResultRow("publishServiceAdvancedBusiness",<%=targetNodeId%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(be.getDefaultNameString())%>","<%=HTMLUtils.JSMangle(be.getDefaultDescriptionString())%>");
+<%
+ }
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+ else
+ {
+ serviceBusiness = new Vector();
+ serviceBusinessCopy = new Vector();
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS,serviceBusiness);
+ formToolPI.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS_COPY,serviceBusinessCopy);
+ }
+%>
+ publishServiceAdvancedForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL))%>";
+<%
+ Vector serviceNameVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ if (serviceNameVector != null)
+ {
+ for (int i=0;i<serviceNameVector.size();i++)
+ {
+ Name name = (Name)serviceNameVector.elementAt(i);
+%>
+ addLanguageInputRow("publishServiceAdvancedNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishServiceAdvancedNames",<%=i%>,"<%=HTMLUtils.JSMangle(name.getLang())%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i))
+ {
+%>
+ highlightErrantRow(publishServiceAdvancedNamesTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ Vector serviceDescriptionVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ if (serviceDescriptionVector != null)
+ {
+ for (int i=0;i<serviceDescriptionVector.size();i++)
+ {
+ Description description = (Description)serviceDescriptionVector.elementAt(i);
+%>
+ addLanguageInputRow("publishServiceAdvancedDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishServiceAdvancedDescriptions",<%=i%>,"<%=HTMLUtils.JSMangle(description.getLang())%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i))
+ {
+%>
+ highlightErrantRow(publishServiceAdvancedDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ CategoryBag serviceCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ if (serviceCatBag != null)
+ {
+ Vector keyedReferenceVector = serviceCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("publishServiceAdvancedCategories");
+ setCategoryRowSettings("publishServiceAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+%>
+ showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=publishServiceStyleIndex%>);
+ }
+
+ function setDefaultsForPublishServiceInterfaceForms()
+ {
+<%
+ String publishServiceInterfaceStyleIndex = (String)formToolPI.getProperty(UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES);
+%>
+ document.forms[styleForms[<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>]].<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>[<%=publishServiceInterfaceStyleIndex%>].checked = true;
+ var publishServiceInterfaceSimpleSection = document.getElementById(publishServiceInterfaceSectionIds[<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>]);
+ var publishServiceInterfaceSimpleForm = publishServiceInterfaceSimpleSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceInterfaceSimpleForm);
+ publishServiceInterfaceSimpleForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL))%>";
+ publishServiceInterfaceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME))%>";
+ publishServiceInterfaceSimpleForm.<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION))%>";
+
+ // Advanced form details.
+ var publishServiceInterfaceAdvancedSection = document.getElementById(publishServiceInterfaceSectionIds[<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>]);
+ var publishServiceInterfaceAdvancedForm = publishServiceInterfaceAdvancedSection.getElementsByTagName("form").item(0);
+ setAuthenticationSectionDefaults(publishServiceInterfaceAdvancedForm);
+ publishServiceInterfaceAdvancedForm.<%=ActionInputs.QUERY_INPUT_WSDL_URL%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL))%>";
+ publishServiceInterfaceAdvancedForm.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME%>.value = "<%=HTMLUtils.JSMangle((String)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME))%>";
+ var publishServiceInterfaceAdvancedDescriptionsTable = getTable("publishServiceInterfaceAdvancedDescriptions");
+<%
+ Vector siDescriptionVector = (Vector)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+ if (siDescriptionVector != null)
+ {
+ for (int i=0;i<siDescriptionVector.size();i++)
+ {
+ Description description = (Description)siDescriptionVector.elementAt(i);
+%>
+ addLanguageInputRow("publishServiceInterfaceAdvancedDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>");
+ setLanguageInputRowSettings("publishServiceInterfaceAdvancedDescriptions",<%=i%>,"<%=HTMLUtils.JSMangle(description.getLang())%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (!formToolPI.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i))
+ {
+%>
+ highlightErrantRow(publishServiceInterfaceAdvancedDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantrow");
+<%
+ }
+ }
+ }
+
+ IdentifierBag siIdBag = (IdentifierBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ if (siIdBag != null)
+ {
+ Vector keyedReferenceVector = siIdBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addIdentifierRow("publishServiceInterfaceAdvancedIdentifiers");
+ setIdentifierRowSettings("publishServiceInterfaceAdvancedIdentifiers",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ CategoryBag siCatBag = (CategoryBag)formToolPI.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ if (siCatBag != null)
+ {
+ Vector keyedReferenceVector = siCatBag.getKeyedReferenceVector();
+ for (int i=0;i<keyedReferenceVector.size();i++)
+ {
+ KeyedReference kr = (KeyedReference)keyedReferenceVector.elementAt(i);
+%>
+ addCategoryRow("publishServiceInterfaceAdvancedCategories");
+ setCategoryRowSettings("publishServiceInterfaceAdvancedCategories",<%=i%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+%>
+ showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=publishServiceInterfaceStyleIndex%>);
+ }
+
+ function showMainForm(publishValue)
+ {
+ closeAllUddiChildWindows();
+ var publish = parseInt(publishValue);
+ for (var i=0;i<sectionIds.length;i++)
+ {
+ if (i == publish)
+ document.getElementById(sectionIds[i]).style.display = "";
+ else
+ document.getElementById(sectionIds[i]).style.display = "none";
+ }
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function showPublishForm(queryItemIndex,style)
+ {
+ closeAllUddiChildWindows();
+ var publishSectionIds;
+ switch (queryItemIndex)
+ {
+ case <%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>:
+ publishSectionIds = publishBusinessSectionIds;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICES%>:
+ publishSectionIds = publishServiceSectionIds;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>:
+ default:
+ publishSectionIds = publishServiceInterfaceSectionIds;
+ break;
+ }
+ for (var i=0;i<publishSectionIds.length;i++)
+ {
+ if (i == style)
+ document.getElementById(publishSectionIds[i]).style.display = "";
+ else
+ document.getElementById(publishSectionIds[i]).style.display = "none";
+ }
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "uddi/images/publish_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_PUBLISH");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" valign="middle" nowrap>
+ <label for="publish"><%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH")%></label>
+ </td>
+ <td valign="middle" nowrap>
+ <select id="publish" onChange="showMainForm(this.value)" class="selectlist">
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>"><%=uddiPerspective.getMessage("FORM_OPTION_BUSINESS")%>
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>"><%=uddiPerspective.getMessage("FORM_OPTION_SERVICE")%>
+ <option value="<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>"><%=uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACE")%>
+ </select>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </div>
+<jsp:include page="/uddi/forms/RegPublishBusinessForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegPublishServiceForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegPublishServiceInterfaceForm.jsp" flush="true"/>
+ </div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceAdvancedForm.jsp
new file mode 100644
index 000000000..bef6c0bce
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceAdvancedForm.jsp
@@ -0,0 +1,107 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceAdvanced" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishServiceAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processPublishServiceAdvancedForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<%
+ boolean tableHasErrors = !formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS);
+ String[] busSpecificInfo = {"FORM_LABEL_BUSINESS",(new Boolean(tableHasErrors)).toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES),"publishServiceAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedBusiness");
+ sectionHeaderInfo.setOtherProperties(busSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_publish_service_advance_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceAdvanced',<%=ActionInputs.WSDL_TYPE_SERVICE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_publish_service_advance_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ </table>
+<%
+ tableHasErrors = !formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES);
+ String[] serviceInterfaceSpecificInfo = {"FORM_LABEL_SERVICE_INTERFACES",(new Boolean(tableHasErrors)).toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES),"publishServiceAdvanced",UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_SERVICE_INTERFACES};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedServiceInterface");
+ sectionHeaderInfo.setOtherProperties(serviceInterfaceSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES))};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceForm.jsp
new file mode 100644
index 000000000..82a3ff540
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceForm.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="publishService" style="display:none;">
+ <form name="publishServiceStyle">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_FORM")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_publish_service_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_publish_service_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_publish_service_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_publish_service_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegPublishServiceSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegPublishServiceAdvancedForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceAdvancedForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceAdvancedForm.jsp
new file mode 100644
index 000000000..24eca7835
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceAdvancedForm.jsp
@@ -0,0 +1,101 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceInterfaceAdvanced" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishServiceInterfaceAdvancedActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processPublishServiceInterfaceAdvancedForm(this)">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceInterfaceAdvancedAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_publish_service_interface_advance_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceInterfaceAdvanced',<%=ActionInputs.WSDL_TYPE_SERVICE_INTERFACE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_publish_service_interface_advance_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_publish_service_interface_advance_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <tr>
+ <td colspan=3> <input type="text" id="input_publish_service_interface_advance_name" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME%>" class="textenter"> </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceInterfaceAdvancedDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/languageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceInterfaceAdvancedIdentifiers");
+%>
+<jsp:include page="/uddi/forms/identifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceInterfaceAdvancedCategories");
+%>
+<jsp:include page="/uddi/forms/categories_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceForm.jsp
new file mode 100644
index 000000000..9fa82cdde
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceForm.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<div id="publishServiceInterface" style="display:none;">
+ <form name="publishServiceInterfaceStyle">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_FORM")%>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" id="radio_publish_service_interface_simple" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=UDDIActionInputs.QUERY_STYLE_SIMPLE%>)"><label for="radio_publish_service_interface_simple"><%=uddiPerspective.getMessage("FORM_RADIO_SIMPLE")%></label>
+ <input type="radio" id="radio_publish_service_interface_advance" class="radio" name="<%=UDDIActionInputs.QUERY_STYLE_SERVICE_INTERFACES%>" onClick="showPublishForm(<%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>,<%=UDDIActionInputs.QUERY_STYLE_ADVANCED%>)"><label for="radio_publish_service_interface_advance"><%=uddiPerspective.getMessage("FORM_RADIO_ADVANCED")%></label>
+ </td>
+ </tr>
+ </table>
+ </form>
+<jsp:include page="/uddi/forms/RegPublishServiceInterfaceSimpleForm.jsp" flush="true"/>
+<jsp:include page="/uddi/forms/RegPublishServiceInterfaceAdvancedForm.jsp" flush="true"/>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceSimpleForm.jsp
new file mode 100644
index 000000000..85b06eb1a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceInterfaceSimpleForm.jsp
@@ -0,0 +1,92 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceInterfaceSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishServiceInterfaceSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceInterfaceSimpleAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_publish_service_interface_simple_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceInterfaceSimple',<%=ActionInputs.WSDL_TYPE_SERVICE_INTERFACE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_publish_service_interface_simple_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_publish_service_interface_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <tr>
+ <td colspan=3> <input type="text" id="input_publish_service_interface_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_NAME%>" class="textenter"> </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_publish_service_interface_simple_desc"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3> <input type="text" id="input_publish_service_interface_simple_desc" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_INTERFACE_DESCRIPTION%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceSimpleForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceSimpleForm.jsp
new file mode 100644
index 000000000..aacaf1e47
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/RegPublishServiceSimpleForm.jsp
@@ -0,0 +1,103 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ FormToolPropertiesInterface formToolPI = ((MultipleFormToolPropertiesInterface)formTool).getFormToolProperties(subQueryKeyProperty.getSubQueryKey());
+%>
+<div id="publishServiceSimple" style="display:none;">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RegPublishServiceSimpleActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processPublishServiceSimpleForm(this)">
+ <input type="hidden" name="<%=UDDIActionInputs.SUBQUERY_GET%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>">
+ <input type="hidden" name="<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=10 valign="bottom">
+ <%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceSimpleAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<%
+ boolean tableHasErrors = !formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS);
+ String[] busSpecificInfo = {"FORM_LABEL_BUSINESS",(new Boolean(tableHasErrors)).toString(),String.valueOf(UDDIActionInputs.QUERY_ITEM_BUSINESSES),"publishServiceSimple",UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS};
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("publishServiceSimpleBusiness");
+ sectionHeaderInfo.setOtherProperties(busSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/uddiObjects_table.jsp" flush="true"/>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td nowrap class="labels" height=30 valign="bottom">
+ <label for="input_publish_service_simple_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_WSDL_URL))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap height=30 valign="bottom">
+ <a href="javascript:openWSDLBrowser('publishServiceSimple',<%=ActionInputs.WSDL_TYPE_SERVICE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_publish_service_simple_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" class="textenter">
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_publish_service_simple_name"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></label>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <tr>
+ <td colspan=3> <input type="text" id="input_publish_service_simple_name" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_NAME%>" class="textenter"> </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <label for="input_publish_service_simple_desc"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3> <input type="text" id="input_publish_service_simple_desc" name="<%=UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_DESCRIPTION%>" class="textenter"> </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ResultsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ResultsForm.jsp
new file mode 100644
index 000000000..638d3b674
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ResultsForm.jsp
@@ -0,0 +1,176 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.business.*,
+ org.uddi4j.datatype.service.*,
+ org.uddi4j.datatype.tmodel.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<jsp:useBean id="subQueryTransferTargetHolder" class="java.util.Vector" scope="request">
+<%
+ subQueryTransferTargetHolder.removeAllElements();
+%>
+</jsp:useBean>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager nodeManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement treeElement = selectedNode.getTreeElement();
+ SubQueryTransferTarget subQueryTransferTarget = null;
+ boolean hasTarget = false;
+ if (treeElement instanceof QueryElement)
+ {
+ subQueryTransferTarget = (SubQueryTransferTarget)treeElement.getPropertyAsObject(UDDIModelConstants.SUBQUERY_TRANSFER_TARGET);
+ if (subQueryTransferTarget != null && subQueryTransferTarget.getTargetFormTool() != null)
+ {
+ subQueryTransferTargetHolder.removeAllElements();
+ subQueryTransferTargetHolder.addElement(subQueryTransferTarget);
+ hasTarget = true;
+ }
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_RESULTS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<jsp:include page="/uddi/scripts/results.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+<%
+ Vector childNodes = selectedNode.getChildNodes();
+ for (int i=0;i<childNodes.size();i++)
+ {
+ Node childNode = (Node)childNodes.elementAt(i);
+ String url = SelectNavigatorNodeAction.getActionLink(childNode.getNodeId(),false);
+ String name = null;
+ String description = null;
+ if (childNode instanceof BusinessNode)
+ {
+ BusinessElement busElement = (BusinessElement)childNode.getTreeElement();
+ BusinessEntity be = busElement.getBusinessEntity();
+ name = be.getDefaultNameString();
+ description = be.getDefaultDescriptionString();
+ }
+ else if (childNode instanceof ServiceNode)
+ {
+ ServiceElement serviceElement = (ServiceElement)childNode.getTreeElement();
+ BusinessService bs = serviceElement.getBusinessService();
+ name = bs.getDefaultNameString();
+ description = bs.getDefaultDescriptionString();
+ }
+ else if (childNode instanceof ServiceInterfaceNode)
+ {
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)childNode.getTreeElement();
+ TModel tModel = siElement.getTModel();
+ name = tModel.getNameString();
+ description = tModel.getDefaultDescriptionString();
+ }
+%>
+ addResultRow("Results",<%=childNode.getNodeId()%>,"<%=response.encodeURL(controller.getPathWithContext(url))%>","<%=HTMLUtils.JSMangle(name)%>","<%=HTMLUtils.JSMangle(description)%>");
+<%
+ }
+%>
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<div id="content">
+ <table id="loadScreen">
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String title = uddiPerspective.getMessage("ALT_QUERY_RESULTS");
+ String titleImagePath = "images/details_highlighted.gif";
+%>
+<%@ include file="/uddi/forms/resultsformheader.inc" %>
+ <form target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" method="post" enctype="multipart/form-data" style="margin-top:10px;">
+<%
+ sectionHeaderInfo.clear();
+ String tableTitle;
+ int itemType = Integer.parseInt(treeElement.getPropertyAsString(UDDIModelConstants.QUERY_TYPE));
+ switch (itemType)
+ {
+ case UDDIActionInputs.QUERY_ITEM_BUSINESSES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_BUSINESSES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICES:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICES");
+ break;
+ case UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES:
+ default:
+ tableTitle = uddiPerspective.getMessage("FORM_OPTION_SERVICE_INTERFACES");
+ }
+ String[] otherProperties = {tableTitle,""};
+ sectionHeaderInfo.setContainerId("Results");
+ sectionHeaderInfo.setOtherProperties(otherProperties);
+%>
+<jsp:include page="/uddi/forms/results_table.jsp" flush="true"/>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+<%
+ if (hasTarget)
+ {
+%>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_TRANSFER")%>" onClick="transferSelections('Results',this.form)" class="button">
+ </td>
+<%
+ }
+%>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_REFRESH")%>" onClick="refreshSelections('Results',this.form)" class="button">
+ </td>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_ADD_TO_FAVORITES")%>" onClick="addSelectionsToFavorites('Results',this.form)" class="button">
+ </td>
+ <td height=40 align="bottom" nowrap>
+ <input type="button" value="<%=uddiPerspective.getMessage("FORM_BUTTON_CLEAR")%>" onClick="clearSelections('Results',this.form)" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </form>
+ </div>
+</div>
+</div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceDetailsForm.jsp
new file mode 100644
index 000000000..7c1dd9466
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceDetailsForm.jsp
@@ -0,0 +1,278 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ FormTool formTool = (FormTool)(currentToolManager.getSelectedTool());
+ ServiceElement serviceElement = (ServiceElement)selectedNode.getTreeElement();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_SERVICE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/detailstables.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+ var serviceDetailsWSDLURLTable = getTable("serviceDetailsWSDLURL");
+ var serviceDetailsNamesTable = getTable("serviceDetailsNames");
+ var serviceDetailsDescriptionsTable = getTable("serviceDetailsDescriptions");
+<%
+ ListElement wsdlURLListElement = (ListElement)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ String wsdlURL = null;
+ if (wsdlURLListElement == null)
+ {
+ try
+ {
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ wsdlURL = uddi4jHelper.getWSDL(serviceElement.getBusinessService(), serviceElement.getRegistryElement().getProxy());
+ uddi4jHelper.getWSDLDefinition(wsdlURL);
+ if (wsdlURL == null)
+ wsdlURL = "temp.wsdl";
+ }
+ catch (Throwable t)
+ {
+ wsdlURL = "";
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ }
+ wsdlURLListElement = new ListElement(wsdlURL);
+ wsdlURLListElement.setTargetViewToolInfo(-1,-1,0);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL,wsdlURLListElement);
+ }
+ else
+ wsdlURL = (String)wsdlURLListElement.getObject();
+ boolean isError = !formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL);
+ boolean isNewItem = (wsdlURLListElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsSingleItemRow("serviceDetailsWSDLURL",<%=isError||isNewItem%>);
+ setDetailsWSDLURLSingleItemRow("serviceDetailsWSDLURL",<%=UDDIActionInputs.WSDL_TYPE_SERVICE%>,"<%=HTMLUtils.JSMangle(wsdlURL)%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceDetailsWSDLURLTable.rows[numberOfHeaderRows],"errantRow");
+<%
+ }
+
+ Vector nameIndexVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES);
+ if (nameIndexVector != null)
+ {
+ for (int i=0;i<nameIndexVector.size();i++)
+ {
+ ListElement listElement = (ListElement)nameIndexVector.elementAt(i);
+ Name name = (Name)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsLanguageInputRow("serviceDetailsNames","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_NAME_TEXT_VALUE"))%>",<%=isError||isNewItem%>);
+ setDetailsLanguageInputRow("serviceDetailsNames",<%=i%>,<%=listElement.getViewId()%>,"<%=name.getLang()%>","<%=HTMLUtils.JSMangle(name.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceDetailsNamesTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector descriptionIndexVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS);
+ if (descriptionIndexVector != null)
+ {
+ for (int i=0;i<descriptionIndexVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionIndexVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsLanguageInputRow("serviceDetailsDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>",<%=isError||isNewItem%>);
+ setDetailsLanguageInputRow("serviceDetailsDescriptions",<%=i%>,<%=listElement.getViewId()%>,"<%=description.getLang()%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceDetailsDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector catVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES);
+ if (catVector != null)
+ {
+ for (int i=0;i<catVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_CATEGORIES,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsCategoryRow("serviceDetailsCategories",<%=isError||isNewItem%>);
+ setDetailsCategoryRow("serviceDetailsCategories",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ // Authentication.
+ if (!regElement.isLoggedIn())
+ {
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ document.getElementById("serviceDetailsAuthentication").style.display = "";
+<%
+ }
+%>
+
+ showMainForm();
+ }
+
+ function showMainForm()
+ {
+ closeAllUddiChildWindows();
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function processForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processDetailsSingleItemTable("serviceDetailsWSDLURL","<%=UDDIActionInputs.WSDL_URL_MODIFIED%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_WSDL_URL%>",form);
+ processDetailsLanguageInputTable("serviceDetailsNames","<%=UDDIActionInputs.NAME_MODIFIED%>","<%=UDDIActionInputs.NAME_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_NAME%>",form);
+ processDetailsLanguageInputTable("serviceDetailsDescriptions","<%=UDDIActionInputs.DESCRIPTION_MODIFIED%>","<%=UDDIActionInputs.DESCRIPTION_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processDetailsCategoryTable("serviceDetailsCategories",form);
+ return true;
+ }
+ return false;
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateServiceActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_SERVICE_DETAILS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY%>" value="<%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_BUSINESS_KEY)%>">
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY%>" value="<%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY)%>">
+ <table>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_DETAILS_EDITABLE",selectedNode.getNodeName())%>
+ </td>
+ </tr>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=uddiPerspective.getMessage("FORM_LABEL_SERVICE_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_KEY)%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceDetailsWSDLURL");
+ sectionHeaderInfo.setOtherProperties(controller.getMessage("FORM_LABEL_WSDL_URL"));
+%>
+<jsp:include page="/uddi/forms/detailsSingleItem_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceDetailsNames");
+ String[] nameSpecificInfo = {"FORM_LABEL_NAMES","FORM_LABEL_NAME",String.valueOf(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_NAMES))};
+ sectionHeaderInfo.setOtherProperties(nameSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsLanguageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceDetailsDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsLanguageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceDetailsCategories");
+%>
+<jsp:include page="/uddi/forms/detailsCategories_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceDetailsAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </div>
+ </form>
+ </div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceInterfaceDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceInterfaceDetailsForm.jsp
new file mode 100644
index 000000000..7eb6702fc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ServiceInterfaceDetailsForm.jsp
@@ -0,0 +1,292 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ FormTool formTool = (FormTool)(currentToolManager.getSelectedTool());
+ ServiceInterfaceElement siElement = (ServiceInterfaceElement)selectedNode.getTreeElement();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(selectedNode);
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_SERVICE_INTERFACE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/detailstables.jsp" flush="true"/>
+<script language="javascript">
+ function setDefaults()
+ {
+ var serviceInterfaceDetailsWSDLURLTable = getTable("serviceInterfaceDetailsWSDLURL");
+ var serviceInterfaceDetailsNameTable = getTable("serviceInterfaceDetailsName");
+ var serviceInterfaceDetailsDescriptionsTable = getTable("serviceInterfaceDetailsDescriptions");
+ var serviceInterfaceDetailsIdentifiersTable = getTable("serviceInterfaceDetailsIdentifiers");
+ var serviceInterfaceDetailsCategoriesTable = getTable("serviceInterfaceDetailsCategories");
+<%
+ ListElement wsdlURLListElement = (ListElement)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ String wsdlURL = null;
+ if (wsdlURLListElement == null)
+ {
+ try
+ {
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ wsdlURL = uddi4jHelper.getWSDL(siElement.getTModel());
+ uddi4jHelper.getWSDLDefinition(wsdlURL);
+ if (wsdlURL == null)
+ wsdlURL = "temp.wsdl";
+ }
+ catch (Throwable t)
+ {
+ wsdlURL = "";
+ formTool.flagError(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ }
+ wsdlURLListElement = new ListElement(wsdlURL);
+ wsdlURLListElement.setTargetViewToolInfo(-1,-1,0);
+ formTool.setProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL,wsdlURLListElement);
+ }
+ else
+ wsdlURL = (String)wsdlURLListElement.getObject();
+ boolean isError = !formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL);
+ boolean isNewItem = (wsdlURLListElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsSingleItemRow("serviceInterfaceDetailsWSDLURL",<%=isError||isNewItem%>);
+ setDetailsWSDLURLSingleItemRow("serviceInterfaceDetailsWSDLURL",<%=ActionInputs.WSDL_TYPE_SERVICE_INTERFACE%>,"<%=HTMLUtils.JSMangle(wsdlURL)%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceInterfaceDetailsWSDLURLTable.rows[numberOfHeaderRows],"errantRow");
+<%
+ }
+
+ ListElement nameListElement = (ListElement)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ String name = (String)nameListElement.getObject();
+ isError = !formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME);
+ isNewItem = (nameListElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsSingleItemRow("serviceInterfaceDetailsName",<%=isError||isNewItem%>);
+ setDetailsNameSingleItemRow("serviceInterfaceDetailsName","<%=HTMLUtils.JSMangle(name)%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceInterfaceDetailsNameTable.rows[numberOfHeaderRows],"errantRow");
+<%
+ }
+
+ Vector descriptionIndexVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS);
+ if (descriptionIndexVector != null)
+ {
+ for (int i=0;i<descriptionIndexVector.size();i++)
+ {
+ ListElement listElement = (ListElement)descriptionIndexVector.elementAt(i);
+ Description description = (Description)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsLanguageInputRow("serviceInterfaceDetailsDescriptions","<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE"))%>",<%=isError||isNewItem%>);
+ setDetailsLanguageInputRow("serviceInterfaceDetailsDescriptions",<%=i%>,<%=listElement.getViewId()%>,"<%=description.getLang()%>","<%=HTMLUtils.JSMangle(description.getText())%>");
+<%
+ if (isError)
+ {
+%>
+ highlightErrantRow(serviceInterfaceDetailsDescriptionsTable.rows[<%=i%>+numberOfHeaderRows],"errantRow");
+<%
+ }
+ }
+ }
+
+ Vector idVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS);
+ if (idVector != null)
+ {
+ for (int i=0;i<idVector.size();i++)
+ {
+ ListElement listElement = (ListElement)idVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_IDENTIFIERS,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsIdentifierRow("serviceInterfaceDetailsIdentifiers",<%=isError||isNewItem%>);
+ setDetailsIdentifierRow("serviceInterfaceDetailsIdentifiers",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ Vector catVector = (Vector)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES);
+ if (catVector != null)
+ {
+ for (int i=0;i<catVector.size();i++)
+ {
+ ListElement listElement = (ListElement)catVector.elementAt(i);
+ KeyedReference kr = (KeyedReference)listElement.getObject();
+ isError = !formTool.isRowInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_CATEGORIES,i);
+ isNewItem = (listElement.getTargetViewId() == ActionInputs.VIEWID_DEFAULT);
+%>
+ addDetailsCategoryRow("serviceInterfaceDetailsCategories",<%=isError||isNewItem%>);
+ setDetailsCategoryRow("serviceInterfaceDetailsCategories",<%=i%>,<%=listElement.getViewId()%>,"<%=HTMLUtils.JSMangle(kr.getTModelKey())%>","<%=HTMLUtils.JSMangle(kr.getKeyName())%>","<%=HTMLUtils.JSMangle(kr.getKeyValue())%>");
+<%
+ }
+ }
+
+ // Authentication.
+ if (!regElement.isLoggedIn())
+ {
+ String publishURL = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL);
+ String userId = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID);
+ String password = (String)formTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD);
+%>
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle(publishURL)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle(userId)%>";
+ document.forms[0].<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle(password)%>";
+ document.getElementById("serviceInterfaceDetailsAuthentication").style.display = "";
+<%
+ }
+%>
+ showMainForm();
+ }
+
+ function showMainForm()
+ {
+ closeAllUddiChildWindows();
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+
+ function processForm(form)
+ {
+ if (handleSubmit(form))
+ {
+ processDetailsSingleItemTable("serviceInterfaceDetailsWSDLURL","<%=UDDIActionInputs.WSDL_URL_MODIFIED%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_WSDL_URL%>",form);
+ processDetailsSingleItemTable("serviceInterfaceDetailsName","<%=UDDIActionInputs.NAME_MODIFIED%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_NAME%>",form);
+ processDetailsLanguageInputTable("serviceInterfaceDetailsDescriptions","<%=UDDIActionInputs.DESCRIPTION_MODIFIED%>","<%=UDDIActionInputs.DESCRIPTION_VIEWID%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION_LANGUAGE%>","<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DESCRIPTION%>",form);
+ processDetailsIdentifierTable("serviceInterfaceDetailsIdentifiers",form);
+ processDetailsCategoryTable("serviceInterfaceDetailsCategories",form);
+ return true;
+ }
+ return false;
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UpdateServiceInterfaceActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return processForm(this)">
+ <table id="loadScreen">
+ <tr>
+ <td class="labels">
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+<%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = uddiPerspective.getMessage("ALT_SERVICE_INTERFACE_DETAILS");
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <input type="hidden" name="<%=UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY%>" value="<%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY)%>">
+ <table>
+ <tr>
+ <td class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_DETAILS_EDITABLE",selectedNode.getNodeName())%>
+ </td>
+ </tr>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=uddiPerspective.getMessage("FORM_LABEL_SERVICE_INTERFACE_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=formTool.getProperty(UDDIActionInputs.QUERY_INPUT_UUID_SERVICE_INTERFACE_KEY)%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsWSDLURL");
+ sectionHeaderInfo.setOtherProperties(controller.getMessage("FORM_LABEL_WSDL_URL"));
+%>
+<jsp:include page="/uddi/forms/detailsSingleItem_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsName");
+ sectionHeaderInfo.setOtherProperties(uddiPerspective.getMessage("FORM_LABEL_NAME"));
+%>
+<jsp:include page="/uddi/forms/detailsSingleItem_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsDescriptions");
+ String[] descSpecificInfo = {"FORM_LABEL_DESCRIPTIONS","FORM_LABEL_DESCRIPTION",String.valueOf(!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_DESCRIPTIONS))};
+ sectionHeaderInfo.setOtherProperties(descSpecificInfo);
+%>
+<jsp:include page="/uddi/forms/detailsLanguageInput_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsIdentifiers");
+%>
+<jsp:include page="/uddi/forms/detailsIdentifiers_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsCategories");
+%>
+<jsp:include page="/uddi/forms/detailsCategories_table.jsp" flush="true"/>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("serviceInterfaceDetailsAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </div>
+ </form>
+ </div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDIImportWSDLToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDIImportWSDLToWorkbenchForm.jsp
new file mode 100644
index 000000000..84228b292
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDIImportWSDLToWorkbenchForm.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request">
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ String wsdlURL;
+ // selectedNode should be either a service or a service interface node.
+ if (selectedNode instanceof ServiceNode)
+ {
+ ServiceNode serviceNode = (ServiceNode)selectedNode;
+ wsdlURL = serviceNode.getWSDLURLFromDetailsTool();
+ }
+ else
+ {
+ ServiceInterfaceNode siNode = (ServiceInterfaceNode)selectedNode;
+ wsdlURL = siNode.getWSDLURLFromDetailsTool();
+ }
+ formProperties.put("formActionLink","uddi/actions/UDDIImportWSDLToWorkbenchActionJSP.jsp");
+ formProperties.put("wsdlURL",wsdlURL);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/ImportToWorkbenchForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDILaunchWebServiceWizardForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDILaunchWebServiceWizardForm.jsp
new file mode 100644
index 000000000..5ffa252d4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UDDILaunchWebServiceWizardForm.jsp
@@ -0,0 +1,20 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="formActionLink" class="java.lang.StringBuffer" scope="request">
+<%
+ formActionLink.append("uddi/actions/UDDILaunchWebServiceWizardActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:include page="/forms/LaunchWebServiceWizardForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UnpublishForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UnpublishForm.jsp
new file mode 100644
index 000000000..36302d724
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/UnpublishForm.jsp
@@ -0,0 +1,90 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(navigatorManager.getSelectedNode());
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+
+ FormTool unpublishTool = (FormTool)(navigatorManager.getSelectedNode().getCurrentToolManager().getSelectedTool());
+%>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FORM_TITLE_UNPUBLISH")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+
+<script language="javascript">
+ function setDefaults()
+ {
+<%
+ if (!regElement.isLoggedIn())
+ {
+%>
+ var authenticationSection = document.getElementById("unpublishAuthentication");
+ authenticationSection.style.display = "";
+ var form = document.forms[0];
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>.value = "<%=HTMLUtils.JSMangle((String)unpublishTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL))%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>.value = "<%=HTMLUtils.JSMangle((String)unpublishTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID))%>";
+ form.<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>.value = "<%=HTMLUtils.JSMangle((String)unpublishTool.getProperty(UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD))%>";
+<%
+ }
+%>
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeAllUddiChildWindows()">
+ <div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/UnpublishActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+<%
+ String titleImagePath = unpublishTool.getHighlightedImageLink();
+ String title = unpublishTool.getAltText();
+%>
+<%@ include file="/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td>
+ <%=uddiPerspective.getMessage("FORM_LABEL_UNPUBLISH_DESC")%>
+ </td>
+ </tr>
+ </table>
+<%
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("unpublishAuthentication");
+%>
+<jsp:include page="/uddi/forms/authentication_table.jsp" flush="true"/>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </div>
+<script language="javascript">
+ setDefaults();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/advancedCommon_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/advancedCommon_table.jsp
new file mode 100644
index 000000000..cbe853e40
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/advancedCommon_table.jsp
@@ -0,0 +1,63 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNode = navigatorManager.getSelectedNode();
+ FormToolPropertiesInterface formToolPI = (FormToolPropertiesInterface)(selectedNode.getCurrentToolManager().getSelectedTool());
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td colspan=3 height=40 valign="bottom" align="left" class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_MAX_SEARCH_SET")%>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_SEARCH_SET))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_SEARCH_SET%>" class="smtextenter">
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3 class="labels">
+ <%=uddiPerspective.getMessage("FORM_LABEL_MAX_RESULTS")%>
+<%
+ if (!formToolPI.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_MAX_RESULTS))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_MAX_RESULTS%>" class="smtextenter">
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/authentication_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/authentication_table.jsp
new file mode 100644
index 000000000..685543d71
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/authentication_table.jsp
@@ -0,0 +1,85 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.AbstractUDDIElement,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryKeyProperty" class="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.SubQueryKeyProperty" scope="request"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+Node selectedNode = navigatorManager.getSelectedNode();
+TreeElement selectedElement = selectedNode.getTreeElement();
+FormTool formTool = (FormTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+String tableContainerId = sectionHeaderInfo.getContainerId();
+String username = null;
+String password = null;
+if (selectedElement instanceof AbstractUDDIElement)
+{
+ RegistryElement regElement = ((AbstractUDDIElement)selectedElement).getRegistryElement();
+ username = regElement.getUserId();
+ password = regElement.getCred();
+}
+if (username == null)
+ username = "";
+if (password == null)
+ password = "";
+%>
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="<%=tableContainerId+"_input_publish_url"%>"><%=uddiPerspective.getMessage("FORM_LABEL_PUBLISH_URL")%></label>
+ <%
+ if (!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td><input type="text" id="<%=tableContainerId+"_input_publish_url"%>" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PUBLISH_URL%>" class="textenter"></td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="<%=tableContainerId+"_input_user_id"%>"><%=uddiPerspective.getMessage("FORM_LABEL_USERID")%></label>
+ <%
+ if (!formTool.isInputValid(UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID))
+ {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td><input type="text" id="<%=tableContainerId+"_input_user_id"%>" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_USERID%>" value="<%=username%>" class="textenter"></td>
+ </tr>
+ <tr>
+ <td class="labels" height=30 valign="bottom"><label for="<%=tableContainerId+"_input_password"%>"><%=uddiPerspective.getMessage("FORM_LABEL_PASSWORD")%></td></label>
+ </tr>
+ <tr>
+ <td><input type="password" id="<%=tableContainerId+"_input_password"%>" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_PASSWORD%>" value="<%=password%>" class="textenter"></td>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/categories_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/categories_table.jsp
new file mode 100644
index 000000000..99fbee41d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/categories_table.jsp
@@ -0,0 +1,77 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.uddi4j.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_CATEGORIES")%></strong>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addCategoryRow('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_CATEGORY_TYPE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_VALUE")%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+<%
+ if (tableContainerId.startsWith("findBusinesses"))
+ {// condition to turn off for everything other than find by business searches.
+%>
+ <table>
+ <tr>
+ <td height=30 valign="center">
+ <label for="business_categories"><%=uddiPerspective.getMessage("FORM_LABEL_BUSINESS_CATEGORIES")%></label>
+ </td>
+ <td height=30 valign="center">
+ <select id="business_categories" class="selectlist">
+ <option><%=uddiPerspective.getMessage("FORM_OPTION_BUSINESSES_ONLY")%>
+ <option value="<%=FindQualifier.serviceSubset%>"><%=uddiPerspective.getMessage("FORM_OPTION_SERVICES_ONLY")%>
+ <option value="<%=FindQualifier.combineCategoryBags%>"><%=uddiPerspective.getMessage("FORM_OPTION_BOTH")%>
+ </select>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+%>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsCategories_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsCategories_table.jsp
new file mode 100644
index 000000000..0ca932776
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsCategories_table.jsp
@@ -0,0 +1,60 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_CATEGORIES")%></strong>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addDetailsCategoryRow('<%=tableContainerId%>',true)"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedDetailsCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:editSelectedDetailsCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_EDIT")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:cancelSelectedDetailsCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_CANCEL")%></a>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_CATEGORY_TYPE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_VALUE")%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsDiscoveryURLs_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsDiscoveryURLs_table.jsp
new file mode 100644
index 000000000..1ff02eb2c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsDiscoveryURLs_table.jsp
@@ -0,0 +1,68 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ boolean hasErrors = ((Boolean)sectionHeaderInfo.getOtherProperties()).booleanValue();
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURLS")%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addDetailsDiscoveryURLRow('<%=tableContainerId%>',true)"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedDetailsDiscoveryURLRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:editSelectedDetailsDiscoveryURLRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_EDIT")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:cancelSelectedDetailsDiscoveryURLRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_CANCEL")%></a>
+ </td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURL")%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsIdentifiers_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsIdentifiers_table.jsp
new file mode 100644
index 000000000..08d8cde21
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsIdentifiers_table.jsp
@@ -0,0 +1,60 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_IDENTIFIERS")%></strong>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addDetailsIdentifierRow('<%=tableContainerId%>',true)"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedDetailsIdentifierRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:editSelectedDetailsIdentifierRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_EDIT")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:cancelSelectedDetailsIdentifierRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_CANCEL")%></a>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_IDENTIFIER_TYPE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_VALUE")%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsLanguageInput_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsLanguageInput_table.jsp
new file mode 100644
index 000000000..594f2aa36
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsLanguageInput_table.jsp
@@ -0,0 +1,82 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String[] otherProperties = (String[])sectionHeaderInfo.getOtherProperties();
+ String[] titleKeys = {otherProperties[0],otherProperties[1]};
+ boolean hasErrors = otherProperties[2].equals(Boolean.TRUE.toString());
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage(titleKeys[0])%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+<%
+ String textControlTitleKey;
+ if (titleKeys[0].equals("FORM_LABEL_NAMES"))
+ textControlTitleKey = "FORM_CONTROL_TITLE_NAME_TEXT_VALUE";
+ else
+ textControlTitleKey = "FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE";
+%>
+ <a href="javascript:addDetailsLanguageInputRow('<%=tableContainerId%>','<%=HTMLUtils.JSMangle(uddiPerspective.getMessage(textControlTitleKey))%>',true)"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedDetailsLanguageInputRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:editSelectedDetailsLanguageInputRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_EDIT")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:cancelSelectedDetailsLanguageInputRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_CANCEL")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage(titleKeys[1])%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsSingleItem_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsSingleItem_table.jsp
new file mode 100644
index 000000000..41c7cff67
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/detailsSingleItem_table.jsp
@@ -0,0 +1,34 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String itemHeader = (String)sectionHeaderInfo.getOtherProperties();
+%>
+<table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+<div id="<%=tableContainerId%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=itemHeader%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/discoveryURLs_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/discoveryURLs_table.jsp
new file mode 100644
index 000000000..d0eebc6e4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/discoveryURLs_table.jsp
@@ -0,0 +1,62 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ boolean hasErrors = ((Boolean)sectionHeaderInfo.getOtherProperties()).booleanValue();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURLS")%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addDiscoveryURLRow('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DISCOVERYURL")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findQualifiers_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findQualifiers_table.jsp
new file mode 100644
index 000000000..d266ca4bc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findQualifiers_table.jsp
@@ -0,0 +1,65 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.uddi4j.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels"><strong><%=uddiPerspective.getMessage("FORM_LABEL_FINDQUALIFIERS")%></strong></td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table>
+ <tr>
+ <td><label for="combine_keys"><%=uddiPerspective.getMessage("FORM_LABEL_COMBINE_KEYS")%></label></td>
+ <td>
+ <select id="combine_keys" class="selectlist">
+ <option value="<%=FindQualifier.andAllKeys%>"><%=uddiPerspective.getMessage("FORM_OPTION_ANDALLKEYS")%>
+ <option value="<%=FindQualifier.orAllKeys%>"><%=uddiPerspective.getMessage("FORM_OPTION_ORALLKEYS")%>
+ <option value="<%=FindQualifier.orLikeKeys%>"><%=uddiPerspective.getMessage("FORM_OPTION_ORLIKEKEYS")%>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td><%=uddiPerspective.getMessage("FORM_LABEL_SORT_BY_NAME")%></td>
+ <td>
+ <input type="radio" id="advance_sort_by_name_asc" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SORT_BY_NAME%>" value="<%=FindQualifier.sortByNameAsc%>" checked><label for="advance_sort_by_name_asc"><%=uddiPerspective.getMessage("FORM_RADIO_SORT_ASC")%></label>
+ <input type="radio" id="advance_sort_by_name_desc" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SORT_BY_NAME%>" value="<%=FindQualifier.sortByNameDesc%>"><label for="advance_sort_by_name_desc"><%=uddiPerspective.getMessage("FORM_RADIO_SORT_DESC")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td><%=uddiPerspective.getMessage("FORM_LABEL_SORT_BY_DATE")%></td>
+ <td>
+ <input type="radio" id="advance_sort_by_date_asc" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SORT_BY_DATE%>" value="<%=FindQualifier.sortByDateAsc%>" checked><label for="advance_sort_by_date_asc"><%=uddiPerspective.getMessage("FORM_RADIO_SORT_ASC")%></label>
+ <input type="radio" id="advance_sort_by_date_desc" name="<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_SORT_BY_DATE%>" value="<%=FindQualifier.sortByDateDesc%>"><label for="advance_sort_by_date_desc"><%=uddiPerspective.getMessage("FORM_RADIO_SORT_DESC")%></label>
+ </td>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findformheader.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findformheader.inc
new file mode 100644
index 000000000..c3f901c02
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/findformheader.inc
@@ -0,0 +1,53 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <img src="<%=response.encodeURL(controller.getPathWithContext(titleImagePath))%>">
+ <strong><%=title%></strong>
+ </td>
+ <td width="*">&nbsp;</td>
+<%
+ int colspan = 2;
+ if (subQueryKey != null && subQueryKey.length() > 0)
+ {
+ int nodeId = selectedNode.getNodeId();
+ int toolId = formTool.getToolId();
+ int viewId = selectedNode.getViewId();
+ int viewToolId = selectedNode.getViewToolId();
+ int count = 1;
+%>
+ <td align="right">
+ <a href="<%=response.encodeURL(controller.getPathWithContext(SelectFindToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,"",false)))%>"><%=count%></a>
+ </td>
+<%
+ String currentSubQueryKey = subQueryKey;
+ int separatorPos = -1;
+ while ((separatorPos = currentSubQueryKey.indexOf(':')) != -1)
+ {
+ count++;
+%>
+ <td align="right">
+ <a href="<%=response.encodeURL(controller.getPathWithContext(SelectFindToolAction.getActionLink(nodeId,toolId,viewId,viewToolId,currentSubQueryKey.substring(0,separatorPos),false)))%>"><%=count%></a>
+ </td>
+<%
+ currentSubQueryKey = currentSubQueryKey.substring(separatorPos+1,currentSubQueryKey.length());
+ }
+ colspan += count;
+ }
+%>
+ </tr>
+ <tr>
+ <td height=20 colspan=<%=colspan%>> <img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"> </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/identifiers_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/identifiers_table.jsp
new file mode 100644
index 000000000..82995f4cd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/identifiers_table.jsp
@@ -0,0 +1,54 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_IDENTIFIERS")%></strong>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:addIdentifierRow('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_IDENTIFIER_TYPE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_KEY_VALUE")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/languageInput_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/languageInput_table.jsp
new file mode 100644
index 000000000..0453210e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/languageInput_table.jsp
@@ -0,0 +1,86 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String[] otherProperties = (String[])sectionHeaderInfo.getOtherProperties();
+ String[] titleKeys = {otherProperties[0],otherProperties[1]};
+ boolean hasErrors = otherProperties[2].equals(Boolean.TRUE.toString());
+ boolean isFind = tableContainerId.startsWith("find");
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage(titleKeys[0])%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+<%
+ String textControlTitleKey;
+ if (titleKeys[0].equals("FORM_LABEL_NAMES"))
+ textControlTitleKey = "FORM_CONTROL_TITLE_NAME_TEXT_VALUE";
+ else
+ textControlTitleKey = "FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE";
+%>
+ <a href="javascript:addLanguageInputRow('<%=tableContainerId%>','<%=HTMLUtils.JSMangle(uddiPerspective.getMessage(textControlTitleKey))%>')">
+ <%=uddiPerspective.getMessage("FORM_LINK_ADD")%>
+ </a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage(titleKeys[1])%></th>
+ </tr>
+ </table>
+<%
+ if (isFind)
+ {// condition to turn off when publishing to come.
+%>
+<jsp:include page="/uddi/forms/names_findQualifiers_table.jsp" flush="true"/>
+<%
+ }
+%>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/names_findQualifiers_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/names_findQualifiers_table.jsp
new file mode 100644
index 000000000..43ee68b67
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/names_findQualifiers_table.jsp
@@ -0,0 +1,31 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.uddi4j.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<table>
+ <tr>
+ <td>
+ <input type="checkbox" id="find_qualifier_exact_name_match" value="<%=FindQualifier.exactNameMatch%>"><label for="find_qualifier_exact_name_match"><%=uddiPerspective.getMessage("FORM_LABEL_EXACT_NAME_MATCH")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="checkbox" id="find_qualifier_case_sensitive_match" value="<%=FindQualifier.caseSensitiveMatch%>"><label for="find_qualifier_case_sensitive_match"><%=uddiPerspective.getMessage("FORM_LABEL_CASE_SENSITIVE_MATCH")%></label>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/results_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/results_table.jsp
new file mode 100644
index 000000000..2db782e6c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/results_table.jsp
@@ -0,0 +1,52 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String[] specificInfo = (String[])sectionHeaderInfo.getOtherProperties();
+ String title = specificInfo[0];
+ String parentContainerId = specificInfo[1];
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=title%></strong>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/resultsformheader.inc b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/resultsformheader.inc
new file mode 100644
index 000000000..b0370e28c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/resultsformheader.inc
@@ -0,0 +1,50 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2000, 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
+ *******************************************************************************/
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td align="left" nowrap>
+ <img src="<%=response.encodeURL(controller.getPathWithContext(titleImagePath))%>">
+ <strong><%=title%></strong>
+ </td>
+<%
+ int colspan = 1;
+ if (hasTarget)
+ {
+ String returnLink = TransferSubQueryResultsAction.getActionLinkForReturn();
+%>
+ <td nowrap width="*">&nbsp;</td>
+ <td align="right" nowrap>
+ <a href="<%=response.encodeURL(controller.getPathWithContext(returnLink))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=uddiPerspective.getMessage("FORM_LINK_TARGET")%></a>
+ </td>
+<%
+ colspan += 2;
+ }
+%>
+ </tr>
+ <tr>
+ <td height=20 colspan=<%=colspan%>> <img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"> </td>
+ </tr>
+ <tr>
+ <td colspan=<%=colspan%>>
+<%
+ if (hasTarget)
+ {
+%>
+<%=uddiPerspective.getMessage("FORM_LABEL_SUBQUERY")%>
+<%
+ }
+%>
+<%=uddiPerspective.getMessage("FORM_LABEL_QUERY")%>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ud_categories_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ud_categories_table.jsp
new file mode 100644
index 000000000..d4fc18e66
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/ud_categories_table.jsp
@@ -0,0 +1,56 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.uddi4j.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage("FORM_LABEL_USER_DEFINED_CATEGORIES")%></strong>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:editSelectedDetailsUserDefinedCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_EDIT")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:cancelSelectedDetailsUserDefinedCategoryRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_CANCEL")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:'';">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor" width="15%"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor" width="10%"><%=uddiPerspective.getMessage("FORM_LABEL_CHECKED")%></th>
+ <th class="headercolor" width="70%"><%=uddiPerspective.getMessage("FORM_LABEL_FILE")%></th>
+ <th class="headercolor" width="*"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjectsPublisherAssertions_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjectsPublisherAssertions_table.jsp
new file mode 100644
index 000000000..eeeffdfd7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjectsPublisherAssertions_table.jsp
@@ -0,0 +1,84 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.BusinessElement,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String[] specificInfo = (String[])sectionHeaderInfo.getOtherProperties();
+ String tableTitleKey = specificInfo[0];
+ boolean hasErrors = specificInfo[1].equals(Boolean.TRUE.toString());
+ String queryItemString = specificInfo[2];
+ String parentContainerId = specificInfo[3];
+ String transferTargetKey = specificInfo[4];
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage(tableTitleKey)%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+<%
+ if (sectionHeaderInfo.isDynamic())
+ {
+%>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:initiateSubQuery('<%=parentContainerId%>','<%=transferTargetKey%>',<%=queryItemString%>,true)"><%=uddiPerspective.getMessage("FORM_LINK_GET")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:initiateSubQuery('<%=parentContainerId%>','<%=transferTargetKey%>',<%=queryItemString%>,false)"><%=uddiPerspective.getMessage("FORM_LINK_FIND")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+<%
+ }
+%>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=((BusinessElement)uddiPerspective.getNavigatorManager().getSelectedNode().getTreeElement()).getBusinessEntity().getDefaultNameString()%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DIRECTION")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_ASSERTION_TYPE")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjects_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjects_table.jsp
new file mode 100644
index 000000000..f8a063658
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/forms/uddiObjects_table.jsp
@@ -0,0 +1,80 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ String[] specificInfo = (String[])sectionHeaderInfo.getOtherProperties();
+ String tableTitleKey = specificInfo[0];
+ boolean hasErrors = specificInfo[1].equals(Boolean.TRUE.toString());
+ String queryItemString = specificInfo[2];
+ String parentContainerId = specificInfo[3];
+ String transferTargetKey = specificInfo[4];
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=uddiPerspective.getMessage(tableTitleKey)%></strong>
+<%
+ if (hasErrors)
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+<%
+ if (sectionHeaderInfo.isDynamic())
+ {
+%>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:initiateSubQuery('<%=parentContainerId%>','<%=transferTargetKey%>',<%=queryItemString%>,true)"><%=uddiPerspective.getMessage("FORM_LINK_GET")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:initiateSubQuery('<%=parentContainerId%>','<%=transferTargetKey%>',<%=queryItemString%>,false)"><%=uddiPerspective.getMessage("FORM_LINK_FIND")%></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <a href="javascript:removeSelectedRows('<%=tableContainerId%>')"><%=uddiPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+<%
+ }
+%>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerId%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor"><%=uddiPerspective.getMessage("FORM_LABEL_DESCRIPTION")%></th>
+ </tr>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_enabled.gif
new file mode 100644
index 000000000..3afd94a2f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_highlighted.gif
new file mode 100644
index 000000000..d3d6a778b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/business_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_enabled.gif
new file mode 100644
index 000000000..a85c09742
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_highlighted.gif
new file mode 100644
index 000000000..df3043ff2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_closed_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_open_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_open_highlighted.gif
new file mode 100644
index 000000000..6ad7cea3a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/businesses_open_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/category.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/category.gif
new file mode 100644
index 000000000..4514d7d21
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/category.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_enabled.gif
new file mode 100644
index 000000000..5c18d74c4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_highlighted.gif
new file mode 100644
index 000000000..d540a01f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/find_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_enabled.gif
new file mode 100644
index 000000000..875066b5f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_highlighted.gif
new file mode 100644
index 000000000..8d5699ce5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/open_registry_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_enabled.gif
new file mode 100644
index 000000000..3c4263cc5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_highlighted.gif
new file mode 100644
index 000000000..62cef1f31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_enabled.gif
new file mode 100644
index 000000000..45894fde3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_highlighted.gif
new file mode 100644
index 000000000..d45ea5cad
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publish_service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_enabled.gif
new file mode 100644
index 000000000..1eff85563
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_highlighted.gif
new file mode 100644
index 000000000..54e992fd6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/publisher_assertions_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_enabled.gif
new file mode 100644
index 000000000..7737d7b85
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_highlighted.gif
new file mode 100644
index 000000000..9d5500cf0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_closed_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_open_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_open_highlighted.gif
new file mode 100644
index 000000000..b6ca15439
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/queries_open_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/query.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/query.gif
new file mode 100644
index 000000000..0607660ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/query.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_enabled.gif
new file mode 100644
index 000000000..89d796f21
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_highlighted.gif
new file mode 100644
index 000000000..401506fe7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/referenced_services_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/registry.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/registry.gif
new file mode 100644
index 000000000..5b43cae7b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/registry.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/regstrycat_obj.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/regstrycat_obj.gif
new file mode 100644
index 000000000..d37d59efc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/regstrycat_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_highlighted.gif
new file mode 100644
index 000000000..3a6714bf9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interface_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interface_highlighted.gif
new file mode 100644
index 000000000..21325ca77
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interface_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_enabled.gif
new file mode 100644
index 000000000..fbe4a748d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_highlighted.gif
new file mode 100644
index 000000000..9bd9820d2
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_closed_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_open_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_open_highlighted.gif
new file mode 100644
index 000000000..9afcc01e1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/service_interfaces_open_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_enabled.gif
new file mode 100644
index 000000000..c398f6fc8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_highlighted.gif
new file mode 100644
index 000000000..5e6544f2d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_closed_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_enabled.gif
new file mode 100644
index 000000000..282b4c0c7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_highlighted.gif
new file mode 100644
index 000000000..8f860520f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/services_open_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish.gif
new file mode 100644
index 000000000..b6922ac11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_enabled.gif
new file mode 100644
index 000000000..a25416492
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_highlighted.gif
new file mode 100644
index 000000000..d730b0fee
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_bus_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_enabled.gif
new file mode 100644
index 000000000..4e4dd3c38
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_highlighted.gif
new file mode 100644
index 000000000..48bd83fb4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_enabled.gif
new file mode 100644
index 000000000..60eb1999e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_highlighted.gif
new file mode 100644
index 000000000..59713e2e5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/images/unpublish_service_interface_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_container.jsp
new file mode 100644
index 000000000..ae8fbb029
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=UDDIFrameNames.NAVIGATOR_TOOLBAR%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/navigator_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=UDDIFrameNames.NAVIGATOR_CONTENT%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/navigator_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_content.jsp
new file mode 100644
index 000000000..9aa193bbc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_content.jsp
@@ -0,0 +1,50 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/treeview.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/treeview.js"))%>">
+ </script>
+</head>
+<%
+ String selectedAnchorName = "";
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ int focusedNodeId = navigatorManager.getFocusedNodeId();
+ String focusedAnchorName = String.valueOf(focusedNodeId);
+ Node selectedNode = navigatorManager.getSelectedNode();
+ if (selectedNode != null)
+ {
+ selectedAnchorName = selectedNode.getAnchorName();
+ if (focusedNodeId == selectedNode.getNodeId())
+ focusedAnchorName = selectedAnchorName;
+ }
+%>
+<body onLoad="self.location.hash='#<%=focusedAnchorName%>';setSelectedAnchorName('<%=selectedAnchorName%>')" class="contentbodymargin">
+<div id="treecontentborder">
+<%=navigatorManager.renderTreeView(response)%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_toolbar.jsp
new file mode 100644
index 000000000..3c6ec0301
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/navigator_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/uddi/scripts/uddiframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("uddi/actions/ResizeUDDIFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(UDDIFrameNames.NAVIGATOR_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/uddi/forms/ProcessUDDIFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/navigator.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (uddiPerspective.getPerspectiveContentFramesetCols().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ else
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_NAVIGATOR")%></td>
+<%
+ String altRefresh = controller.getMessage("ALT_REFRESH");
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RefreshUDDINodeActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseup(this)" alt="<%=altRefresh%>" title="<%=altRefresh%>"></a></td>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ClearNavigatorNodeActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_container.jsp
new file mode 100644
index 000000000..12fbb5454
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=UDDIFrameNames.PROPERTIES_TOOLBAR%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/properties_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=UDDIFrameNames.PROPERTIES_CONTENT%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/properties_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_content.jsp
new file mode 100644
index 000000000..aef15b029
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_content.jsp
@@ -0,0 +1,76 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNavigatorNode = navigatorManager.getSelectedNode();
+ if (selectedNavigatorNode != null)
+ {
+ ToolManager toolManager;
+ if (selectedNavigatorNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNavigatorNode.getToolManager();
+ else
+ toolManager = selectedNavigatorNode.getViewToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ if (selectedTool != null && selectedTool.getToolType() != ToolTypes.ACTION)
+ {
+%>
+<script language="javascript">
+ location="<%=response.encodeURL(controller.getPathWithContext(selectedTool.getFormLink()))%>";
+</script>
+<%
+ }
+ else
+ {
+%>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_ACTION_SELECTED")%>
+ </td>
+ </tr>
+</table>
+<%
+ }
+ }
+ else
+ {
+%>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_NODE_SELECTED")%>
+ </td>
+ </tr>
+</table>
+<%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_toolbar.jsp
new file mode 100644
index 000000000..90047a443
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/properties_toolbar.jsp
@@ -0,0 +1,84 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/uddi/scripts/uddiframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("uddi/actions/ResizeUDDIFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(UDDIFrameNames.PROPERTIES_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/uddi/forms/ProcessUDDIFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/actions.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (uddiPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (uddiPerspective.getActionsContainerFramesetRows().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_ACTIONS")%></td>
+<%
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ Node selectedNavigatorNode = navigatorManager.getSelectedNode();
+ if (selectedNavigatorNode != null)
+ {
+ ToolManager toolManager;
+ if (selectedNavigatorNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNavigatorNode.getToolManager();
+ else
+ toolManager = selectedNavigatorNode.getViewToolManager();
+ for (int i=0;i<toolManager.getNumberOfTools();i++)
+ {
+ Tool tool = (Tool)toolManager.getTool(i);
+%>
+ <td valign="middle" align="center" width=25 height=25><%=tool.renderTool(response,controller)%></td>
+<%
+ }
+ }
+%>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/cbpanes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/cbpanes.jsp
new file mode 100644
index 000000000..8c2719827
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/cbpanes.jsp
@@ -0,0 +1,20 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<script language="javascript">
+ var categoryBrowserWindow = top;
+ var categoryBrowserWindowWorkArea = top.frames["<%=UDDIFrameNames.CATEGORIES_WORKAREA%>"];
+ var categoryBrowserWindowToolbar = categoryBrowserWindow.frames["<%=UDDIFrameNames.CATEGORIES_TOOLBAR%>"];
+ var categoryBrowserWindowContent = categoryBrowserWindow.frames["<%=UDDIFrameNames.CATEGORIES_CONTENT%>"];
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/detailstables.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/detailstables.jsp
new file mode 100644
index 000000000..b0c3ad61f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/detailstables.jsp
@@ -0,0 +1,1550 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ function addDetailsLanguageInputRow(tableContainerId,textControlTitle,hasError)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column2.className = "tablecells";
+ column2.width = "70%";
+ column3.className = "tablecells";
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ column1.appendChild(createHiddenElement("","<%=ActionInputs.VIEWID_DEFAULT%>")); <%// viewId%>
+ column1.appendChild(createHiddenElement("","")); <%// original language%>
+ column1.appendChild(createHiddenElement("","")); <%// original text%>
+ column1.appendChild(createHiddenElement("",textControlTitle)); <%// control title%>
+ column1.appendChild(createHiddenElement("",hasError)); <%// mode%>
+ if (hasError)
+ {
+ var languageSelect = document.createElement("select");
+ languageSelect.className = "selectlist";
+ populateLanguageSelect(languageSelect);
+ column1.appendChild(languageSelect);
+
+ var textInput = document.createElement("input");
+ textInput.className = "tabletextenter";
+ textInput.title = textControlTitle;
+ column2.appendChild(textInput);
+
+ addDetailsLanguageInputRowRemoveActionLink(tableContainerId,column3,table.rows.length);
+ }
+ else
+ {
+ column1.appendChild(document.createTextNode(""));
+ column2.appendChild(document.createTextNode(""));
+ addDetailsLanguageInputRowEditActionLink(tableContainerId,column3,table.rows.length);
+ }
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+
+ tableBody.appendChild(newRow);
+ }
+
+ function removeColumnChildren(column)
+ {
+ for (var i=0;i<column.childNodes.length;i++)
+ {
+ column.removeChild(column.childNodes[i]);
+ i--;
+ }
+ }
+
+ function addDetailsLanguageInputRowRemoveActionLink(tableContainerId,column,rowIndex)
+ {
+ var removeLink = document.createElement("a");
+ setJSLinkRowTarget(removeLink,"removeDetailsLanguageInputRow",tableContainerId,rowIndex);
+ removeLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_REMOVE"))%>"));
+ column.appendChild(removeLink);
+ }
+
+ function addDetailsLanguageInputRowEditActionLink(tableContainerId,column,rowIndex)
+ {
+ var editLink = document.createElement("a");
+ setJSLinkRowTarget(editLink,"editDetailsLanguageInputRow",tableContainerId,rowIndex);
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function addDetailsLanguageInputRowCancelActionLink(tableContainerId,column,rowIndex)
+ {
+ var cancelLink = document.createElement("a");
+ setJSLinkRowTarget(cancelLink,"cancelDetailsLanguageInputRowEdit",tableContainerId,rowIndex);
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function editDetailsLanguageInputRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+
+ var langId = column1.childNodes[1].value;
+ var inputValue = column1.childNodes[2].value;
+ var textControlTitle = column1.childNodes[3].value;
+ var editable = (column1.childNodes[4].value == "true")
+ if (editable)
+ return;
+ column1.childNodes[4].value = true;
+ var column1Control = column1.childNodes[5];
+
+ var languageSelect = document.createElement("select");
+ populateLanguageSelect(languageSelect);
+ column1.replaceChild(languageSelect,column1Control);
+ languageSelect.className = "selectlist";
+ setLanguageSelect(languageSelect,langId);
+
+ var column2Control = column2.childNodes[0];
+ var textInput = document.createElement("input");
+ column2.replaceChild(textInput,column2Control);
+ textInput.className = "tabletextenter";
+ textInput.title = textControlTitle;
+ textInput.value = inputValue;
+
+ removeColumnChildren(column3);
+ addDetailsLanguageInputRowCancelActionLink(tableContainerId,column3,rowIndex);
+ }
+
+ function setDetailsLanguageInputRow(tableContainerId,index,viewId,langId,inputValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+index];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ column1.childNodes[0].value = viewId;
+ column1.childNodes[1].value = langId;
+ column1.childNodes[2].value = inputValue;
+ var editable = (column1.childNodes[4].value == "true");
+ var column1Control = column1.childNodes[5];
+ if (editable)
+ setLanguageSelect(column1Control,langId);
+ else
+ {
+ var tempSelect = document.createElement("select");
+ populateLanguageSelect(tempSelect);
+ var language = setLanguageSelect(tempSelect,langId);
+ column1.replaceChild(document.createTextNode(getDefaultDisplayString(language)),column1Control);
+ }
+
+ var column2Control = column2.childNodes[0];
+ if (editable)
+ column2Control.value = inputValue;
+ else
+ column2.replaceChild(document.createTextNode(getDefaultDisplayString(inputValue)),column2Control)
+ }
+
+ function removeDetailsLanguageInputRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ table.deleteRow(rowIndex);
+ fixDetailsLanguageInputRowLinks(tableContainerId);
+ }
+
+ function cancelDetailsLanguageInputRowEdit(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+
+ var viewId = column1.childNodes[0].value;
+ var langId = column1.childNodes[1].value;
+ var inputValue = column1.childNodes[2].value;
+ var rowActionLinkHref = column3.childNodes[column3.childNodes.length-1].href;
+ if (rowActionLinkHref.indexOf("javascript:cancel") != 0)
+ return;
+
+ column1.childNodes[4].value = false;
+
+ var column1Control = column1.childNodes[5];
+ var tempSelect = document.createElement("select");
+ populateLanguageSelect(tempSelect);
+ var language = setLanguageSelect(tempSelect,langId);
+ column1.replaceChild(document.createTextNode(getDefaultDisplayString(language)),column1Control);
+
+ var column2Control = column2.childNodes[0];
+ column2.replaceChild(document.createTextNode(getDefaultDisplayString(inputValue)),column2Control);
+
+ removeColumnChildren(column3);
+ addDetailsLanguageInputRowEditActionLink(tableContainerId,column3,rowIndex);
+ }
+
+ function removeSelectedDetailsLanguageInputRows(tableContainerId)
+ {
+ removeSelectedRows(tableContainerId);
+ fixDetailsLanguageInputRowLinks(tableContainerId);
+ }
+
+ function fixDetailsLanguageInputRowLinks(tableContainerId)
+ {
+ <%// Fix the links%>
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var row = table.rows[i];
+ var columns = row.getElementsByTagName("td");
+ var rowCheckbox = columns.item(0).getElementsByTagName("input").item(0);
+
+ for (var j=1;j<columns.length;j++)
+ {
+ if (rowCheckbox.checked)
+ columns.item(j).className = "rowcolor";
+ else
+ columns.item(j).className = "tablecells";
+ }
+
+ var column1 = columns.item(1);
+ var column3 = columns.item(3);
+ var link = column3.childNodes[column3.childNodes.length-1];
+ var removeLink;
+ if (link.href.indexOf("javascript:remove") == 0)
+ removeLink = true;
+ else
+ removeLink = false;
+
+ removeColumnChildren(column3);
+ var editable = (column1.childNodes[4].value == "true");
+ if (link.href.indexOf("javascript:remove") == 0)
+ addDetailsLanguageInputRowRemoveActionLink(tableContainerId,column3,i);
+ else if (link.href.indexOf("javascript:cancel") == 0)
+ addDetailsLanguageInputRowCancelActionLink(tableContainerId,column3,i);
+ else if (link.href.indexOf("javascript:edit") == 0)
+ addDetailsLanguageInputRowEditActionLink(tableContainerId,column3,i);
+ }
+ }
+
+ function editSelectedDetailsLanguageInputRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ editDetailsLanguageInputRow(tableContainerId,i);
+ }
+ }
+
+ function cancelSelectedDetailsLanguageInputRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ cancelDetailsLanguageInputRowEdit(tableContainerId,i);
+ }
+ }
+
+ function addDetailsIdentifierRow(tableContainerId,hasError)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column1.width = "10%";
+ column2.className = "tablecells";
+ column2.width = "40%";
+ column3.className = "tablecells";
+ column3.width = "40%";
+ column4.className = "tablecells";
+
+ column1.appendChild(createHiddenElement("","<%=ActionInputs.VIEWID_DEFAULT%>")); <%// viewId%>
+ column1.appendChild(createHiddenElement("","")); <%// original key type%>
+ column1.appendChild(createHiddenElement("","")); <%// original key name%>
+ column1.appendChild(createHiddenElement("","")); <%// original key value%>
+ column1.appendChild(createHiddenElement("",hasError)); <%// mode%>
+
+ var identifierTypeSelect;
+ var keyNameTextInput;
+ if (hasError)
+ {
+ identifierTypeSelect = document.createElement("select");
+ identifierTypeSelect.onchange = handleIdentifierChange;
+ populateIdentifierTypeSelect(identifierTypeSelect);
+ identifierTypeSelect.className = "selectlist";
+ column1.appendChild(identifierTypeSelect);
+
+ keyNameTextInput = document.createElement("input");
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME")%>";
+ column2.appendChild(keyNameTextInput);
+
+ var keyValueTextInput = document.createElement("input");
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE")%>";
+ column3.appendChild(keyValueTextInput);
+ addDetailsIdentifierRowRemoveActionLink(tableContainerId,column4,table.rows.length);
+ }
+ else
+ {
+ column1.appendChild(document.createTextNode(""));
+ column2.appendChild(document.createTextNode(""));
+ column3.appendChild(document.createTextNode(""));
+ addDetailsIdentifierRowEditActionLink(tableContainerId,column4,table.rows.length);
+ }
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+ tableBody.appendChild(newRow);
+ if (hasError)
+ keyNameTextInput.value = identifierTypeSelect.options[0].text;
+ }
+
+ function addDetailsIdentifierRowRemoveActionLink(tableContainerId,column,rowIndex)
+ {
+ var removeLink = document.createElement("a");
+ setJSLinkRowTarget(removeLink,"removeDetailsIdentifierRow",tableContainerId,rowIndex);
+ removeLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_REMOVE"))%>"));
+ column.appendChild(removeLink);
+ }
+
+ function addDetailsIdentifierRowEditActionLink(tableContainerId,column,rowIndex)
+ {
+ var editLink = document.createElement("a");
+ setJSLinkRowTarget(editLink,"editDetailsIdentifierRow",tableContainerId,rowIndex);
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function addDetailsIdentifierRowCancelActionLink(tableContainerId,column,rowIndex)
+ {
+ var cancelLink = document.createElement("a");
+ setJSLinkRowTarget(cancelLink,"cancelDetailsIdentifierRowEdit",tableContainerId,rowIndex);
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function editDetailsIdentifierRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var tModelKey = column1.childNodes[1].value
+ var keyName = column1.childNodes[2].value;
+ var keyValue = column1.childNodes[3].value;
+ var editable = (column1.childNodes[4].value == "true")
+ if (editable)
+ return;
+ column1.childNodes[4].value = true;
+
+ var column1Control = column1.childNodes[5];
+ var identifierTypeSelect = document.createElement("select");
+ identifierTypeSelect.onchange = handleIdentifierChange;
+ populateIdentifierTypeSelect(identifierTypeSelect);
+ column1.replaceChild(identifierTypeSelect,column1Control);
+ identifierTypeSelect.className = "selectlist";
+ setTModelKeySelect(identifierTypeSelect,tModelKey);
+
+ var column2Control = column2.childNodes[0];
+ var keyNameTextInput = document.createElement("input");
+ column2.replaceChild(keyNameTextInput,column2Control);
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME")%>";
+ keyNameTextInput.value = keyName;
+
+ var column3Control = column3.childNodes[0];
+ var keyValueTextInput = document.createElement("input");
+ column3.replaceChild(keyValueTextInput,column3Control);
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE")%>";
+ keyValueTextInput.value = keyValue;
+
+ removeColumnChildren(column4);
+
+ addDetailsIdentifierRowCancelActionLink(tableContainerId,column4,rowIndex);
+ }
+
+ function setDetailsIdentifierRow(tableContainerId,index,viewId,tModelKey,keyName,keyValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+index];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ column1.childNodes[0].value = viewId;
+ column1.childNodes[1].value = tModelKey;
+ column1.childNodes[2].value = keyName;
+ column1.childNodes[3].value = keyValue;
+ var editable = (column1.childNodes[4].value == "true");
+ var column1Control = column1.childNodes[5];
+ if (editable)
+ setTModelKeySelect(column1Control,tModelKey);
+ else
+ {
+ var tempSelect = document.createElement("select");
+ populateIdentifierTypeSelect(tempSelect);
+ var tModelKeyValue = setTModelKeySelect(tempSelect,tModelKey);
+ column1.replaceChild(document.createTextNode(tModelKeyValue),column1Control);
+ }
+
+ var column2Control = column2.childNodes[0];
+ if (editable)
+ column2Control.value = keyName;
+ else
+ column2.replaceChild(document.createTextNode(keyName),column2Control);
+
+ var column3Control = column3.childNodes[0];
+ if (editable)
+ column3Control.value = keyValue;
+ else
+ column3.replaceChild(document.createTextNode(keyValue),column3Control);
+ }
+
+ function removeDetailsIdentifierRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ table.deleteRow(rowIndex);
+ fixDetailsIdentifierRowLinks(tableContainerId);
+ }
+
+ function cancelDetailsIdentifierRowEdit(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var viewId = column1.childNodes[0].value;
+ var tModelKey = column1.childNodes[1].value;
+ var keyName = column1.childNodes[2].value;
+ var keyValue = column1.childNodes[3].value;
+ var rowActionLinkHref = column4.childNodes[column4.childNodes.length-1].href;
+ if (rowActionLinkHref.indexOf("javascript:cancel") != 0)
+ return;
+ column1.childNodes[4].value = false;
+
+ var column1Control = column1.childNodes[5];
+ var tempSelect = document.createElement("select");
+ populateIdentifierTypeSelect(tempSelect);
+ var tModelKeyValue = setTModelKeySelect(tempSelect,tModelKey);
+ column1.replaceChild(document.createTextNode(tModelKeyValue),column1Control);
+
+ var column2Control = column2.childNodes[0];
+ column2.replaceChild(document.createTextNode(keyName),column2Control);
+
+ var column3Control = column3.childNodes[0];
+ column3.replaceChild(document.createTextNode(keyValue),column3Control);
+
+ removeColumnChildren(column4);
+ addDetailsIdentifierRowEditActionLink(tableContainerId,column4,rowIndex);
+ }
+
+ function removeSelectedDetailsIdentifierRows(tableContainerId)
+ {
+ removeSelectedRows(tableContainerId);
+ <%// Fix the links%>
+ fixDetailsIdentifierRowLinks(tableContainerId);
+ }
+
+ function fixDetailsIdentifierRowLinks(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var row = table.rows[i];
+ var columns = row.getElementsByTagName("td");
+ var rowCheckbox = columns.item(0).getElementsByTagName("input").item(0);
+ for (var j=1;j<columns.length;j++)
+ {
+ if (rowCheckbox.checked)
+ columns.item(j).className = "rowcolor";
+ else
+ columns.item(j).className = "tablecells";
+ }
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var column4 = columns.item(4);
+ var link = column4.childNodes[column4.childNodes.length-1];
+ var removeLink;
+ if (link.href.indexOf("javascript:remove") == 0)
+ removeLink = true;
+ else
+ removeLink = false;
+ removeColumnChildren(column4);
+
+ if (link.href.indexOf("javascript:remove") == 0)
+ addDetailsIdentifierRowRemoveActionLink(tableContainerId,column4,i);
+ else if (link.href.indexOf("javascript:edit") == 0)
+ addDetailsIdentifierRowEditActionLink(tableContainerId,column4,i);
+ else if (link.href.indexOf("javascript:cancel") == 0)
+ addDetailsIdentifierRowCancelActionLink(tableContainerId,column4,i);
+ }
+ }
+
+ function editSelectedDetailsIdentifierRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ editDetailsIdentifierRow(tableContainerId,i);
+ }
+ }
+
+ function cancelSelectedDetailsIdentifierRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ cancelDetailsIdentifierRowEdit(tableContainerId,i);
+ }
+ }
+
+ function addDetailsCategoryRow(tableContainerId,hasError)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column1.width = "5%";
+ column2.className = "tablecells";
+ column2.width = "55%";
+ column3.className = "tablecells";
+ column3.width = "25%";
+ column4.className = "tablecells";
+
+ column1.appendChild(createHiddenElement("","<%=ActionInputs.VIEWID_DEFAULT%>")); <%// viewId%>
+ column1.appendChild(createHiddenElement("","")); <%// original key type%>
+ column1.appendChild(createHiddenElement("","")); <%// original key name%>
+ column1.appendChild(createHiddenElement("","")); <%// original key value%>
+ column1.appendChild(createHiddenElement("",hasError)); <%// mode%>
+
+ if (hasError)
+ {
+ var categoryTypeSelect = document.createElement("select");
+ populateCategoryTypeSelect(categoryTypeSelect);
+ categoryTypeSelect.className = "selectlist";
+ column1.appendChild(categoryTypeSelect);
+
+ var keyNameTextInput = document.createElement("input");
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_NAME")%>";
+ column2.appendChild(keyNameTextInput);
+
+ var keyValueTextInput = document.createElement("input");
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE")%>";
+ column3.appendChild(keyValueTextInput);
+ addCategoryRowBrowseLink(tableContainerId,column4,table.rows.length);
+ }
+ else
+ {
+ column1.appendChild(document.createTextNode(""));
+ column2.appendChild(document.createTextNode(""));
+ column3.appendChild(document.createTextNode(""));
+ addDetailsCategoryRowEditActionLink(tableContainerId,column4,table.rows.length);
+ }
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+ tableBody.appendChild(newRow);
+ }
+
+ function addDetailsCategoryRowCancelActionLink(tableContainerId,column,rowIndex)
+ {
+ var cancelLink = document.createElement("a");
+ setJSLinkRowTarget(cancelLink,"cancelDetailsCategoryRowEdit",tableContainerId,rowIndex);
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function addDetailsCategoryRowBrowseCancelActionLinks(tableContainerId,column,rowIndex)
+ {
+ addCategoryRowBrowseLink(tableContainerId,column,rowIndex);
+ column.appendChild(document.createTextNode(" "));
+ addDetailsCategoryRowCancelActionLink(tableContainerId,column,rowIndex);
+ }
+
+ function addDetailsCategoryRowEditActionLink(tableContainerId,column,rowIndex)
+ {
+ var editLink = document.createElement("a");
+ setJSLinkRowTarget(editLink,"editDetailsCategoryRow",tableContainerId,rowIndex);
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function addDetailsCategoryRowRemoveActionLink(tableContainerId,column,rowIndex)
+ {
+ var removeLink = document.createElement("a");
+ setJSLinkRowTarget(removeLink,"removeDetailsCategoryRow",tableContainerId,rowIndex);
+ removeLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_REMOVE"))%>"));
+ column.appendChild(removeLink);
+ }
+
+ function addDetailsCategoryRowBrowseRemoveActionLinks(tableContainerId,column,rowIndex)
+ {
+ addCategoryRowBrowseLink(tableContainerId,column,rowIndex);
+ column.appendChild(document.createTextNode(" "));
+ addDetailsCategoryRowRemoveActionLink(tableContainerId,column,rowIndex);
+ }
+
+ function editDetailsCategoryRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var tModelKey = column1.childNodes[1].value
+ var keyName = column1.childNodes[2].value;
+ var keyValue = column1.childNodes[3].value;
+ var editable = (column1.childNodes[4].value == "true")
+ if (editable)
+ return;
+ column1.childNodes[4].value = true;
+
+ var column1Control = column1.childNodes[5];
+ var categoryTypeSelect = document.createElement("select");
+ populateCategoryTypeSelect(categoryTypeSelect);
+ column1.replaceChild(categoryTypeSelect,column1Control);
+ categoryTypeSelect.className = "selectlist";
+ setTModelKeySelect(categoryTypeSelect,tModelKey);
+
+ var column2Control = column2.childNodes[0];
+ var keyNameTextInput = document.createElement("input");
+ column2.replaceChild(keyNameTextInput,column2Control);
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_NAME")%>";
+ keyNameTextInput.value = keyName;
+
+ var column3Control = column3.childNodes[0];
+ var keyValueTextInput = document.createElement("input");
+ column3.replaceChild(keyValueTextInput,column3Control);
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE")%>";
+ keyValueTextInput.value = keyValue;
+
+ removeColumnChildren(column4);
+
+ addDetailsCategoryRowBrowseCancelActionLinks(tableContainerId,column4,rowIndex);
+ }
+
+ function setDetailsCategoryRow(tableContainerId,index,viewId,tModelKey,keyName,keyValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+index];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ column1.childNodes[0].value = viewId;
+ column1.childNodes[1].value = tModelKey;
+ column1.childNodes[2].value = keyName;
+ column1.childNodes[3].value = keyValue;
+ var editable = (column1.childNodes[4].value == "true");
+
+ var column1Control = column1.childNodes[5];
+ if (editable)
+ setTModelKeySelect(column1Control,tModelKey);
+ else
+ {
+ var tempSelect = document.createElement("select");
+ populateCategoryTypeSelect(tempSelect);
+ var tModelKeyValue = setTModelKeySelect(tempSelect,tModelKey);
+ column1.replaceChild(document.createTextNode(tModelKeyValue),column1Control);
+ }
+
+ var column2Control = column2.childNodes[0];
+ if (editable)
+ column2Control.value = keyName;
+ else
+ column2.replaceChild(document.createTextNode(keyName),column2Control);
+
+ var column3Control = column3.childNodes[0];
+ if (editable)
+ column3Control.value = keyValue;
+ else
+ column3.replaceChild(document.createTextNode(keyValue),column3Control);
+ }
+
+ function removeDetailsCategoryRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ table.deleteRow(rowIndex);
+ fixDetailsCategoryRowLinks(tableContainerId);
+ }
+
+ function cancelDetailsCategoryRowEdit(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var viewId = column1.childNodes[0].value;
+ var tModelKey = column1.childNodes[1].value;
+ var keyName = column1.childNodes[2].value;
+ var keyValue = column1.childNodes[3].value;
+ var rowActionLinkHref = column4.childNodes[column4.childNodes.length-1].href;
+ if (rowActionLinkHref.indexOf("javascript:cancel") != 0)
+ return;
+ column1.childNodes[4].value = false;
+
+ var column1Control = column1.childNodes[5];
+ var tempSelect = document.createElement("select");
+ populateCategoryTypeSelect(tempSelect);
+ var tModelKeyValue = setTModelKeySelect(tempSelect,tModelKey);
+ column1.replaceChild(document.createTextNode(tModelKeyValue),column1Control);
+
+ var column2Control = column2.childNodes[0];
+ column2.replaceChild(document.createTextNode(keyName),column2Control);
+
+ var column3Control = column3.childNodes[0];
+ column3.replaceChild(document.createTextNode(keyValue),column3Control);
+
+ removeColumnChildren(column4);
+ addDetailsCategoryRowEditActionLink(tableContainerId,column4,rowIndex);
+ if (rowIndex == targetCategoryRow)
+ closeCategoryBrowser();
+ }
+
+ function removeSelectedDetailsCategoryRows(tableContainerId)
+ {
+ removeSelectedRows(tableContainerId);
+ <%// Fix the links%>
+ fixDetailsCategoryRowLinks(tableContainerId);
+ }
+
+ function fixDetailsCategoryRowLinks(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var row = table.rows[i];
+ var columns = row.getElementsByTagName("td");
+ var rowCheckbox = columns.item(0).getElementsByTagName("input").item(0);
+ for (var j=1;j<columns.length;j++)
+ {
+ if (rowCheckbox.checked)
+ columns.item(j).className = "rowcolor";
+ else
+ columns.item(j).className = "tablecells";
+ }
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var column4 = columns.item(4);
+<%
+ // Browse, Remove
+ // Browse, Cancel
+ // Edit
+ // Browse
+%>
+ var lastLink = column4.childNodes[column4.childNodes.length-1];
+ removeColumnChildren(column4);
+ if (lastLink.href.indexOf("javascript:remove") == 0)
+ addDetailsCategoryRowBrowseRemoveActionLinks(tableContainerId,column4,i);
+ else if (lastLink.href.indexOf("javascript:cancel") == 0)
+ addDetailsCategoryRowBrowseCancelActionLinks(tableContainerId,column4,i);
+ else if (lastLink.href.indexOf("javascript:edit") == 0)
+ addDetailsCategoryRowEditActionLink(tableContainerId,column4,i);
+ else if (lastLink.href.indexOf("javascript:open") == 0)
+ addCategoryRowBrowseLink(tableContainerId,column4,i);
+ }
+ }
+
+ function editSelectedDetailsCategoryRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ editDetailsCategoryRow(tableContainerId,i);
+ }
+ }
+
+ function cancelSelectedDetailsCategoryRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ cancelDetailsCategoryRowEdit(tableContainerId,i);
+ }
+ }
+
+ function addDetailsUserDefinedCategoryRow(tableContainerId,tModelKey,categoryName,isChecked,fileName,hasError)
+ {
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column1.width = "15%";
+ column2.className = "tablecells";
+ column2.width = "10%";
+ column3.className = "tablecells";
+ column3.width = "70%";
+ column4.className = "tablecells";
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ column1.appendChild(createHiddenElement("",fileName)); <%// original file name%>
+ column1.appendChild(createHiddenElement("",hasError)); <%// mode%>
+ column1.appendChild(createHiddenElement("",tModelKey)); <%// tModelKey%>
+ column1.appendChild(document.createTextNode(categoryName));
+
+ column2.appendChild(document.createTextNode(isChecked));
+
+ if (hasError)
+ {
+ column3.appendChild(createHiddenElement("<%=UDDIActionInputs.CATEGORY_TMODEL_KEY%>",tModelKey));
+ var fileInput = document.createElement("input");
+ fileInput.setAttribute("name","<%=UDDIActionInputs.CATEGORY_FILENAME%>");
+ fileInput.setAttribute("type","file");
+ fileInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_FILE"))%>";
+ fileInput.className = "tablefilebrowse";
+ column3.appendChild(fileInput);
+ addDetailsUserDefinedCategoryRowCancelLink(tableContainerId,column4,table.rows.length);
+ }
+ else
+ {
+ column3.appendChild(document.createTextNode(fileName));
+ addDetailsUserDefinedCategoryRowEditLink(tableContainerId,column4,table.rows.length);
+ }
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+
+ tableBody.appendChild(newRow);
+ }
+
+ function addDetailsUserDefinedCategoryRowEditLink(tableContainerId,column,rowIndex)
+ {
+ var editLink = document.createElement("a");
+ setJSLinkRowTarget(editLink,"editDetailsUserDefinedCategoryRow",tableContainerId,rowIndex);
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function editDetailsUserDefinedCategoryRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var editable = (column1.childNodes[1].value == "true");
+ if (editable)
+ return;
+ var tModelKey = column1.childNodes[2].value;
+ column1.childNodes[1].value = true;
+
+ removeColumnChildren(column3);
+ column3.appendChild(createHiddenElement("<%=UDDIActionInputs.CATEGORY_TMODEL_KEY%>",tModelKey));
+ var fileInput = document.createElement("input");
+ fileInput.setAttribute("name","<%=UDDIActionInputs.CATEGORY_FILENAME%>");
+ fileInput.setAttribute("type","file");
+ fileInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_FILE"))%>";
+ fileInput.className = "tablefilebrowse";
+ column3.appendChild(fileInput);
+
+ removeColumnChildren(column4);
+
+ addDetailsUserDefinedCategoryRowCancelLink(tableContainerId,column4,rowIndex);
+ }
+
+ function addDetailsUserDefinedCategoryRowCancelLink(tableContainerId,column,rowIndex)
+ {
+ var cancelLink = document.createElement("a");
+ setJSLinkRowTarget(cancelLink,"cancelDetailsUserDefinedCategoryRowEdit",tableContainerId,rowIndex);
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function cancelDetailsUserDefinedCategoryRowEdit(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column3 = columns.item(3);
+ var column4 = columns.item(4);
+
+ var editable = (column1.childNodes[1].value == "true");
+ if (!editable)
+ return;
+ column1.childNodes[1].value = false;
+
+ removeColumnChildren(column3);
+ column3.appendChild(document.createTextNode(column1.childNodes[0].value));
+
+ removeColumnChildren(column4);
+
+ addDetailsUserDefinedCategoryRowEditLink(tableContainerId,column4,rowIndex);
+ }
+
+ function editSelectedDetailsUserDefinedCategoryRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ editDetailsUserDefinedCategoryRow(tableContainerId,i);
+ }
+ }
+
+ function cancelSelectedDetailsUserDefinedCategoryRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ cancelDetailsUserDefinedCategoryRowEdit(tableContainerId,i);
+ }
+ }
+
+ function addDetailsDiscoveryURLRow(tableContainerId,hasError)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column1.width = "85%";
+ column2.className = "tablecells";
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ column1.appendChild(createHiddenElement("","<%=ActionInputs.VIEWID_DEFAULT%>")); <%// viewId%>
+ column1.appendChild(createHiddenElement("","")); <%// original Discovery URL%>
+ column1.appendChild(createHiddenElement("",hasError)); <%// mode%>
+ if (hasError)
+ {
+ var textInput = document.createElement("input");
+ textInput.className = "tabletextenter";
+ textInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_DISCOVERY_URL")%>";
+ column1.appendChild(textInput);
+ addDetailsDiscoveryURLRowRemoveActionLink(tableContainerId,column2,table.rows.length);
+ }
+ else
+ {
+ column1.appendChild(document.createTextNode(""));
+ addDetailsDiscoveryURLRowEditActionLink(tableContainerId,column2,table.rows.length);
+ }
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+
+ tableBody.appendChild(newRow);
+ }
+
+ function addDetailsDiscoveryURLRowRemoveActionLink(tableContainerId,column,rowIndex)
+ {
+ var removeLink = document.createElement("a");
+ setJSLinkRowTarget(removeLink,"removeDetailsDiscoveryURLRow",tableContainerId,rowIndex);
+ removeLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_REMOVE"))%>"));
+ column.appendChild(removeLink);
+ }
+
+ function addDetailsDiscoveryURLRowEditActionLink(tableContainerId,column,rowIndex)
+ {
+ var editLink = document.createElement("a");
+ setJSLinkRowTarget(editLink,"editDetailsDiscoveryURLRow",tableContainerId,rowIndex);
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function addDetailsDiscoveryURLRowCancelActionLink(tableContainerId,column,rowIndex)
+ {
+ var cancelLink = document.createElement("a");
+ setJSLinkRowTarget(cancelLink,"cancelDetailsDiscoveryURLRowEdit",tableContainerId,rowIndex);
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function editDetailsDiscoveryURLRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+
+ var discoveryURL = column1.childNodes[1].value;
+ var editable = (column1.childNodes[2].value == "true")
+ if (editable)
+ return;
+ column1.childNodes[2].value = true;
+
+ var column1Control = column1.childNodes[3];
+ var textInput = document.createElement("input");
+ column1.replaceChild(textInput,column1Control);
+ textInput.className = "tabletextenter";
+ textInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_DISCOVERY_URL")%>";
+ textInput.value = discoveryURL;
+
+ removeColumnChildren(column2);
+ addDetailsDiscoveryURLRowCancelActionLink(tableContainerId,column2,rowIndex);
+ }
+
+ function setDetailsDiscoveryURLRow(tableContainerId,index,viewId,discoveryURL)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+index];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ column1.childNodes[0].value = viewId;
+ column1.childNodes[1].value = discoveryURL;
+ var editable = (column1.childNodes[2].value == "true");
+ var column1Control = column1.childNodes[3];
+ if (editable)
+ column1Control.value = discoveryURL;
+ else
+ column1.replaceChild(document.createTextNode(getDefaultDisplayString(discoveryURL)),column1Control);
+ }
+
+ function removeDetailsDiscoveryURLRow(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ table.deleteRow(rowIndex);
+ fixDetailsDiscoveryURLRowLinks(tableContainerId);
+ }
+
+ function cancelDetailsDiscoveryURLRowEdit(tableContainerId,rowIndex)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[rowIndex];
+ var columns = row.getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+
+ var viewId = column1.childNodes[0].value;
+ var discoveryURL = column1.childNodes[1].value;
+ var rowActionLinkHref = column2.childNodes[column2.childNodes.length-1].href;
+ if (rowActionLinkHref.indexOf("javascript:cancel") != 0)
+ return;
+
+ column1.childNodes[2].value = false;
+
+ var column1Control = column1.childNodes[3];
+ column1.replaceChild(document.createTextNode(getDefaultDisplayString(discoveryURL)),column1Control);
+
+ removeColumnChildren(column2);
+ addDetailsDiscoveryURLRowEditActionLink(tableContainerId,column2,rowIndex);
+ }
+
+ function removeSelectedDetailsDiscoveryURLRows(tableContainerId)
+ {
+ removeSelectedRows(tableContainerId);
+ fixDetailsDiscoveryURLRowLinks(tableContainerId);
+ }
+
+ function fixDetailsDiscoveryURLRowLinks(tableContainerId)
+ {
+ <%// Fix the links%>
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var row = table.rows[i];
+ var columns = row.getElementsByTagName("td");
+ var rowCheckbox = columns.item(0).getElementsByTagName("input").item(0);
+
+ for (var j=1;j<columns.length;j++)
+ {
+ if (rowCheckbox.checked)
+ columns.item(j).className = "rowcolor";
+ else
+ columns.item(j).className = "tablecells";
+ }
+
+ var column1 = columns.item(1);
+ var column2 = columns.item(2);
+ var link = column2.childNodes[column2.childNodes.length-1];
+ removeColumnChildren(column2);
+ var editable = (column1.childNodes[2].value == "true");
+ if (link.href.indexOf("javascript:remove") == 0)
+ addDetailsDiscoveryURLRowRemoveActionLink(tableContainerId,column2,i);
+ else if (link.href.indexOf("javascript:cancel") == 0)
+ addDetailsDiscoveryURLRowCancelActionLink(tableContainerId,column2,i);
+ else if (link.href.indexOf("javascript:edit") == 0)
+ addDetailsDiscoveryURLRowEditActionLink(tableContainerId,column2,i);
+ }
+ }
+
+ function editSelectedDetailsDiscoveryURLRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ editDetailsDiscoveryURLRow(tableContainerId,i);
+ }
+ }
+
+ function cancelSelectedDetailsDiscoveryURLRows(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ cancelDetailsDiscoveryURLRowEdit(tableContainerId,i);
+ }
+ }
+
+ function addDetailsSingleItemRow(tableContainerId,hasError)
+ {
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+
+ column0.className = "tablecells";
+ column0.width = "90%";
+ column1.className = "tablecells";
+
+ column0.appendChild(createHiddenElement("","")); <%// item value%>
+ column0.appendChild(createHiddenElement("",hasError)); <%// mode%>
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+
+ newRow.appendChild(column1);
+ tableBody.appendChild(newRow);
+ }
+
+ function addDetailsWSDLURLSingleItemRowBrowseActionLink(tableContainerId,wsdlType,column)
+ {
+ var browseLink = document.createElement("a");
+ browseLink.href = "javascript:openWSDLBrowser('contentborder',"+wsdlType+")";
+ browseLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LINK_BROWSE"))%>"));
+ column.appendChild(browseLink);
+ }
+
+ function addDetailsWSDLURLSingleItemRowBrowseCancelActionLinks(tableContainerId,wsdlType,column)
+ {
+ addDetailsWSDLURLSingleItemRowBrowseActionLink(tableContainerId,wsdlType,column);
+ column.appendChild(document.createTextNode(" "));
+ var cancelLink = document.createElement("a");
+ cancelLink.href = "javascript:cancelDetailsWSDLURLSingleItemRowEdit('"+tableContainerId+"')";
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function addDetailsWSDLURLSingleItemRowEditActionLink(tableContainerId,column)
+ {
+ var editLink = document.createElement("a");
+ editLink.href = "javascript:editDetailsWSDLURLSingleItemRow('"+tableContainerId+"')";
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function cancelDetailsWSDLURLSingleItemRowEdit(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ column0.childNodes[2].value = false;
+
+ var column0Control = column0.childNodes[column0.childNodes.length-1];
+ column0.replaceChild(document.createTextNode(getWSDLURLDisplay(column0.childNodes[0].value)),column0Control);
+
+ removeColumnChildren(column1);
+
+ addDetailsWSDLURLSingleItemRowEditActionLink(tableContainerId,column1);
+ }
+
+ function editDetailsWSDLURLSingleItemRow(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ var wsdlType = column0.childNodes[1].value;
+ column0.childNodes[2].value = true;
+
+ var column0Control = column0.childNodes[column0.childNodes.length-1];
+ var wsdlURLEditControl = createWSDLURLEditControl();
+ column0.replaceChild(wsdlURLEditControl,column0Control);
+ wsdlURLEditControl.className = "tabletextenter";
+ wsdlURLEditControl.value = getWSDLURLDisplay(column0.childNodes[0].value);
+
+ removeColumnChildren(column1);
+
+ addDetailsWSDLURLSingleItemRowBrowseCancelActionLinks(tableContainerId,wsdlType,column1);
+ }
+
+ function createWSDLURLEditControl()
+ {
+ var control;
+ if (isMicrosoftInternetExplorer())
+ control = document.createElement("<input name='<%=ActionInputs.QUERY_INPUT_WSDL_URL%>'>");
+ else
+ {
+ control = document.createElement("input");
+ control.setAttribute("name","<%=ActionInputs.QUERY_INPUT_WSDL_URL%>");
+ }
+ return control;
+ }
+
+ function getWSDLURLDisplay(wsdlURL)
+ {
+ if (wsdlURL.length < 1)
+ wsdlURLDisplay = "<%=HTMLUtils.JSMangle(controller.getMessage("MSG_ERROR_WSDL_URL_IS_UNREACHABLE"))%>";
+ else
+ wsdlURLDisplay = wsdlURL;
+ return wsdlURLDisplay;
+ }
+
+ function setDetailsWSDLURLSingleItemRow(tableContainerId,wsdlType,wsdlURL)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ column0.insertBefore(createHiddenElement("",wsdlType),column0.childNodes[1]);
+ var editable = (column0.childNodes[2].value == "true");
+ var wsdlURLDisplay = getWSDLURLDisplay(wsdlURL);
+ column0.childNodes[0].value = wsdlURL;
+
+ var column0Control;
+ if (editable)
+ {
+ column0Control = createWSDLURLEditControl();
+ column0Control.className = "tabletextenter";
+ addDetailsWSDLURLSingleItemRowBrowseActionLink(tableContainerId,wsdlType,column1);
+ }
+ else
+ {
+ column0Control = document.createTextNode(wsdlURLDisplay);
+ addDetailsWSDLURLSingleItemRowEditActionLink(tableContainerId,column1);
+ }
+ column0.appendChild(column0Control);
+ if (editable)
+ column0Control.value = wsdlURLDisplay;
+ }
+
+ function addDetailsNameSingleItemRowCancelActionLink(tableContainerId,column)
+ {
+ var cancelLink = document.createElement("a");
+ cancelLink.href = "javascript:cancelDetailsNameSingleItemRowEdit('"+tableContainerId+"')";
+ cancelLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_CANCEL"))%>"));
+ column.appendChild(cancelLink);
+ }
+
+ function addDetailsNameSingleItemRowEditActionLink(tableContainerId,column)
+ {
+ var editLink = document.createElement("a");
+ editLink.href = "javascript:editDetailsNameSingleItemRow('"+tableContainerId+"')";
+ editLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_LINK_EDIT"))%>"));
+ column.appendChild(editLink);
+ }
+
+ function editDetailsNameSingleItemRow(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ column0.childNodes[1].value = true;
+
+ var column0Control = column0.childNodes[column0.childNodes.length-1];
+ var textInput = document.createElement("input");
+ column0.replaceChild(textInput,column0Control);
+ textInput.className = "tabletextenter";
+ textInput.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_INPUT_TEXT_VALUE")%>";
+ textInput.value = column0.childNodes[0].value;
+
+ removeColumnChildren(column1);
+
+ addDetailsNameSingleItemRowCancelActionLink(tableContainerId,column1);
+ }
+
+ function cancelDetailsNameSingleItemRowEdit(tableContainerId)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ column0.childNodes[1].value = false;
+
+ var column0Control = column0.childNodes[column0.childNodes.length-1];
+ column0.replaceChild(document.createTextNode(column0.childNodes[0].value),column0Control);
+
+ for (var i=0;i<column1.childNodes.length;i++)
+ {
+ column1.removeChild(column1.childNodes[i]);
+ i--;
+ }
+ addDetailsNameSingleItemRowEditActionLink(tableContainerId,column1);
+ }
+
+ function setDetailsNameSingleItemRow(tableContainerId,name)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+
+ var editable = (column0.childNodes[1].value == "true");
+ column0.childNodes[0].value = name;
+
+ var column0Control;
+ if (editable)
+ {
+ column0Control = document.createElement("input");
+ column0Control.className = "tabletextenter";
+ column0Control.title = "<%=uddiPerspective.getMessage("FORM_CONTROL_TITLE_INPUT_TEXT_VALUE")%>";
+ column0Control.value = name;
+ column1.appendChild(document.createTextNode("<%=uddiPerspective.getMessage("FORM_LABEL_ACTIONS_NONE")%>"));
+ }
+ else
+ {
+ column0Control = document.createTextNode(name);
+ addDetailsNameSingleItemRowEditActionLink(tableContainerId,column1);
+ }
+ column0.appendChild(column0Control);
+ }
+
+ function processDetailsDiscoveryURLTable(tableContainerId,modifiedName,viewIdName,discoveryURLName,form)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var editable = (column1.childNodes[2].value == "true");
+ var discoveryURL;
+ if (editable)
+ discoveryURL = column1.childNodes[3].value;
+ else
+ discoveryURL = column1.childNodes[1].value;
+ form.appendChild(createHiddenElement(viewIdName,viewId));
+ form.appendChild(createHiddenElement(discoveryURLName,discoveryURL));
+ form.appendChild(createHiddenElement(modifiedName,editable));
+ }
+ }
+
+ function processDetailsLanguageInputTable(tableContainerId,modifiedName,viewIdName,langIdName,inputName,form)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var editable = (column1.childNodes[4].value == "true");
+ var langId,inputText;
+ if (editable)
+ {
+ langId = column1.childNodes[5].value;
+ var column2 = columns.item(2);
+ inputText = column2.childNodes[0].value;
+ }
+ else
+ {
+ langId = column1.childNodes[1].value;
+ inputText = column1.childNodes[2].value;
+ }
+ form.appendChild(createHiddenElement(viewIdName,viewId));
+ form.appendChild(createHiddenElement(langIdName,langId));
+ form.appendChild(createHiddenElement(inputName,inputText));
+ form.appendChild(createHiddenElement(modifiedName,editable));
+ }
+ }
+
+ function processDetailsIdentifierTable(tableContainerId,form)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var editable = (column1.childNodes[4].value == "true");
+ var tModelKey,idKeyName,idKeyValue;
+ if (editable)
+ {
+ tModelKey = column1.childNodes[5].value;
+ var column2 = columns.item(2);
+ idKeyName = column2.childNodes[0].value;
+ var column3 = columns.item(3);
+ idKeyValue = column3.childNodes[0].value;
+ }
+ else
+ {
+ tModelKey = column1.childNodes[1].value;
+ idKeyName = column1.childNodes[2].value;
+ idKeyValue = column1.childNodes[3].value;
+ }
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.IDENTIFIER_VIEWID%>",viewId));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE%>",tModelKey));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME%>",idKeyName));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE%>",idKeyValue));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.IDENTIFIER_MODIFIED%>",editable));
+ }
+ }
+
+ function processDetailsCategoryTable(tableContainerId,form)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var column1 = columns.item(1);
+ var viewId = column1.childNodes[0].value;
+ var editable = (column1.childNodes[4].value == "true");
+ var tModelKey,catKeyName,catKeyValue;
+ if (editable)
+ {
+ tModelKey = column1.childNodes[5].value;
+ var column2 = columns.item(2);
+ catKeyName = column2.childNodes[0].value;
+ var column3 = columns.item(3);
+ catKeyValue = column3.childNodes[0].value;
+ }
+ else
+ {
+ tModelKey = column1.childNodes[1].value;
+ catKeyName = column1.childNodes[2].value;
+ catKeyValue = column1.childNodes[3].value;
+ }
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.CATEGORY_VIEWID%>",viewId));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE%>",tModelKey));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME%>",catKeyName));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE%>",catKeyValue));
+ form.appendChild(createHiddenElement("<%=UDDIActionInputs.CATEGORY_MODIFIED%>",editable));
+ }
+ }
+
+ function processDetailsSingleItemTable(tableContainerId,modifiedName,inputName,form)
+ {
+ var table = getTable(tableContainerId);
+ var columns = table.rows[numberOfHeaderRows].getElementsByTagName("td");
+ var column0 = columns.item(0);
+ var column1 = columns.item(1);
+ var editable = (column0.childNodes[column0.childNodes.length-2].value == "true");
+ var inputValue;
+ if (editable)
+ inputValue = column0.childNodes[column0.childNodes.length-1].value;
+ else
+ inputValue = column0.childNodes[0].value;
+ form.appendChild(createHiddenElement(inputName,inputValue));
+ form.appendChild(createHiddenElement(modifiedName,editable));
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/results.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/results.jsp
new file mode 100644
index 000000000..31b66729f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/results.jsp
@@ -0,0 +1,135 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="subQueryTransferTargetHolder" class="java.util.Vector" scope="request"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/uddi/scripts/udditables.jsp" flush="true"/>
+<script language="javascript">
+ function getNumberOfSelections(tableContainerId)
+ {
+ var numberSelected = 0;
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckbox = table.rows[i].getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ numberSelected++;
+ }
+ return numberSelected;
+ }
+
+ function processResultForm(tableContainerId,form)
+ {
+ if (handleSubmit(form))
+ {
+ processResultTable(tableContainerId,"<%=ActionInputs.NODEID%>",form,true);
+ form.submit();
+ }
+ }
+
+ function clearSelections(tableContainerId,form)
+ {
+ form.action = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/ClearNavigatorNodesActionJSP.jsp"))%>";
+ // Ensure that at least one item is selected.
+ var numberSelected = getNumberOfSelections(tableContainerId);
+ if (numberSelected > 0)
+ processResultForm(tableContainerId,form);
+ else
+ alert("<%=uddiPerspective.getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+
+ function refreshSelections(tableContainerId,form)
+ {
+ form.action = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/RefreshUDDINodesActionJSP.jsp"))%>";
+ // Ensure that at least one item is selected.
+ var numberSelected = getNumberOfSelections(tableContainerId);
+ if (numberSelected > 0)
+ processResultForm(tableContainerId,form);
+ else
+ alert("<%=uddiPerspective.getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+
+ function addSelectionsToFavorites(tableContainerId,form)
+ {
+ form.action = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/AddItemsToFavoritesActionJSP.jsp"))%>";
+ // Ensure that at least one item is selected.
+ var numberSelected = getNumberOfSelections(tableContainerId);
+ if (numberSelected > 0)
+ processResultForm(tableContainerId,form);
+ else
+ alert("<%=uddiPerspective.getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+
+<%
+ if (subQueryTransferTargetHolder.size() > 0)
+ {
+ SubQueryTransferTarget subQueryTransferTarget = (SubQueryTransferTarget)subQueryTransferTargetHolder.elementAt(0);
+ String subQueryKey = subQueryTransferTarget.getSubQueryKey();
+ int lastSeparatorPos = subQueryKey.lastIndexOf(':');
+ String targetQueryKey;
+ if (lastSeparatorPos == -1)
+ targetQueryKey = "";
+ else
+ targetQueryKey = subQueryKey.substring(0,lastSeparatorPos);
+ String targetProperty = subQueryKey.substring(lastSeparatorPos+1,subQueryKey.length());
+%>
+ function transferSelections(tableContainerId,form)
+ {
+ form.action = "<%=response.encodeURL(controller.getPathWithContext("uddi/actions/TransferSubQueryResultsActionJSP.jsp"))%>";
+ // Ensure that at least one item is selected.
+ var numberSelected = getNumberOfSelections(tableContainerId);
+ if (numberSelected > 0)
+ {
+<%
+ if (targetProperty.equals(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_BUSINESS) || targetProperty.equals(UDDIActionInputs.QUERY_INPUT_SIMPLE_SERVICE_BUSINESS) || targetProperty.equals(UDDIActionInputs.QUERY_INPUT_ADVANCED_SERVICE_INTERFACE_SERVICE))
+ {
+%>
+ if (numberSelected != 1)
+ {
+ alert("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_ERROR_SINGLE_ITEM"))%>");
+ return;
+ }
+
+<%
+ FormTool targetFormTool = subQueryTransferTarget.getTargetFormTool();
+ FormToolPropertiesInterface targetFormToolPI = ((MultipleFormToolPropertiesInterface)targetFormTool).getFormToolProperties(targetQueryKey);
+ Vector serviceBusiness = (Vector)targetFormToolPI.getProperty(targetProperty);
+ if (serviceBusiness != null && serviceBusiness.size() > 0)
+ {
+%>
+ if (!confirm("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_QUESTION_ITEM_REPLACEMENT"))%>"))
+ return;
+<%
+ }
+ }
+%>
+ processResultForm(tableContainerId,form);
+ }
+ else
+ alert("<%=uddiPerspective.getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ }
+<%
+ }
+%>
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddiframesets.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddiframesets.jsp
new file mode 100644
index 000000000..da24ad5ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddiframesets.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<script language="javascript">
+ function getActionsContainerFrameset()
+ {
+ return perspectiveContent.frames["<%=UDDIFrameNames.ACTIONS_CONTAINER%>"].document.getElementsByTagName("frameset").item(0);
+ }
+
+ function processFramesetSizes(framesetSizesForm)
+ {
+ toggleDoubleClickColumnTitle();
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ framesetSizesForm.<%=UDDIActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>.value = perspectiveContentFrameset.cols;
+ framesetSizesForm.<%=UDDIActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>.value = actionsContainerFrameset.rows;
+ framesetSizesForm.submit();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddipanes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddipanes.jsp
new file mode 100644
index 000000000..3d864cc0b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/uddipanes.jsp
@@ -0,0 +1,35 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<script language="javascript">
+ var navigatorContainer = perspectiveContent.frames["<%=UDDIFrameNames.NAVIGATOR_CONTAINER%>"];
+ var navigatorToolbar = navigatorContainer.frames["<%=UDDIFrameNames.NAVIGATOR_TOOLBAR%>"];
+ var navigatorContent = navigatorContainer.frames["<%=UDDIFrameNames.NAVIGATOR_CONTENT%>"];
+ var actionsContainer = perspectiveContent.frames["<%=UDDIFrameNames.ACTIONS_CONTAINER%>"];
+ var propertiesContainer = actionsContainer.frames["<%=UDDIFrameNames.PROPERTIES_CONTAINER%>"];
+ var propertiesToolbar = propertiesContainer.frames["<%=UDDIFrameNames.PROPERTIES_TOOLBAR%>"];
+ var propertiesContent = propertiesContainer.frames["<%=UDDIFrameNames.PROPERTIES_CONTENT%>"];
+ var statusContainer = actionsContainer.frames["<%=UDDIFrameNames.STATUS_CONTAINER%>"];
+ var statusToolbar = statusContainer.frames["<%=UDDIFrameNames.STATUS_TOOLBAR%>"];
+ var statusContent = statusContainer.frames["<%=UDDIFrameNames.STATUS_CONTENT%>"];
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/udditables.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/udditables.jsp
new file mode 100644
index 000000000..9fb27851c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/scripts/udditables.jsp
@@ -0,0 +1,894 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.uddi4j.datatype.tmodel.*,
+ org.uddi4j.util.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/wsdlbrowser.jsp" flush="true"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<%
+ String sessionId = session.getId();
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+ NodeManager navigatorManager = uddiPerspective.getNavigatorManager();
+ UDDIMainNode uddiMainNode = (UDDIMainNode)navigatorManager.getRootNode();
+ RegistryNode regNode = uddiMainNode.getRegistryNode(navigatorManager.getSelectedNode());
+ RegistryElement regElement = (RegistryElement)regNode.getTreeElement();
+%>
+<jsp:useBean id="commonCategoryModels" class="java.util.Hashtable" scope="application"/>
+<script language="javascript">
+ // Requires browserdetect.js, tables.jsp (explorer)
+ var rowCheckboxName = "rowCheckboxName";
+ var categoryWindow;
+ var categoryWindowClosed = true;
+ var targetCategoryRow = -1;
+ var targetCategoryKeyNameElement;
+ var targetCategoryKeyValueElement;
+ var languageArray = new Array();
+ var categoryArray = new Array();
+ var wildcardCategoryBrowserURLRe = /(%)/;
+
+ function closeAllUddiChildWindows()
+ {
+ closeCategoryBrowser();
+ closeWSDLBrowser();
+ }
+
+ function Language(displayName,langId)
+ {
+ this.displayName = displayName;
+ this.langId = langId;
+ }
+
+ function compareLanguageDisplayNames(a,b)
+ {
+ var result = a.displayName.localeCompare(b.displayName);
+ if (result < 0)
+ return -1;
+ else if (result > 0)
+ return 1;
+ else
+ return 0;
+ }
+
+ function setTModelKeySelect(itemSelect,tModelKey)
+ {
+ for (var i=0;i<itemSelect.options.length;i++)
+ {
+ if (itemSelect.options[i].value.toLowerCase() == tModelKey.toLowerCase())
+ {
+ itemSelect.options[i].selected = true;
+ return itemSelect.options[i].text;
+ }
+ }
+ }
+
+ function setLanguageSelect(languageSelect,languageValue)
+ {
+ var start;
+<%
+ // Compare with the empty string only if the languageValue is the empty string.
+%>
+ if (languageValue.length < 1)
+ start = 0;
+ else
+ start = 1;
+ for (var i=start;i<languageSelect.options.length;i++)
+ {
+<%
+ // Use a regular expression to check if languageValue begins with a key whose item is in the pick list. This enables "English" to be selected
+ // for en-xxx (dialects).
+%>
+ var regExp = new RegExp("^"+languageSelect.options[i].value,"i");
+ if (regExp.test(languageValue))
+ {
+ languageSelect.options[i].selected = true;
+ return languageSelect.options[i].text;
+ }
+ }
+ }
+
+ function populateLanguageSelect(languageSelect)
+ {
+ if (languageArray.length == 0)
+ {
+ languageArray[languageArray.length] = new Language("","");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_EN"))%>","en");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AA"))%>","aa");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AB"))%>","ab");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AF"))%>","af");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AM"))%>","am");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AR"))%>","ar");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AS"))%>","as");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AY"))%>","ay");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_AZ"))%>","az");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BA"))%>","ba");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BE"))%>","be");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BG"))%>","bg");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BH"))%>","bh");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BI"))%>","bi");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BN"))%>","bn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BO"))%>","bo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_BR"))%>","br");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_CA"))%>","ca");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_CO"))%>","co");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_CZ"))%>","cz");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_CY"))%>","cy");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_DA"))%>","da");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_DE"))%>","de");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_DZ"))%>","dz");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_EL"))%>","el");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_EO"))%>","eo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ES"))%>","es");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ET"))%>","et");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_EU"))%>","eu");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FA"))%>","fa");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FI"))%>","fi");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FJ"))%>","fj");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FO"))%>","fo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FR"))%>","fr");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_FY"))%>","fy");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_GA"))%>","ga");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_GD"))%>","gd");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_GL"))%>","gl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_GN"))%>","gn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_GU"))%>","gu");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_HA"))%>","ha");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_HI"))%>","hi");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_HR"))%>","hr");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_HU"))%>","hu");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_HY"))%>","hy");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IA"))%>","ia");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IE"))%>","ie");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IK"))%>","ik");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IN"))%>","in");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IS"))%>","is");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IT"))%>","it");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_IW"))%>","iw");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_JA"))%>","ja");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_JI"))%>","ji");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_JW"))%>","jw");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KA"))%>","ka");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KK"))%>","kk");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KL"))%>","kl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KM"))%>","km");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KN"))%>","kn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KO"))%>","ko");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KS"))%>","ks");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KU"))%>","ku");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_KY"))%>","ky");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_LA"))%>","la");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_LN"))%>","ln");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_LO"))%>","lo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_LT"))%>","lt");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_LV"))%>","lv");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MG"))%>","mg");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MI"))%>","mi");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MK"))%>","mk");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ML"))%>","ml");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MN"))%>","mn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MO"))%>","mo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MR"))%>","mr");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MS"))%>","ms");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MT"))%>","mt");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_MY"))%>","my");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_NA"))%>","na");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_NE"))%>","ne");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_NL"))%>","nl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_NO"))%>","no");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_OC"))%>","oc");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_OM"))%>","om");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_OR"))%>","or");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_PA"))%>","pa");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_PL"))%>","pl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_PS"))%>","ps");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_PT"))%>","pt");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_QU"))%>","qu");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_RM"))%>","rm");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_RN"))%>","rn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_RO"))%>","ro");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_RU"))%>","ru");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_RW"))%>","rw");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SA"))%>","sa");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SD"))%>","sd");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SG"))%>","sg");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SH"))%>","sh");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SI"))%>","si");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SK"))%>","sk");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SL"))%>","sl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SM"))%>","sm");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SN"))%>","sn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SO"))%>","so");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SQ"))%>","sq");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SR"))%>","sr");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SS"))%>","ss");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ST"))%>","st")
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SU"))%>","su");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SV"))%>","sv");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_SW"))%>","sw");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TA"))%>","ta");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TE"))%>","te");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TG"))%>","tg");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TH"))%>","th");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TI"))%>","ti");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TK"))%>","tk");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TL"))%>","tl");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TN"))%>","tn");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TO"))%>","to");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TR"))%>","tr");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TS"))%>","ts");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TT"))%>","tt");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_TW"))%>","tw");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_UK"))%>","uk");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_UR"))%>","ur");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_UZ"))%>","uz");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_VI"))%>","vi");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_VO"))%>","vo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_WO"))%>","wo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_XH"))%>","xh");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_YO"))%>","yo");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ZH"))%>","zh");
+ languageArray[languageArray.length] = new Language("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_LANGUAGE_ZU"))%>","zu");
+ languageArray.sort(compareLanguageDisplayNames);
+ }
+
+ for (var i=0;i<languageArray.length;i++)
+ languageSelect.options[i] = new Option(languageArray[i].displayName,languageArray[i].langId);
+ }
+
+ function setLanguageInputRowSettings(tableContainerId,nameIndex,languageValue,nameTextValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+nameIndex];
+ var languageSelect = row.getElementsByTagName("select").item(0);
+ var nameText = row.getElementsByTagName("input").item(1);
+ setLanguageSelect(languageSelect,languageValue);
+ nameText.value = nameTextValue;
+ }
+
+ function removeSelectedCategoryRows(tableContainerId)
+ {
+ // Check if any rows above and including the targetCategoryRow are selected.
+ var table = getTable(tableContainerId);
+ var newTargetCategoryRow = targetCategoryRow;
+ for (var i=numberOfHeaderRows;i<=targetCategoryRow;i++)
+ {
+ var tableRow = table.rows[i];
+ var rowCheckbox = tableRow.getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ {
+ if (i == targetCategoryRow)
+ newTargetCategoryRow = -1;
+ else
+ newTargetCategoryRow--;
+ }
+ }
+ if (newTargetCategoryRow == -1)
+ closeCategoryBrowser();
+ targetCategoryRow = newTargetCategoryRow;
+ removeSelectedRows(tableContainerId);
+ // Fix the browse... links.
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var tableRow = table.rows[i];
+ var browseLink = tableRow.getElementsByTagName("a").item(0);
+ setJSLinkRowTarget(browseLink,"openCategoryBrowser",tableContainerId,i);
+ }
+ }
+
+ function addLanguageInputRow(tableContainerId,textControlTitle)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var languageSelect = document.createElement("select");
+ populateLanguageSelect(languageSelect);
+ column1.appendChild(languageSelect);
+
+ var textInput = document.createElement("input");
+ column2.appendChild(textInput);
+
+ column0.className = "checkboxcells";
+ languageSelect.className = "selectlist";
+ column1.className = "tablecells";
+ textInput.className = "tabletextenter";
+ textInput.title = textControlTitle;
+ column2.className = "tablecells";
+ column2.width = "90%";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ tableBody.appendChild(newRow);
+ }
+
+ function setIdentifierRowSettings(tableContainerId,identifierIndex,tModelKey,keyName,keyValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+identifierIndex];
+ var identifierTypeSelect = row.getElementsByTagName("select").item(0);
+ var rowElementCollection = row.getElementsByTagName("input");
+ var keyNameText = rowElementCollection.item(1);
+ var keyValueText = rowElementCollection.item(2);
+ setTModelKeySelect(identifierTypeSelect,tModelKey);
+ keyNameText.value = keyName;
+ keyValueText.value = keyValue;
+ }
+
+ function populateIdentifierTypeSelect(identifierTypeSelect)
+ {
+ var counter = 0;
+ identifierTypeSelect.options[counter++] = new Option("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_IDENTIFIER_DUNS"))%>","<%=TModel.D_U_N_S_TMODEL_KEY%>");
+ identifierTypeSelect.options[counter++] = new Option("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY"))%>","<%=TModel.THOMAS_REGISTER_TMODEL_KEY%>");
+ }
+
+ function handleIdentifierChange(e)
+ {
+ var identifierSelect;
+ if (isMicrosoftInternetExplorer())
+ identifierSelect = event.srcElement;
+ else
+ identifierSelect = e.target;
+ var cell = identifierSelect.parentNode;
+ var row = cell.parentNode;
+ var inputElements = row.getElementsByTagName("input");
+ for (var i=0;i<inputElements.length;i++)
+ {
+ if (inputElements.item(i).type == "text")
+ {
+ inputElements.item(i).value = identifierSelect.options[identifierSelect.selectedIndex].text;
+ break;
+ }
+ }
+ }
+
+ function addIdentifierRow(tableContainerId)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var keyTypeSelect = document.createElement("select");
+ keyTypeSelect.onchange = handleIdentifierChange;
+ populateIdentifierTypeSelect(keyTypeSelect);
+ column1.appendChild(keyTypeSelect);
+
+ var keyNameTextInput = document.createElement("input");
+ column2.appendChild(keyNameTextInput);
+
+ var keyValueTextInput = document.createElement("input");
+ column3.appendChild(keyValueTextInput);
+
+ column0.className = "checkboxcells";
+ keyTypeSelect.className = "selectlist"
+ column1.className = "tablecells";
+ column1.width = "5%";
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME"))%>";
+ column2.className = "tablecells";
+ column2.width = "40%";
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE"))%>";
+ column3.className = "tablecells";
+ column3.width = "55%";
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ tableBody.appendChild(newRow);
+ keyNameTextInput.value = keyTypeSelect.options[0].text;
+ }
+
+ function Category(displayName,tModelKey)
+ {
+ this.displayName = displayName;
+ this.tModelKey = tModelKey;
+ }
+
+ function compareCategoryDisplayNames(a,b)
+ {
+ var result = a.displayName.localeCompare(b.displayName);
+ if (result < 0)
+ return -1;
+ else if (result > 0)
+ return 1;
+ else
+ return 0;
+ }
+
+ function populateCategoryTypeSelect(categoryTypeSelect)
+ {
+ if (categoryArray.length == 0)
+ {
+<%
+ Enumeration commonCategories = commonCategoryModels.elements();
+ while (commonCategories.hasMoreElements())
+ {
+ CategoryModel commonCategoryModel = (CategoryModel)commonCategories.nextElement();
+%>
+ categoryArray[categoryArray.length] = new Category("<%=HTMLUtils.JSMangle(commonCategoryModel.getDisplayName())%>","<%=commonCategoryModel.getTModelKey()%>");
+<%
+ }
+ Enumeration userDefinedCategories = regElement.getUserDefinedCategories();
+ if (userDefinedCategories != null)
+ {
+ while (userDefinedCategories.hasMoreElements())
+ {
+ CategoryModel userDefinedCategory = (CategoryModel)userDefinedCategories.nextElement();
+%>
+ categoryArray[categoryArray.length] = new Category("<%=HTMLUtils.JSMangle(userDefinedCategory.getDisplayName())%>","<%=userDefinedCategory.getTModelKey()%>");
+<%
+ }
+ }
+%>
+ categoryArray.sort(compareCategoryDisplayNames);
+ }
+
+ for (var i=0;i<categoryArray.length;i++)
+ categoryTypeSelect.options[i] = new Option(categoryArray[i].displayName,categoryArray[i].tModelKey);
+ }
+
+ function setJSLinkRowTarget(link,jsFunction,tableContainerId,row)
+ {
+ link.href = "javascript:"+jsFunction+"('"+tableContainerId+"',"+row+")";
+ }
+
+ function openCategoryBrowser(tableContainerId,row)
+ {
+ var table = getTable(tableContainerId);
+ var categorySelect = table.rows[row].getElementsByTagName("select").item(0);
+ var selectedCategoryOption = categorySelect.options[categorySelect.options.selectedIndex];
+ var categoryType = table.rows[row].getElementsByTagName("select").item(0).options.selectedIndex;
+ var columns = table.rows[row].getElementsByTagName("td");
+ targetCategoryRow = row;
+ targetCategoryKeyNameElement = columns.item(2).childNodes[0];
+ targetCategoryKeyValueElement = columns.item(3).childNodes[0];
+ var link = "<%=response.encodeURL(controller.getPathWithContext(OpenCategoryBrowserAction.getWildCardActionLink(sessionId)))%>";
+ categoryWindow = window.open(link.replace(wildcardCategoryBrowserURLRe,selectedCategoryOption.value),"categoryWindow","height=300,width=300,status=yes,scrollbars=yes,resizable=yes");
+ if (categoryWindow.focus)
+ categoryWindow.focus();
+ }
+
+ function closeCategoryBrowser()
+ {
+ if (!categoryWindowClosed)
+ categoryWindow.close();
+ }
+
+ function setCategoryRowSettings(tableContainerId,categoryIndex,tModelKey,keyName,keyValue)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+categoryIndex];
+ var categoryTypeSelect = row.getElementsByTagName("select").item(0);
+ var rowElementCollection = row.getElementsByTagName("input");
+ var keyNameText = rowElementCollection.item(1);
+ var keyValueText = rowElementCollection.item(2);
+ setTModelKeySelect(categoryTypeSelect,tModelKey);
+ keyNameText.value = keyName;
+ keyValueText.value = keyValue;
+ }
+
+ function addCategoryRowBrowseLink(tableContainerId,column,rowIndex)
+ {
+ var browseLink = document.createElement("a");
+ setJSLinkRowTarget(browseLink,"openCategoryBrowser",tableContainerId,rowIndex);
+ browseLink.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LINK_BROWSE"))%>"));
+ column.appendChild(browseLink);
+ }
+
+ function addCategoryRow(tableContainerId)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+ var column3 = document.createElement("td");
+ var column4 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var categoryTypeSelect = document.createElement("select");
+ populateCategoryTypeSelect(categoryTypeSelect);
+ column1.appendChild(categoryTypeSelect);
+
+ var keyNameTextInput = document.createElement("input");
+ column2.appendChild(keyNameTextInput);
+
+ var keyValueTextInput = document.createElement("input");
+ column3.appendChild(keyValueTextInput);
+
+ addCategoryRowBrowseLink(tableContainerId,column4,table.rows.length);
+
+ column0.className = "checkboxcells";
+ categoryTypeSelect.className = "selectlist";
+ column1.className = "tablecells";
+ column1.width = "5%";
+ keyNameTextInput.className = "tabletextenter";
+ keyNameTextInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_NAME"))%>";
+ column2.className = "tablecells";
+ column2.width = "55%";
+ keyValueTextInput.className = "tabletextenter";
+ keyValueTextInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE"))%>";
+ column3.className = "tablecells";
+ column3.width = "25%";
+ column4.className = "tablecells";
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ newRow.appendChild(column3);
+ newRow.appendChild(column4);
+ tableBody.appendChild(newRow);
+ }
+
+ function setDiscoveryURLRowSettings(tableContainerId,discoveryURLIndex,discoveryURL)
+ {
+ var table = getTable(tableContainerId);
+ var row = table.rows[numberOfHeaderRows+discoveryURLIndex];
+ var rowElementCollection = row.getElementsByTagName("input");
+ var discoveryURLTextInput = rowElementCollection.item(1);
+ discoveryURLTextInput.value = discoveryURL;
+ }
+
+ function addDiscoveryURLRow(tableContainerId)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var discoveryURLTextInput = document.createElement("input");
+ column1.appendChild(discoveryURLTextInput);
+
+ column0.className = "checkboxcells";
+ discoveryURLTextInput.className = "tabletextenter";
+ discoveryURLTextInput.title = "<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("FORM_CONTROL_TITLE_DISCOVERY_URL"))%>";
+ column1.className = "tablecells";
+ column1.width = "95%";
+
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ tableBody.appendChild(newRow);
+ }
+
+ function addResultRow(tableContainerId,nodeId,url,name,description)
+ {
+ twistOpen(tableContainerId);
+ var table = getTable(tableContainerId);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+ column0.appendChild(createHiddenElement("",nodeId));
+
+ var nameDetailsLink = document.createElement("a");
+ nameDetailsLink.href = url;
+ nameDetailsLink.target = "<%=FrameNames.PERSPECTIVE_WORKAREA%>";
+ nameDetailsLink.appendChild(document.createTextNode(name));
+ column1.appendChild(nameDetailsLink);
+
+ column2.appendChild(document.createTextNode(getDefaultDisplayString(description)));
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column2.className = "tablecells";
+ column1.width = "48%";
+ column2.width = "48%";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ tableBody.appendChild(newRow);
+ }
+
+ function getFindQualifierTable(containerId)
+ {
+ var container = document.getElementById(containerId);
+ return container.getElementsByTagName("table").item(1);
+ }
+
+ function setFindQualifier(findQualifier,nameTableContainerId,categoryTableContainerId,findQualifiersTableContainerId)
+ {
+ var twistOpenNames = false;
+ var twistOpenCategories = false;
+ var twistOpenFindQualifiers = false;
+
+ if (findQualifier == "<%=FindQualifier.exactNameMatch%>")
+ {
+ var fqTable = getFindQualifierTable(nameTableContainerId);
+ var exactNameMatchCheckbox = fqTable.getElementsByTagName("input").item(0);
+ exactNameMatchCheckbox.checked = true;
+ twistOpenNames = true;
+ }
+ else if (findQualifier == "<%=FindQualifier.caseSensitiveMatch%>")
+ {
+ var fqTable = getFindQualifierTable(nameTableContainerId);
+ var caseSensitiveMatchCheckbox = fqTable.getElementsByTagName("input").item(1);
+ caseSensitiveMatchCheckbox.checked = true;
+ twistOpenNames = true;
+ }
+ else if (findQualifier == "<%=FindQualifier.serviceSubset%>" || findQualifier == "<%=FindQualifier.combineCategoryBags%>")
+ {
+ var fqTable = getFindQualifierTable(categoryTableContainerId);
+ var categorySelect = fqTable.getElementsByTagName("select").item(0);
+ setSelect(categorySelect,findQualifier);
+ twistOpenCategories = true;
+ }
+ else if (findQualifier == "<%=FindQualifier.andAllKeys%>" || findQualifier == "<%=FindQualifier.orAllKeys%>" || findQualifier == "<%=FindQualifier.orLikeKeys%>")
+ {
+ var fqTable = getTable(findQualifiersTableContainerId);
+ var keySelect = fqTable.getElementsByTagName("select").item(0);
+ setSelect(keySelect,findQualifier);
+ if (findQualifier != "<%=FindQualifier.andAllKeys%>")
+ twistOpenFindQualifiers = true;
+ }
+ else if (findQualifier == "<%=FindQualifier.sortByNameAsc%>" || findQualifier == "<%=FindQualifier.sortByNameDesc%>" || findQualifier == "<%=FindQualifier.sortByDateAsc%>" || findQualifier == "<%=FindQualifier.sortByDateDesc%>")
+ {
+ var fqTable = getTable(findQualifiersTableContainerId);
+ var sortCollection = fqTable.getElementsByTagName("input");
+ for (var i=0;i<sortCollection.length;i++)
+ {
+ if (sortCollection.item(i).value == findQualifier)
+ sortCollection.item(i).checked = true;
+ }
+ if (findQualifier != "<%=FindQualifier.sortByNameAsc%>" && findQualifier != "<%=FindQualifier.sortByDateAsc%>")
+ twistOpenFindQualifiers = true;
+ }
+
+ if (twistOpenNames)
+ twistOpen(nameTableContainerId);
+ if (twistOpenCategories)
+ twistOpen(categoryTableContainerId);
+ if (twistOpenFindQualifiers)
+ twistOpen(findQualifiersTableContainerId);
+ }
+
+ function processLanguageInputTable(tableContainerId,langVar,textVar,form)
+ {
+ var table = getTable(tableContainerId);
+ var languageSelects = table.getElementsByTagName("select");
+ var textInputs = table.getElementsByTagName("input");
+ for (var i=0;i<languageSelects.length;i++)
+ {
+ var hiddenLanguageSelect = createHiddenElement(langVar,languageSelects[i].value);
+ form.appendChild(hiddenLanguageSelect);
+ }
+
+ for (var i=0;i<textInputs.length;i++)
+ {
+ if (textInputs[i].type == "text")
+ {
+ var hiddenTextInput = createHiddenElement(textVar,textInputs[i].value);
+ form.appendChild(hiddenTextInput);
+ }
+ }
+ }
+
+ function processNameFindQualifiers(tableContainerId,form)
+ {
+ var table = getFindQualifierTable(tableContainerId);
+ var nameFindQualifierCheckboxes = table.getElementsByTagName("input");
+ for (var i=0;i<nameFindQualifierCheckboxes.length;i++)
+ {
+ var item = nameFindQualifierCheckboxes.item(i);
+ if (item.checked)
+ {
+ var hiddenFindQualifier = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER%>",item.value);
+ form.appendChild(hiddenFindQualifier);
+ }
+ }
+ }
+
+ function processIdentifierTable(tableContainerId,form)
+ {
+ var table = getTable(tableContainerId);
+ var identifierTypeSelects = table.getElementsByTagName("select");
+ var textInputs = table.getElementsByTagName("input");
+ for (var i=0;i<identifierTypeSelects.length;i++)
+ {
+ var hiddenIdentifierTypeSelect = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_TYPE%>",identifierTypeSelects[i].value);
+ form.appendChild(hiddenIdentifierTypeSelect);
+ }
+
+ var isKeyName = true;
+ for (var i=0;i<textInputs.length;i++)
+ {
+ if (textInputs[i].type == "text")
+ {
+ var name;
+ if (isKeyName)
+ name = "<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_NAME%>";
+ else
+ name = "<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_IDENTIFIER_KEY_VALUE%>";
+ var hiddenTextInput = createHiddenElement(name,textInputs[i].value);
+ form.appendChild(hiddenTextInput);
+ isKeyName = !isKeyName;
+ }
+ }
+ }
+
+ function processCategoryTable(tableContainerId,form,isFindBusiness)
+ {
+ var table = getTable(tableContainerId);
+ var categoryTypeSelects = table.getElementsByTagName("select");
+ var textInputs = table.getElementsByTagName("input");
+ for (var i=0;i<categoryTypeSelects.length;i++)
+ {
+ var hiddenCategoryTypeSelect = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_TYPE%>",categoryTypeSelects[i].value);
+ form.appendChild(hiddenCategoryTypeSelect);
+ }
+
+ var isKeyName = true;
+ for (var i=0;i<textInputs.length;i++)
+ {
+ if (textInputs[i].type == "text")
+ {
+ var name;
+ if (isKeyName)
+ name = "<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_NAME%>";
+ else
+ name = "<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_CATEGORY_KEY_VALUE%>";
+ var hiddenTextInput = createHiddenElement(name,textInputs[i].value);
+ form.appendChild(hiddenTextInput);
+ isKeyName = !isKeyName;
+ }
+ }
+
+ if (isFindBusiness)
+ {
+ table = getFindQualifierTable(tableContainerId);
+ var categoryFindQualifier = table.getElementsByTagName("select").item(0);
+ if (categoryFindQualifier.selectedIndex != 0)
+ {
+ var hiddenFindQualifier = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER%>",categoryFindQualifier.value);
+ form.appendChild(hiddenFindQualifier);
+ }
+ }
+ }
+
+ function processDiscoveryURLTable(tableContainerId,form)
+ {
+ var table = getTable(tableContainerId);
+ var textInputs = table.getElementsByTagName("input");
+ for (var i=0;i<textInputs.length;i++)
+ {
+ if (textInputs[i].type == "text")
+ {
+ var hiddenTextInput = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_DISCOVERYURL%>",textInputs[i].value);
+ form.appendChild(hiddenTextInput);
+ }
+ }
+ }
+
+ function processFindQualifierTable(tableContainerId,form)
+ {
+ var table = getTable(tableContainerId);
+ var findQualifierSelects = table.getElementsByTagName("select");
+ for (var i=0;i<findQualifierSelects.length;i++)
+ {
+ var findQualifierSelect = findQualifierSelects.item(i);
+ var hiddenFindQualifier = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER%>",findQualifierSelect.value);
+ form.appendChild(hiddenFindQualifier);
+ }
+
+ var findQualifierSortRadios = table.getElementsByTagName("input");
+ for (var i=0;i<findQualifierSortRadios.length;i++)
+ {
+ if (findQualifierSortRadios.item(i).checked)
+ {
+ var hiddenSortElement = createHiddenElement("<%=UDDIActionInputs.QUERY_INPUT_ADVANCED_FINDQUALIFIER%>",findQualifierSortRadios.item(i).value);
+ form.appendChild(hiddenSortElement);
+ }
+ }
+ }
+
+ function processResultTable(tableContainerId,inputName,form,selectedOnly)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var inputs = table.rows[i].getElementsByTagName("input");
+ if (selectedOnly)
+ {
+ if (inputs.item(0).checked)
+ form.appendChild(createHiddenElement(inputName,inputs.item(1).value));
+ }
+ else
+ form.appendChild(createHiddenElement(inputName,inputs.item(1).value));
+ }
+ }
+
+ function initiateSubQuery(formContainerId,newSubQueryKey,queryItem,isGet)
+ {
+ if (isGet)
+ {
+ var hasGetItems = false;
+ switch (queryItem)
+ {
+ case <%=UDDIActionInputs.QUERY_ITEM_BUSINESSES%>:
+ hasGetItems = <%=regNode.hasBusiness()%>;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICES%>:
+ hasGetItems = <%=regNode.hasService()%>;
+ break;
+ case <%=UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES%>:
+ default:
+ hasGetItems = <%=regNode.hasServiceInterface()%>;
+ }
+ if (!hasGetItems)
+ {
+ alert("<%=HTMLUtils.JSMangle(uddiPerspective.getMessage("MSG_ERROR_NO_ITEMS_TO_GET"))%>");
+ return;
+ }
+ }
+ var formContainer = document.getElementById(formContainerId);
+ var form = formContainer.getElementsByTagName("form").item(0);
+ form.<%=UDDIActionInputs.SUBQUERY_GET%>.value = isGet;
+ form.<%=UDDIActionInputs.NEW_SUBQUERY_INITIATED%>.value = newSubQueryKey;
+ form.<%=UDDIActionInputs.NEW_SUBQUERY_QUERY_ITEM%>.value = queryItem;
+ var okToSubmit = false;
+ if (formContainerId == "findBusinessesAdvanced")
+ okToSubmit = processFindBusinessesAdvancedForm(form);
+ else if (formContainerId == "findServicesAdvanced")
+ okToSubmit = processFindServicesAdvancedForm(form);
+ else if (formContainerId == "findServiceInterfacesAdvanced")
+ okToSubmit = processFindServiceInterfacesAdvancedForm(form);
+ else if (formContainerId == "publishServiceSimple")
+ okToSubmit = processPublishServiceSimpleForm(form);
+ else if (formContainerId == "publishServiceAdvanced")
+ okToSubmit = processPublishServiceAdvancedForm(form);
+ else if (formContainerId == "publisherAssertions")
+ okToSubmit = handleSubmit(form);
+ else if (formContainerId == "manageReferencedServices")
+ okToSubmit = processForm(form);
+ if (okToSubmit)
+ form.submit();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_container.jsp
new file mode 100644
index 000000000..12888809d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=UDDIFrameNames.STATUS_TOOLBAR%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/status_toolbar.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=UDDIFrameNames.STATUS_CONTENT%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_content.jsp
new file mode 100644
index 000000000..c6888f59c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_content.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <table>
+ <tr>
+ <td>
+ <pre>
+<%=uddiPerspective.getMessageQueue().getMessagesFromList()%>
+ </pre>
+ </td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_toolbar.jsp
new file mode 100644
index 000000000..50ea5979c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/status_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/uddi/scripts/uddiframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("uddi/actions/ResizeUDDIFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(UDDIFrameNames.STATUS_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/uddi/forms/ProcessUDDIFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/status.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (uddiPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (uddiPerspective.getActionsContainerFramesetRows().endsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_STATUS")%></td>
+<%
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("uddi/status_content.jsp"))%>" target="<%=UDDIFrameNames.STATUS_CONTENT%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/uddi_perspective_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/uddi_perspective_content.jsp
new file mode 100644
index 000000000..4f8185329
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/uddi/uddi_perspective_content.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=uddiPerspective.getMessage("FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT")%></title>
+</head>
+<frameset cols="<%=uddiPerspective.getPerspectiveContentFramesetCols()%>" bgcolor=#ECE9D8>
+ <frame name="<%=UDDIFrameNames.NAVIGATOR_CONTAINER%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/navigator_container.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+ <frame name="<%=UDDIFrameNames.ACTIONS_CONTAINER%>" title="<%=uddiPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%>" src="<%=response.encodeURL(controller.getPathWithContext("uddi/actions_container.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+</frameset>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ClearWSDLActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ClearWSDLActionJSP.jsp
new file mode 100644
index 000000000..9b758e886
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ClearWSDLActionJSP.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.ClearWSDLAction"%>
+
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+ClearWSDLAction action = new ClearWSDLAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+%>
+<%@ include file="/actions/ClearNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/CreateInstanceActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/CreateInstanceActionJSP.jsp
new file mode 100644
index 000000000..122c59d0c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/CreateInstanceActionJSP.jsp
@@ -0,0 +1,34 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.CreateInstanceAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <%
+ CreateInstanceAction action = new CreateInstanceAction(controller);
+ action.populatePropertyTable(request);
+ action.execute();
+ %>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpGetOperationFormActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpGetOperationFormActionJSP.jsp
new file mode 100644
index 000000000..1e2011a0d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpGetOperationFormActionJSP.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+ <%
+ // Prepare the action.
+ InvokeWSDLHttpGetOperationFormAction action = new InvokeWSDLHttpGetOperationFormAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (inputsValid)
+ {
+ boolean actionResult = action.execute();
+ }
+ %>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpPostOperationFormActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpPostOperationFormActionJSP.jsp
new file mode 100644
index 000000000..474f53ebb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLHttpPostOperationFormActionJSP.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+ <%
+ // Prepare the action.
+ InvokeWSDLHttpPostOperationFormAction action = new InvokeWSDLHttpPostOperationFormAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+
+ if (inputsValid)
+ {
+ boolean actionResult = action.execute();
+ }
+ %>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationFormActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationFormActionJSP.jsp
new file mode 100644
index 000000000..ff35430ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationFormActionJSP.jsp
@@ -0,0 +1,138 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.MessageQueue,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLActionInputs,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPException,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPTransport,
+ sun.misc.BASE64Decoder,
+ javax.servlet.http.HttpServletResponse"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+InvokeWSDLSOAPOperationFormAction action = new InvokeWSDLSOAPOperationFormAction(controller);
+String httpBasicAuthData = request.getHeader(HTTPTransport.HTTP_HEADER_AUTH);
+if (httpBasicAuthData != null && httpBasicAuthData.length() > 0)
+{
+ int basicIndex = httpBasicAuthData.indexOf(HTTPTransport.BASIC);
+ if (basicIndex != -1)
+ {
+ BASE64Decoder decoder = new BASE64Decoder();
+ httpBasicAuthData = new String(decoder.decodeBuffer(httpBasicAuthData.substring(basicIndex + HTTPTransport.BASIC.length() + 1)));
+ int colonIndex = httpBasicAuthData.indexOf(HTTPTransport.COLON);
+ if (colonIndex != -1)
+ {
+ action.addProperty(WSDLActionInputs.HTTP_BASIC_AUTH_USERNAME, httpBasicAuthData.substring(0, colonIndex));
+ action.addProperty(WSDLActionInputs.HTTP_BASIC_AUTH_PASSWORD, httpBasicAuthData.substring(colonIndex + 1, httpBasicAuthData.length()));
+ }
+ }
+}
+
+// Load the parameters for the action from the servlet request.
+boolean inputsValid = action.populatePropertyTable(request);
+if (!inputsValid)
+{
+%>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+ </body>
+ </html>
+<%
+}
+else
+{
+ try
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ <%
+ if (actionResult)
+ {
+ %>
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_result_content.jsp"))%>";
+ <%
+ }
+ else
+ {
+ %>
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ <%
+ }
+ %>
+ </script>
+ </body>
+ </html>
+<%
+ }
+ catch (HTTPException httpe)
+ {
+ int code = httpe.getStatusCode();
+ if (code == HttpServletResponse.SC_UNAUTHORIZED)
+ {
+ response.setStatus(code);
+ response.setHeader(HTTPTransport.HTTP_HEADER_CONTENT_LENGTH, String.valueOf(0));
+ String wwwAuthData = httpe.getHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH.toLowerCase());
+ if (wwwAuthData == null)
+ wwwAuthData = httpe.getHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH);
+ if (wwwAuthData == null)
+ wwwAuthData = HTTPTransport.BASIC;
+ response.setHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH, wwwAuthData);
+ }
+ else
+ {
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ messageQueue.addMessage(controller.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage(String.valueOf(code));
+ messageQueue.addMessage(httpe.getStatusMessage());
+ %>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+ </body>
+ </html>
+ <%
+ }
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationSourceActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationSourceActionJSP.jsp
new file mode 100644
index 000000000..554f871e1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/InvokeWSDLSOAPOperationSourceActionJSP.jsp
@@ -0,0 +1,172 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLActionInputs,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPException,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport.HTTPTransport,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ sun.misc.BASE64Decoder,
+ javax.servlet.http.HttpServletResponse,
+ javax.wsdl.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+InvokeWSDLSOAPOperationSourceAction action = new InvokeWSDLSOAPOperationSourceAction(controller);
+
+// Load the parameters for the action from the servlet request.
+boolean inputsValid = action.populatePropertyTable(request);
+
+if (action.wasSaveAsSelected())
+{
+ // write to file system
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition","attachment;filename="+action.getDefaultSaveAsFileName());
+ action.writeSourceContent(response.getOutputStream());
+}
+else
+{
+ if (!inputsValid)
+ {
+ %>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+ </body>
+ </html>
+ <%
+ }
+ else
+ {
+ if (action.wasNewFileSelected())
+ {
+ %>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+ </body>
+ </html>
+ <%
+ }
+ else
+ {
+ String httpBasicAuthData = request.getHeader(HTTPTransport.HTTP_HEADER_AUTH);
+ if (httpBasicAuthData != null && httpBasicAuthData.length() > 0)
+ {
+ int basicIndex = httpBasicAuthData.indexOf(HTTPTransport.BASIC);
+ if (basicIndex != -1)
+ {
+ BASE64Decoder decoder = new BASE64Decoder();
+ httpBasicAuthData = new String(decoder.decodeBuffer(httpBasicAuthData.substring(basicIndex + HTTPTransport.BASIC.length() + 1)));
+ int colonIndex = httpBasicAuthData.indexOf(HTTPTransport.COLON);
+ if (colonIndex != -1)
+ {
+ action.addProperty(WSDLActionInputs.HTTP_BASIC_AUTH_USERNAME, httpBasicAuthData.substring(0, colonIndex));
+ action.addProperty(WSDLActionInputs.HTTP_BASIC_AUTH_PASSWORD, httpBasicAuthData.substring(colonIndex + 1, httpBasicAuthData.length()));
+ }
+ }
+ }
+ try
+ {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ %>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ <%
+ if (actionResult)
+ {
+ %>
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_result_content.jsp"))%>";
+ <%
+ }
+ else
+ {
+ %>
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ <%
+ }
+ %>
+ </script>
+ </body>
+ </html>
+<%
+ }
+ catch (HTTPException httpe)
+ {
+ int code = httpe.getStatusCode();
+ if (code == HttpServletResponse.SC_UNAUTHORIZED)
+ {
+ response.setStatus(code);
+ response.setHeader(HTTPTransport.HTTP_HEADER_CONTENT_LENGTH, String.valueOf(0));
+ String wwwAuthData = httpe.getHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH.toLowerCase());
+ if (wwwAuthData == null)
+ wwwAuthData = httpe.getHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH);
+ if (wwwAuthData == null)
+ wwwAuthData = HTTPTransport.BASIC;
+ response.setHeader(HTTPTransport.HTTP_HEADER_WWW_AUTH, wwwAuthData);
+ }
+ else
+ {
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ MessageQueue messageQueue = wsdlPerspective.getMessageQueue();
+ messageQueue.addMessage(controller.getMessage("MSG_ERROR_UNEXPECTED"));
+ messageQueue.addMessage(String.valueOf(code));
+ messageQueue.addMessage(httpe.getStatusMessage());
+ %>
+ <jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>"></script>
+ </head>
+ <body>
+ <script language="javascript">
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+ </body>
+ </html>
+ <%
+ }
+ }
+ }
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/OpenWSDLActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/OpenWSDLActionJSP.jsp
new file mode 100644
index 000000000..4ccda4aa3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/OpenWSDLActionJSP.jsp
@@ -0,0 +1,58 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.OpenWSDLAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+</head>
+<body>
+<%
+ // Prepare the action.
+ OpenWSDLAction action = new OpenWSDLAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ boolean inputsValid = action.populatePropertyTable(request);
+ if (!inputsValid) {
+%>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+<%
+ }
+ else {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+ <script language="javascript">
+ if (isMicrosoftInternetExplorer()) {
+ wsdlNavigatorContent.location="<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_navigator_content.jsp"))%>";
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ }
+ else {
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_perspective_content.jsp"))%>";
+ }
+ </script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/RefreshWSDLActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/RefreshWSDLActionJSP.jsp
new file mode 100644
index 000000000..34c6df8f0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/RefreshWSDLActionJSP.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.RefreshWSDLAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.ClearWSDLAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<%
+// Prepare the action.
+RefreshWSDLAction action = new RefreshWSDLAction(controller);
+
+// The action may be executed via program link.
+boolean paramsValid = action.populatePropertyTable(request);
+if (paramsValid) {
+ int nodeID = Integer.parseInt((String)action.getPropertyTable().get(ActionInputs.NODEID));
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node wsdlNode = nodeManager.getNode(nodeID);
+
+ // Run the action.
+ boolean actionResult = action.execute();
+
+ if (actionResult) {
+ %>
+ <script language="javascript">
+ if (isMicrosoftInternetExplorer()) {
+ wsdlNavigatorContent.location="<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_navigator_content.jsp"))%>";
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ }
+ else {
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_perspective_content.jsp"))%>";
+ }
+ </script>
+ <%
+ }
+ else {
+ %>
+ <script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(wsdlPerspective.getMessage("MSG_QUESTION_REMOVE_WSDL_NODE", wsdlNode.getNodeName()))%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearWSDLAction.getActionLink(nodeID)))%>";
+ else {
+ wsdlPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_container.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ }
+ </script>
+ <%
+ }
+}
+%>
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ResizeWSDLFramesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ResizeWSDLFramesActionJSP.jsp
new file mode 100644
index 000000000..1be8de4f0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ResizeWSDLFramesActionJSP.jsp
@@ -0,0 +1,54 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Create the action.
+ ResizeWSDLFramesAction action = new ResizeWSDLFramesAction(controller);
+
+ // Populate the action with the request properties.
+ boolean result = action.populatePropertyTable(request);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/wsdl/scripts/wsdlframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (result)
+ {
+ action.execute(false);
+
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ perspectiveContentFrameset.setAttribute("cols","<%=wsdlPerspective.getPerspectiveContentFramesetCols()%>");
+ actionsContainerFrameset.setAttribute("rows","<%=wsdlPerspective.getActionsContainerFramesetRows()%>");
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_perspective_content.jsp"))%>";
+</script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLNavigatorNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLNavigatorNodeActionJSP.jsp
new file mode 100644
index 000000000..e61449d40
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLNavigatorNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLNavigatorNodeAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+SelectWSDLNavigatorNodeAction action = new SelectWSDLNavigatorNodeAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLPropertiesToolActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLPropertiesToolActionJSP.jsp
new file mode 100644
index 000000000..147641419
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SelectWSDLPropertiesToolActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SelectWSDLPropertiesToolAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+SelectWSDLPropertiesToolAction action = new SelectWSDLPropertiesToolAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp
new file mode 100644
index 000000000..901c76648
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchPerspectiveFromWSDLActionJSP.jsp
@@ -0,0 +1,30 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action
+SwitchPerspectiveFromWSDLAction action = new SwitchPerspectiveFromWSDLAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<jsp:include page="/scripts/switchperspective.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchReadOnlyFragmentViewsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchReadOnlyFragmentViewsActionJSP.jsp
new file mode 100644
index 000000000..085097ea4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchReadOnlyFragmentViewsActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+if (wsdlPerspective.getStatusContentType() == WSDLPerspective.STATUS_CONTENT_RESULT_FORM)
+ wsdlPerspective.setStatusContentType(WSDLPerspective.STATUS_CONTENT_RESULT_SOURCE);
+else
+ wsdlPerspective.setStatusContentType(WSDLPerspective.STATUS_CONTENT_RESULT_FORM);
+%>
+<script language="javascript">
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_result_content.jsp"))%>";
+</script>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchWSDLDetailsViewsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchWSDLDetailsViewsActionJSP.jsp
new file mode 100644
index 000000000..087df01d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SwitchWSDLDetailsViewsActionJSP.jsp
@@ -0,0 +1,37 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLDetailsTool"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node wsdlNode = wsdlPerspective.getNodeManager().getSelectedNode();
+WSDLDetailsTool wsdlDetailsTool = (WSDLDetailsTool)wsdlNode.getToolManager().getSelectedTool();
+wsdlDetailsTool.toggleViewId();
+%>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+</script>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp
new file mode 100644
index 000000000..e0091a492
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.InvokeWSDLOperationTool"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+
+<%
+InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)controller.getWSDLPerspective().getNodeManager().getSelectedNode().getCurrentToolManager().getSelectedTool();
+if (invokeWSDLOperationTool.getFragmentViewID().equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM))
+ invokeWSDLOperationTool.setFragmentViewID(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE);
+else
+ invokeWSDLOperationTool.setFragmentViewID(FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM);
+%>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+</script>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionJSP.jsp
new file mode 100644
index 000000000..ae5267fcc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/SynchronizeFragmentViewsActionJSP.jsp
@@ -0,0 +1,56 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.SynchronizeFragmentViewsAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+
+<%
+SynchronizeFragmentViewsAction action = new SynchronizeFragmentViewsAction(controller);
+boolean paramValid = action.populatePropertyTable(request);
+String viewID = (String)action.getPropertyTable().get(FragmentConstants.FRAGMENT_VIEW_ID);
+boolean sourceToForm = viewID.equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM);
+if (sourceToForm) {
+ if (paramValid) {
+%>
+ <script language="javascript">
+ if (!confirm("<%=controller.getWSDLPerspective().getMessage("MSG_QUESTION_SYNC_VIEWS")%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp"))%>";
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ if (!confirm("<%=controller.getWSDLPerspective().getMessage("MSG_QUESTION_SYNC_VIEWS_DESPITE_INVALID_SOURCE_CONTENT")%>"))
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/SynchronizeFragmentViewsActionAbortJSP.jsp"))%>";
+ </script>
+<%
+ }
+}
+action.execute();
+%>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+</script>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ToggleWSDLNavigatorNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ToggleWSDLNavigatorNodeActionJSP.jsp
new file mode 100644
index 000000000..1e586d042
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/ToggleWSDLNavigatorNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+ToggleWSDLNavigatorNodeAction action = new ToggleWSDLNavigatorNodeAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/ToggleNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/UpdateWSDLBindingActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/UpdateWSDLBindingActionJSP.jsp
new file mode 100644
index 000000000..dee527454
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/UpdateWSDLBindingActionJSP.jsp
@@ -0,0 +1,34 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.WSDLFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.UpdateWSDLBindingAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+ UpdateWSDLBindingAction action = new UpdateWSDLBindingAction(controller);
+ action.populatePropertyTable(request);
+ action.execute();
+%>
+ <script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLAddToFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLAddToFavoritesActionJSP.jsp
new file mode 100644
index 000000000..215adb910
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLAddToFavoritesActionJSP.jsp
@@ -0,0 +1,40 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLAddToFavoritesAction"%>
+
+
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+WSDLAddToFavoritesAction action = new WSDLAddToFavoritesAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<script language="javascript">
+ wsdlPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_properties_content.jsp"))%>";
+ wsdlStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>";
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLCheckFavoriteExistsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLCheckFavoriteExistsActionJSP.jsp
new file mode 100644
index 000000000..be1f15f51
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLCheckFavoriteExistsActionJSP.jsp
@@ -0,0 +1,65 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ java.util.*" %>
+
+
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<form action="<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/WSDLAddToFavoritesActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+<%
+Enumeration paramNames = request.getParameterNames();
+while (paramNames.hasMoreElements()) {
+ String paramName = (String)paramNames.nextElement();
+ String[] paramValues = request.getParameterValues(paramName);
+ for (int i = 0; i < paramValues.length; i++) {
+%>
+ <input type="hidden" name="<%=paramName%>" value="<%=paramValues[i]%>">
+<%
+ }
+}
+%>
+</form>
+</body>
+</html>
+
+<%
+// Prepare the action.
+WSDLAddToFavoritesAction action = new WSDLAddToFavoritesAction(controller);
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+if (action.favoriteExists()) {
+%>
+ <script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(controller.getWSDLPerspective().getMessage("MSG_QUESTION_OVERWRITE_FAVORITES"))%>"))
+ document.forms[0].submit();
+ </script>
+<%
+}
+else {
+%>
+ <script language="javascript">
+ document.forms[0].submit();
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToFileSystemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToFileSystemActionJSP.jsp
new file mode 100644
index 000000000..0df02da62
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToFileSystemActionJSP.jsp
@@ -0,0 +1,23 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLImportWSDLToFileSystemAction,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.io.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+WSDLImportWSDLToFileSystemAction action = new WSDLImportWSDLToFileSystemAction(controller);
+%>
+<%@ include file="/actions/ImportToFileSystemAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..d02382edc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLImportWSDLToWorkbenchActionJSP.jsp
@@ -0,0 +1,22 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLImportWSDLToWorkbenchAction,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+WSDLImportWSDLToWorkbenchAction action = new WSDLImportWSDLToWorkbenchAction(controller);
+%>
+<%@ include file="/actions/ImportToWorkbenchAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLLaunchWebServiceWizardActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLLaunchWebServiceWizardActionJSP.jsp
new file mode 100644
index 000000000..8f8760f34
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/actions/WSDLLaunchWebServiceWizardActionJSP.jsp
@@ -0,0 +1,19 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.WSDLLaunchWebServiceWizardAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+WSDLLaunchWebServiceWizardAction action = new WSDLLaunchWebServiceWizardAction(controller);
+%>
+<%@ include file="/actions/LaunchWebServiceWizardAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsFormView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsFormView.jsp
new file mode 100644
index 000000000..3f2d2e65d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsFormView.jsp
@@ -0,0 +1,43 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ javax.wsdl.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getSelectedNode();
+nodeID.delete(0, nodeID.length());
+nodeID.append(selectedNode.getNodeId());
+InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+Iterator it = operElement.getOrderedBodyParts().iterator();
+while (it.hasNext()) {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ fragID.delete(0, fragID.length());
+ fragID.append(frag.getID());
+ %>
+ <jsp:include page="<%=frag.getWriteFragment()%>" flush="true"/>
+ <%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp
new file mode 100644
index 000000000..9b190efdd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp
@@ -0,0 +1,316 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.w3c.dom.*,
+ javax.wsdl.*,
+ javax.wsdl.extensions.ExtensibilityElement,
+ javax.wsdl.extensions.soap.SOAPBody,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ WSDLOperationElement operElement = (WSDLOperationElement)(wsdlPerspective.getNodeManager().getSelectedNode().getTreeElement());
+ Operation oper = operElement.getOperation();
+ Iterator it = operElement.getOrderedBodyParts().iterator();
+ StringBuffer sourceContent = new StringBuffer();
+ String cachedSourceContent = operElement.getPropertyAsString(WSDLModelConstants.PROP_SOURCE_CONTENT);
+ Hashtable soapEnvelopeNamespaceTable = new Hashtable();
+ SoapHelper.addDefaultSoapEnvelopeNamespaces(soapEnvelopeNamespaceTable);
+ if (cachedSourceContent != null)
+ {
+ sourceContent.append(cachedSourceContent);
+ String[] nsDeclarations = (String[])operElement.getPropertyAsObject(WSDLModelConstants.PROP_SOURCE_CONTENT_NAMESPACE);
+ if (nsDeclarations != null)
+ {
+ for (int i = 0; i < nsDeclarations.length; i++)
+ {
+ String[] prefix_ns = SoapHelper.decodeNamespaceDeclaration(nsDeclarations[i]);
+ if (!soapEnvelopeNamespaceTable.contains(prefix_ns[1]))
+ soapEnvelopeNamespaceTable.put(prefix_ns[1], prefix_ns[0]);
+ }
+ }
+ }
+ else
+ {
+ while (it.hasNext())
+ {
+ Part part = (Part)it.next();
+ IXSDFragment frag = operElement.getFragment(part);
+ Element[] instanceDocuments = frag.genInstanceDocumentsFromParameterValues(!operElement.isUseLiteral(), soapEnvelopeNamespaceTable, XMLUtils.createNewDocument(null));
+ for (int i = 0; i < instanceDocuments.length; i++)
+ {
+ sourceContent.append(XMLUtils.serialize(instanceDocuments[i], true));
+ sourceContent.append(HTMLUtils.LINE_SEPARATOR);
+ }
+ }
+ }
+
+ Enumeration enum = soapEnvelopeNamespaceTable.keys();
+ while (enum.hasMoreElements())
+ {
+ String uri = (String)enum.nextElement();
+ String prefix = (String)soapEnvelopeNamespaceTable.get(uri);
+ String value = SoapHelper.encodeNamespaceDeclaration(prefix, uri);
+ %>
+ <input type="hidden" name="<%=FragmentConstants.SOURCE_CONTENT_NAMESPACE%>" value="<%=value%>">
+ <%
+ }
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" class="labels">
+<%
+ Document doc = XMLUtils.createNewDocument(null);
+ Element soapEnvelopeElement = SoapHelper.createSoapEnvelopeElement(doc,soapEnvelopeNamespaceTable);
+ StringBuffer header = new StringBuffer("<");
+ header.append(soapEnvelopeElement.getTagName());
+ NamedNodeMap attributes = soapEnvelopeElement.getAttributes();
+ int numberOfAttributes = attributes.getLength();
+ if (numberOfAttributes == 0)
+ header.append('>');
+%>
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ for (int i=0;i<numberOfAttributes;i++)
+ {
+ header.setLength(0);
+ Node attrNode = attributes.item(i);
+ header.append(attrNode.getNodeName()).append("=\"").append(attrNode.getNodeValue()).append('\"');
+ if (i == numberOfAttributes-1)
+ header.append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=8>
+ <img width=8 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ }
+
+ Element soapBodyElement = SoapHelper.createSoapBodyElement(doc);
+ header.setLength(0);
+ header.append('<').append(soapBodyElement.getTagName());
+ attributes = soapBodyElement.getAttributes();
+ numberOfAttributes = attributes.getLength();
+ if (numberOfAttributes == 0)
+ header.append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=8>
+ <img width=8 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ for (int i=0;i<numberOfAttributes;i++)
+ {
+ header.setLength(0);
+ Node attrNode = attributes.item(i);
+ header.append(attrNode.getNodeName()).append("=\"").append(attrNode.getNodeValue()).append('\"');
+ if (i == numberOfAttributes-1)
+ header.append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=16>
+ <img width=16 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<table
+<%
+ }
+
+ Element wrapperElement = null;
+ if (!operElement.isDocumentStyle())
+ {
+ // Must be RPC style.
+ String encodingNamespaceURI = null;
+ /*
+ * WS-I: In a rpc-literal SOAP binding, the serialized child element of the
+ * soap:Body element consists of a wrapper element, whose namespace is the value
+ * of the namespace attribute of the soapbind:body element and whose local name is
+ * either the name of the operation or the name of the operation suffixed
+ * with "Response". The namespace attribute is required, as opposed to being
+ * optional, to ensure that the children of the soap:Body element are namespace-
+ * qualified.
+ */
+ BindingOperation bindingOperation = operElement.getBindingOperation();
+ if (bindingOperation != null)
+ {
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ if (bindingInput != null)
+ {
+ List extElements = bindingInput.getExtensibilityElements();
+ for (Iterator extElementsIt = extElements.iterator(); extElementsIt.hasNext();)
+ {
+ ExtensibilityElement extElement = (ExtensibilityElement)extElementsIt.next();
+ if (extElement instanceof SOAPBody)
+ {
+ encodingNamespaceURI = ((SOAPBody)extElement).getNamespaceURI();
+ break;
+ }
+ }
+ }
+ }
+ // If the namespace of the soapbind:body element is not set, get it from the operation element
+ if (encodingNamespaceURI == null)
+ encodingNamespaceURI = operElement.getEncodingNamespace();
+ // If the namespace of the operation element is not set, get it from the definition element
+ if (encodingNamespaceURI == null)
+ {
+ WSDLBindingElement bindingElement = (WSDLBindingElement)operElement.getParentElement();
+ WSDLServiceElement serviceElement = (WSDLServiceElement)bindingElement.getParentElement();
+ WSDLElement wsdlElement = (WSDLElement)serviceElement.getParentElement();
+ Definition definition = wsdlElement.getDefinition();
+ encodingNamespaceURI = definition.getTargetNamespace();
+ }
+ // Generate an RPC style wrapper element.
+ String encodingStyle = (operElement.isUseLiteral() ? null : operElement.getEncodingStyle());
+ wrapperElement = SoapHelper.createRPCWrapperElement(doc,soapEnvelopeNamespaceTable,encodingNamespaceURI,oper.getName(),encodingStyle);
+ header.setLength(0);
+ header.append('<').append(wrapperElement.getTagName());
+ attributes = wrapperElement.getAttributes();
+ numberOfAttributes = attributes.getLength();
+ if (numberOfAttributes == 0)
+ header.append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=16>
+ <img width=16 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ for (int i=0;i<numberOfAttributes;i++)
+ {
+ header.setLength(0);
+ Node attrNode = attributes.item(i);
+ header.append(attrNode.getNodeName()).append("=\"").append(attrNode.getNodeValue()).append('\"');
+ if (i == numberOfAttributes-1)
+ header.append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=24>
+ <img width=24 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ }
+ }
+
+ int sourceContentIndentationImageWidth = 16;
+ if (wrapperElement != null)
+ sourceContentIndentationImageWidth += 8;
+%>
+<table border=0 cellpadding=3 cellspacing=3>
+ <tr>
+ <td width=<%=sourceContentIndentationImageWidth%>>
+ <img width=<%=sourceContentIndentationImageWidth%> height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="center" align="left" nowrap>
+ <input type="file" name="<%=WSDLActionInputs.SELECTED_FILE%>" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SOAP_FILE")%>">
+ </td>
+ <td valign="center" align="left" class="labels" nowrap>
+ <a href="javascript:showNewFileContents()"><%=wsdlPerspective.getMessage("BUTTON_LABEL_LOAD")%></a>
+ </td>
+ <td valign="center" align="left" class="labels" nowrap>
+ <a href="javascript:saveSourceContent()"><%=wsdlPerspective.getMessage("BUTTON_LABEL_SAVE_AS")%></a>
+ </td>
+ </tr>
+</table>
+<table width="95%" border=0 cellpadding=3 cellspacing=3>
+ <tr>
+ <td width=<%=sourceContentIndentationImageWidth%>>
+ <img width=<%=sourceContentIndentationImageWidth%> height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td width="100%">
+ <textarea id="soap_body_content" name="<%=FragmentConstants.SOURCE_CONTENT%>" class="bigtextareaenter"><%=sourceContent.toString()%></textarea>
+ </td>
+ </tr>
+</table>
+<%
+ if (wrapperElement != null)
+ {
+ header.setLength(0);
+ header.append("</").append(wrapperElement.getTagName()).append('>');
+%>
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td width=16>
+ <img width=16 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ }
+
+ header.setLength(0);
+ header.append("</").append(soapBodyElement.getTagName()).append('>');
+%>
+<table width="95%" cellpadding=1 cellspacing=0>
+ <tr>
+ <td width=8>
+ <img width=8 height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
+<%
+ header.setLength(0);
+ header.append("</").append(soapEnvelopeElement.getTagName()).append('>');
+%>
+<table width="95%" cellpadding=1 cellspacing=0>
+ <tr>
+ <td valign="bottom" class="labels">
+ <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/InvokeWSDLOperationForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/InvokeWSDLOperationForm.jsp
new file mode 100644
index 000000000..73f720f38
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/InvokeWSDLOperationForm.jsp
@@ -0,0 +1,164 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ javax.wsdl.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node selectedNode = wsdlPerspective.getNodeManager().getSelectedNode();
+ InvokeWSDLOperationTool invokeWSDLOperationTool = (InvokeWSDLOperationTool)(selectedNode.getCurrentToolManager().getSelectedTool());
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ String fragmentViewID = invokeWSDLOperationTool.getFragmentViewID();
+ int operationType = operElement.getOperationType();
+ String invokeWSDLOperationURL = response.encodeURL(controller.getPathWithContext(invokeWSDLOperationTool.getFormActionLink(operationType,fragmentViewID)));
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FORM_TITLE_INVOKE_WSDL_OPERATION")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/wsdl/scripts/fragmenttables.jsp" flush="true"/>
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<script language="javascript">
+ function showNewFileContents()
+ {
+ var form = document.forms[0];
+ if (handleSubmit(form))
+ {
+ form.<%=WSDLActionInputs.SUBMISSION_ACTION%>.value = "<%=WSDLActionInputs.SUBMISSION_ACTION_BROWSE_FILE%>";
+ form.submit();
+ form.<%=WSDLActionInputs.SUBMISSION_ACTION%>.value = "<%=invokeWSDLOperationURL%>";
+ resetSubmission();
+ }
+ }
+
+ function saveSourceContent()
+ {
+ var form = document.forms[0];
+ if (handleSubmit(form))
+ {
+ form.<%=WSDLActionInputs.SUBMISSION_ACTION%>.value = "<%=WSDLActionInputs.SUBMISSION_ACTION_SAVE_AS%>";
+ form.submit();
+ form.<%=WSDLActionInputs.SUBMISSION_ACTION%>.value = "<%=invokeWSDLOperationURL%>";
+ resetSubmission();
+ }
+ }
+
+ function closeChildWindows()
+ {
+ closeXSDInfoDialog();
+ closeCalendarBrowser();
+ }
+</script>
+</head>
+<body class="contentbodymargin" onUnload="closeChildWindows()">
+<div id="contentborder">
+ <form action="<%=invokeWSDLOperationURL%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+ <input type="hidden" name="<%=WSDLActionInputs.SUBMISSION_ACTION%>" value="<%=WSDLActionInputs.SUBMISSION_ACTION_FORM%>">
+ <%
+ String titleImagePath = "wsdl/images/invoke_wsdl_operation_highlighted.gif";
+ String title = wsdlPerspective.getMessage("ALT_INVOKE_WSDL_OPERATION");
+ if (operationType == WSDLOperationElement.OPERATION_TYPE_SOAP)
+ {
+ %>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <img src="<%=response.encodeURL(controller.getPathWithContext(titleImagePath))%>" alt="">
+ <strong><%=title%></strong>
+ </td>
+ <td width="*">&nbsp;</td>
+ <td align="right" class="labels">
+<%
+ if (fragmentViewID.equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE))
+ {
+%>
+ <a href="javascript:synchronizeFragmentViews('<%=FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM%>')" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_FORM_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_FORM")%></a>
+<%
+ }
+ else
+ {
+%>
+ <a href="javascript:synchronizeFragmentViews('<%=FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE%>')" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_SOURCE_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_SOURCE")%></a>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td height=20 colspan=3><img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"></td>
+ </tr>
+</table>
+ <%
+ }
+ else
+ {
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ }
+ %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_INVOKE_WSDL_OPERATION_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <fieldset class="keylinefieldset">
+ <legend class="labels">
+ <label for="<%=WSDLActionInputs.END_POINT%>"><%=wsdlPerspective.getMessage("FORM_LABEL_END_POINTS")%></label>
+ </legend>
+ <table border=0 cellpadding=10 cellspacing=0>
+ <tr>
+ <td>
+ <select id="<%=WSDLActionInputs.END_POINT%>" name="<%=WSDLActionInputs.END_POINT%>" class="selectlist">
+ <%
+ WSDLBindingElement bindingElement = (WSDLBindingElement)operElement.getParentElement();
+ String[] endPoints = bindingElement.getEndPoints();
+ String currEndPoint = invokeWSDLOperationTool.getEndPoint();
+ for (int i = 0; i < endPoints.length; i++)
+ {
+ %>
+ <option value="<%=endPoints[i]%>" <%if (endPoints[i].equals(currEndPoint)) {%>selected<%}%>><%=endPoints[i]%>
+ <%
+ }
+ %>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </td>
+ </tr>
+ </table>
+ <%
+ if (fragmentViewID.equals(FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE))
+ {
+ %>
+<jsp:include page="/wsdl/forms/FragmentsSoapView.jsp" flush="true"/>
+ <%
+ }
+ else
+ {
+ %>
+<jsp:include page="/wsdl/forms/FragmentsFormView.jsp" flush="true"/>
+ <%
+ }
+ %>
+ <jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/OpenWSDLForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/OpenWSDLForm.jsp
new file mode 100644
index 000000000..f4cd85088
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/OpenWSDLForm.jsp
@@ -0,0 +1,81 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ FormTool formTool = (FormTool)wsdlPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FORM_TITLE_OPEN_WSDL")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/wsdl/scripts/wsdlpanes.jsp" flush="true"/>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<jsp:include page="/scripts/wsdlbrowser.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin" onUnload="closeWSDLBrowser()">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/OpenWSDLActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <%
+ String titleImagePath = "wsdl/images/open_wsdl_highlighted.gif";
+ String title = wsdlPerspective.getMessage("ALT_OPEN_WSDL");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_OPEN_WSDL_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" nowrap>
+ <label for="input_wsdl_url"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></label>
+ <%
+ if (!formTool.isInputValid(ActionInputs.QUERY_INPUT_WSDL_URL)) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ String wsdlUrl = (String)formTool.getProperty(ActionInputs.QUERY_INPUT_WSDL_URL);
+ if (wsdlUrl == null)
+ wsdlUrl = "";
+ %>
+ </td>
+ <td height=25 valign="bottom" nowrap>
+ <a href="javascript:openWSDLBrowser('contentborder',<%=ActionInputs.WSDL_TYPE_SERVICE%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td width="90%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=3>
+ <input type="text" id="input_wsdl_url" name="<%=ActionInputs.QUERY_INPUT_WSDL_URL%>" value="<%=wsdlUrl%>" size="50" class="textenter">
+ </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+<script language="javascript">
+ closeWSDLBrowser();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ProcessWSDLFramesetsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ProcessWSDLFramesetsForm.jsp
new file mode 100644
index 000000000..3e52f4d3d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ProcessWSDLFramesetsForm.jsp
@@ -0,0 +1,27 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request"/>
+<form action="<%=response.encodeURL(controller.getPathWithContext(formAction.toString()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" style="margin-top:0;margin-bottom:0">
+ <input name="<%=ActionInputs.FRAME_NAME%>" type="hidden" value="<%=formFrameName%>">
+ <input name="<%=WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>" type="hidden" value="<%=wsdlPerspective.getPerspectiveContentFramesetCols()%>">
+ <input name="<%=WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>" type="hidden" value="<%=wsdlPerspective.getActionsContainerFramesetRows()%>">
+</form>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsFormView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsFormView.jsp
new file mode 100644
index 000000000..c8a8c4388
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsFormView.jsp
@@ -0,0 +1,222 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.w3c.dom.*,
+ javax.wsdl.*,
+ javax.xml.parsers.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%!
+private Element soapResponse_ = null;
+
+private Element[] parseSOAPResponse(SOAPMessageQueue soapMessageQueue, WSDLOperationElement operElement)
+{
+ String messages = soapMessageQueue.getMessagesFromList();
+ try
+ {
+ soapResponse_ = XMLUtils.stringToElement(messages, true);
+ NodeList nl = soapResponse_.getElementsByTagNameNS(FragmentConstants.URI_SOAP_ENV, FragmentConstants.QNAME_LOCAL_NAME_BODY);
+ if (nl.getLength() > 0)
+ {
+ Element soapBody = (Element)nl.item(0);
+ NodeList soapFault = soapBody.getElementsByTagNameNS(FragmentConstants.URI_SOAP_ENV, FragmentConstants.QNAME_LOCAL_NAME_FAULT);
+ if (soapFault.getLength() > 0)
+ return new Element[0];
+ NodeList instanceList;
+ if (operElement.isDocumentStyle())
+ instanceList = soapBody.getChildNodes();
+ else
+ {
+ NodeList rpcWrapper = soapBody.getElementsByTagNameNS("*", operElement.getOperation().getOutput().getMessage().getQName().getLocalPart());
+
+ /*
+ * HACK - Some of the web services out on the internet do not
+ * set their RPC wrapper properly. It should be set to the output
+ * message name of the selected operation. The hack is to
+ * assume the first element inside the body element is the
+ * RPC wrapper.
+ */
+ if (rpcWrapper.getLength() <= 0)
+ rpcWrapper = soapBody.getElementsByTagNameNS("*", "*");
+
+ if (rpcWrapper.getLength() > 0)
+ instanceList = rpcWrapper.item(0).getChildNodes();
+ else
+ return null;
+ }
+ return fixSOAPResponse(instanceList, operElement);
+ }
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ }
+ return null;
+}
+
+/*
+* HACK - The root element tag name of the instance document
+* is ambiguous. It lands on a very grey area between the SOAP
+* spec and the WSDL spec. The two specs do not explicitly define
+* that the root element tag name must match the name of the
+* WSDL part. The hack is to treat elements with different tag names
+* as instances of the WSDL part.
+*/
+private Element[] fixSOAPResponse(NodeList instanceList, WSDLOperationElement operElement)
+{
+ Vector instanceVector = new Vector();
+ for (int i = 0; i < instanceList.getLength(); i++)
+ {
+ Object object = instanceList.item(i);
+ if (object != null && (object instanceof Element))
+ instanceVector.add(object);
+ }
+ Element[] instanceDocuments = new Element[instanceVector.size()];
+ Operation oper = operElement.getOperation();
+ Map partsMap = oper.getOutput().getMessage().getParts();
+ if (partsMap.size() == 1)
+ {
+ Iterator it = partsMap.values().iterator();
+ IXSDFragment frag = operElement.getFragment((Part)it.next(), false);
+ for (int i = 0; i < instanceVector.size(); i++)
+ {
+ Element element = (Element)instanceVector.get(i);
+ if (!element.getTagName().equals(frag.getName()))
+ {
+ Document doc = element.getOwnerDocument();
+ NodeList children = element.getChildNodes();
+ NamedNodeMap attributes = element.getAttributes();
+ element = doc.createElement(frag.getName());
+ for (int j = 0; j < children.getLength(); j++)
+ {
+ if (children.item(j) != null)
+ {
+ element.appendChild(children.item(j));
+ // When you append a node from one element to another,
+ // the original element will lose its reference to this node,
+ // therefore, the size of the node list will decrease by 1.
+ j--;
+ }
+ }
+ for (int j = 0; j < attributes.getLength(); j++)
+ {
+ Object attr = attributes.item(j);
+ if (attr != null && (attr instanceof Attr))
+ {
+ Attr attribute = (Attr)attr;
+ element.setAttribute(attribute.getName(), attribute.getValue());
+ }
+ }
+ }
+ instanceDocuments[i] = element;
+ }
+ }
+ else
+ instanceVector.copyInto(instanceDocuments);
+ return instanceDocuments;
+}
+%>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+wsdlPerspective.setStatusContentType(WSDLPerspective.STATUS_CONTENT_RESULT_FORM);
+Node operNode = wsdlPerspective.getOperationNode();
+nodeID.delete(0, nodeID.length());
+nodeID.append(operNode.getNodeId());
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+Operation oper = operElement.getOperation();
+if (oper.getOutput() == null)
+{
+%>
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" class="labels">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW")%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+else
+{
+ boolean cached = ((Boolean)operElement.getPropertyAsObject(WSDLActionInputs.SOAP_RESPONSE_CACHED)).booleanValue();
+ Element[] instanceDocuments = null;
+ if (!cached)
+ {
+ SOAPMessageQueue soapMessageQueue = wsdlPerspective.getSOAPResponseQueue();
+ instanceDocuments = parseSOAPResponse(soapMessageQueue, operElement);
+ }
+ if (!cached && instanceDocuments == null)
+ {
+ %>
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" class="labels">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_SOAP_RESPONSE_FAILED_VALIDATION_IN_FORM_VIEW")%>
+ </td>
+ </tr>
+ </table>
+ <%
+ }
+ else if (!cached && instanceDocuments.length <= 0)
+ {
+ %>
+ <table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" class="labels">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_NOTHING_TO_DISPLAY_IN_FORM_VIEW")%>
+ </td>
+ </tr>
+ </table>
+ <%
+ }
+ else
+ {
+ Map partsMap = oper.getOutput().getMessage().getParts();
+ Iterator it = partsMap.values().iterator();
+ Hashtable uriReferences = null;
+ while (it.hasNext())
+ {
+ IXSDFragment fragment = operElement.getFragment((Part)it.next(), false);
+ if (!cached)
+ {
+ if (!operElement.isUseLiteral() && (fragment instanceof ISOAPEncodingWrapperFragment))
+ {
+ if (uriReferences == null)
+ uriReferences = SOAPEncodingWrapperFragment.parseURIReferences(soapResponse_, true);
+ ((ISOAPEncodingWrapperFragment)fragment).setURIReferences(uriReferences);
+ }
+ fragment.setParameterValuesFromInstanceDocuments(instanceDocuments);
+ }
+ fragID.delete(0, fragID.length());
+ fragID.append(fragment.getID());
+ %>
+ <jsp:include page="<%=fragment.getReadFragment()%>" flush="true"/>
+ <%
+ }
+ operElement.setPropertyAsObject(WSDLActionInputs.SOAP_RESPONSE_CACHED, new Boolean(true));
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsSoapView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsSoapView.jsp
new file mode 100644
index 000000000..80c36875e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/ReadOnlyFragmentsSoapView.jsp
@@ -0,0 +1,114 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLOperationElement" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+wsdlPerspective.setStatusContentType(WSDLPerspective.STATUS_CONTENT_RESULT_SOURCE);
+Node operNode = wsdlPerspective.getOperationNode();
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+String soapRequestTableContainerId = "SOAPRequest";
+StringBuffer soapRequestTwistImageName = new StringBuffer("x");
+soapRequestTwistImageName.append(soapRequestTableContainerId);
+String soapResponseTableContainerId = "SOAPResponse";
+StringBuffer soapResponseTwistImageName = new StringBuffer("x");
+soapResponseTwistImageName.append(soapResponseTableContainerId);
+%>
+
+<script language="javascript">
+ var sectionIds = ["<%=soapRequestTableContainerId%>","<%=soapResponseTableContainerId%>"];
+ function toggleSOAPEnvelope(soapEnvelopeType,twistImageName)
+ {
+<%
+ // If both envelopes are expanded, each should have 50% height. Otherwise, the remaining displayed envelope should be reset to 100% height.
+%>
+ var soapSectionId = sectionIds[soapEnvelopeType];
+ var soapSection = document.getElementById(soapSectionId);
+ var soapSectionTable = getTable(soapSectionId);
+ var otherSoapSectionId = sectionIds[1-soapEnvelopeType];
+ var otherSoapSection = document.getElementById(otherSoapSectionId);
+ var otherSoapSectionTable = getTable(otherSoapSectionId);
+ if (soapSection.style.display == "none")
+ {
+ if (otherSoapSection.style.display == "")
+ {
+ soapSectionTable.height = "50%";
+ otherSoapSectionTable.height = "50%";
+ }
+ else
+ soapSectionTable.height = "100%";
+ }
+ else
+ {
+ if (otherSoapSection.style.display == "")
+ otherSoapSectionTable.height = "100%";
+ }
+ twist(soapSectionId,twistImageName);
+ }
+</script>
+
+<table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:toggleSOAPEnvelope(<%=WSDLActionInputs.SOAP_ENVELOPE_TYPE_REQUEST%>,'<%=soapRequestTwistImageName.toString()%>')"><img name="<%=soapRequestTwistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_SOAP_REQUEST_ENVELOPE")%></strong>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<div id="<%=soapRequestTableContainerId%>" style="display:none">
+ <table width="95%" height="50%" border=0 cellpadding=0 cellpadding=0>
+ <tr>
+ <td>
+ <iframe src="<%=response.encodeURL(controller.getPathWithContext(wsdlPerspective.getSOAPEnvelopeXMLLink(WSDLActionInputs.SOAP_ENVELOPE_TYPE_REQUEST)))%>" width="95%" height="100%"></iframe>
+ </td>
+ </tr>
+ </table>
+</div>
+<script language="javascript">
+ twist("<%=soapRequestTableContainerId%>","<%=soapRequestTwistImageName.toString()%>");
+</script>
+
+<%
+if (operElement.getOperation().getOutput() != null)
+{
+%>
+<table width="95%" border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:toggleSOAPEnvelope(<%=WSDLActionInputs.SOAP_ENVELOPE_TYPE_RESPONSE%>,'<%=soapResponseTwistImageName.toString()%>')"><img name="<%=soapResponseTwistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_SOAP_RESPONSE_ENVELOPE")%></strong>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<div id="<%=soapResponseTableContainerId%>" style="display:none">
+ <table width="95%" height="50%" border=0 cellpadding=0 cellpadding=0>
+ <tr>
+ <td>
+ <iframe src="<%=response.encodeURL(controller.getPathWithContext(wsdlPerspective.getSOAPEnvelopeXMLLink(WSDLActionInputs.SOAP_ENVELOPE_TYPE_RESPONSE)))%>" width="95%" height="100%"></iframe>
+ </td>
+ </tr>
+ </table>
+</div>
+<script language="javascript">
+ twist("<%=soapResponseTableContainerId%>","<%=soapResponseTwistImageName.toString()%>");
+</script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLBindingDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLBindingDetailsForm.jsp
new file mode 100644
index 000000000..b1abdd713
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLBindingDetailsForm.jsp
@@ -0,0 +1,111 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node bindingNode = wsdlPerspective.getNodeManager().getSelectedNode();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FORM_TITLE_WSDL_BINDING_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript">
+ var rowCheckboxName = "rowCheckboxName";
+</script>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<form action="<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/UpdateWSDLBindingActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+<%
+ String titleImagePath = "wsdl/images/open_wsdl_highlighted.gif";
+ String title = wsdlPerspective.getMessage("ALT_WSDL_BINDING_DETAILS");
+ WSDLBindingElement wsdlBindingElement = (WSDLBindingElement)bindingNode.getTreeElement();
+ Vector operationNodes = bindingNode.getChildNodes();
+%>
+<%@ include file = "/forms/formheader.inc" %>
+<input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=bindingNode.getNodeId()%>">
+<table>
+ <tr>
+ <td class="labels"><%=wsdlPerspective.getMessage("FORM_LABEL_BINDING_DETAILS_DESC",wsdlPerspective.getBindingTypeString(wsdlBindingElement.getBindingType()))%></td>
+ </tr>
+</table>
+<%
+ String documentation = wsdlBindingElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+ if (documentation.length() > 0)
+ {
+%>
+<table>
+ <tr>
+ <td height=20 valign="bottom" class="labels"><%=documentation%></td>
+ </tr>
+ <tr>
+ <td height=10>&nbsp;</td>
+ </tr>
+</table>
+<%
+ }
+
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("Operations");
+ sectionHeaderInfo.setOtherProperties(operationNodes);
+%>
+<jsp:include page="/wsdl/forms/operations_table.jsp" flush="true"/>
+<%
+ if (operationNodes.size() > 0)
+ {
+%>
+<script language="javascript">
+ twist("Operations","xOperations");
+</script>
+<%
+ }
+
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("Endpoints");
+ sectionHeaderInfo.setOtherProperties(wsdlBindingElement);
+%>
+<table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+<jsp:include page="/wsdl/forms/endpoint_table.jsp" flush="true"/>
+<%
+ if (wsdlBindingElement.getEndPoints().length > 0)
+ {
+%>
+<script language="javascript">
+ twistOpen("Endpoints");
+</script>
+<%
+ }
+%>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+</form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsForm.jsp
new file mode 100644
index 000000000..1b9ff1344
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsForm.jsp
@@ -0,0 +1,104 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node wsdlNode = wsdlPerspective.getNodeManager().getSelectedNode();
+ ToolManager currentToolManager = wsdlNode.getCurrentToolManager();
+ WSDLDetailsTool wsdlDetailsTool = (WSDLDetailsTool)currentToolManager.getSelectedTool();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FORM_TITLE_WSDL_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ function switchWSDLDetailsView() {
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/SwitchWSDLDetailsViewsActionJSP.jsp"))%>";
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ String titleImagePath = "wsdl/images/open_wsdl_highlighted.gif";
+ String title = wsdlPerspective.getMessage("ALT_WSDL_DETAILS");
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <img src="<%=response.encodeURL(controller.getPathWithContext(titleImagePath))%>" alt="">
+ <strong><%=title%></strong>
+ </td>
+ <td width="*">&nbsp;</td>
+ <td align="right" class="labels">
+<%
+ if (wsdlDetailsTool.getViewId() == WSDLDetailsTool.SOURCE_VIEW_ID)
+ {
+%>
+ <a href="javascript:switchWSDLDetailsView()" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_FORM_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_FORM")%></a>
+<%
+ }
+ else
+ {
+%>
+ <a href="javascript:switchWSDLDetailsView()" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_SOURCE_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_SOURCE")%></a>
+<%
+ }
+%>
+ </td>
+ </tr>
+ <tr>
+ <td height=20 colspan=3><img height=2 width="100%" align="top" src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>"></td>
+ </tr>
+</table>
+<%
+ if (wsdlDetailsTool.getViewId() == WSDLDetailsTool.FORM_VIEW_ID)
+ {
+%>
+ <jsp:include page="/wsdl/forms/WSDLDetailsFormView.jsp" flush="true"/>
+<%
+ }
+ else
+ {
+%>
+ <table width="95%" height="100%" border=0 cellpadding=0 cellpadding=0>
+ <tr>
+ <td>
+ <iframe src="<%=response.encodeURL(controller.getPathWithContext("/wsdl/forms/WSDLDetailsSourceView.jsp"))%>" width="95%" height="100%"></iframe>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+%>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsFormView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsFormView.jsp
new file mode 100644
index 000000000..5525c532c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsFormView.jsp
@@ -0,0 +1,106 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<table>
+ <tr>
+ <td class="labels"><%=wsdlPerspective.getMessage("FORM_LABEL_WSDL_DETAILS_DESC")%></td>
+ </tr>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+<%
+Node wsdlNode = wsdlPerspective.getNodeManager().getSelectedNode();
+WSDLElement wsdlElement = (WSDLElement)wsdlNode.getTreeElement();
+String documentation = wsdlElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+if (documentation != null && documentation.length() > 0)
+{
+%>
+<table>
+ <tr>
+ <td height=20 valign="bottom" class="labels"><%=documentation%></td>
+ </tr>
+</table>
+<%
+}
+%>
+<table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></th>
+ </tr>
+ <tr>
+ <td class="tablecells"><%=wsdlElement.getWsdlUrl()%></td>
+ </tr>
+</table>
+<table>
+ <tr>
+ <td height=10>&nbsp;</td>
+ </tr>
+</table>
+<%
+sectionHeaderInfo.clear();
+sectionHeaderInfo.setContainerId("Services");
+Vector serviceNodes = wsdlNode.getChildNodes();
+sectionHeaderInfo.setOtherProperties(serviceNodes);
+%>
+<jsp:include page="/wsdl/forms/services_table.jsp" flush="true"/>
+<table>
+ <tr>
+ <td height=10>&nbsp;</td>
+ </tr>
+</table>
+<%
+Vector bindingNodes = new Vector();
+for (int i=0;i<serviceNodes.size();i++)
+{
+ Node serviceNode = (Node)serviceNodes.elementAt(i);
+ Vector serviceBindingNodes = serviceNode.getChildNodes();
+ for (int j=0;j<serviceBindingNodes.size();j++)
+ {
+ Node serviceBindingNode = (Node)serviceBindingNodes.elementAt(j);
+ bindingNodes.addElement(serviceBindingNode);
+ }
+}
+sectionHeaderInfo.clear();
+sectionHeaderInfo.setContainerId("Bindings");
+sectionHeaderInfo.setOtherProperties(bindingNodes);
+%>
+<jsp:include page="/wsdl/forms/bindings_table.jsp" flush="true"/>
+<script language="javascript">
+<%
+if (serviceNodes.size() > 0)
+{
+%>
+ twist("Services","xServices");
+<%
+}
+if (bindingNodes.size() > 0)
+{
+%>
+ twist("Bindings","xBindings");
+<%
+}
+%>
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsSourceView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsSourceView.jsp
new file mode 100644
index 000000000..470a4b5a6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLDetailsSourceView.jsp
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/xml; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.wsdl.internal.impl.wsdl4j.WSDLFactoryImpl,
+ java.io.*,
+ javax.wsdl.*,
+ javax.wsdl.xml.*,
+ javax.wsdl.factory.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+NodeManager nodeManager = wsdlPerspective.getNodeManager();
+Node selectedNode = nodeManager.getSelectedNode();
+WSDLElement wsdlElement = (WSDLElement)selectedNode.getTreeElement();
+Definition definition = wsdlElement.getDefinition();
+WSDLFactory wsdlFactory = new WSDLFactoryImpl();
+WSDLWriter wsdlWriter = wsdlFactory.newWSDLWriter();
+StringWriter stringWriter = new StringWriter();
+try
+{
+ wsdlWriter.writeWSDL(definition, stringWriter);
+ %>
+ <%=stringWriter.toString()%>
+ <%
+}
+catch (WSDLException wsdle)
+{
+ %>
+ <?xml version="1.0"?>
+ <%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLImportWSDLToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLImportWSDLToWorkbenchForm.jsp
new file mode 100644
index 000000000..1ad9d5c01
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLImportWSDLToWorkbenchForm.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.WSDLPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request">
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ String wsdlUrl = ((WSDLElement)selectedNode.getTreeElement()).getWsdlUrl();
+ formProperties.put("formActionLink","wsdl/actions/WSDLImportWSDLToWorkbenchActionJSP.jsp");
+ formProperties.put("wsdlURL",wsdlUrl);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/ImportWSDLAndWSILToWorkbenchForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLLaunchWebServiceWizardForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLLaunchWebServiceWizardForm.jsp
new file mode 100644
index 000000000..893d80cea
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLLaunchWebServiceWizardForm.jsp
@@ -0,0 +1,20 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="formActionLink" class="java.lang.StringBuffer" scope="request">
+<%
+formActionLink.append("wsdl/actions/WSDLLaunchWebServiceWizardActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:include page="/forms/LaunchWebServiceWizardForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLServiceDetailsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLServiceDetailsForm.jsp
new file mode 100644
index 000000000..2ece390e7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/WSDLServiceDetailsForm.jsp
@@ -0,0 +1,79 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node serviceNode = wsdlPerspective.getNodeManager().getSelectedNode();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FORM_TITLE_WSDL_SERVICE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ String titleImagePath = "wsdl/images/open_wsdl_highlighted.gif";
+ String title = wsdlPerspective.getMessage("ALT_WSDL_SERVICE_DETAILS");
+%>
+<%@ include file = "/forms/formheader.inc" %>
+<table>
+ <tr>
+ <td class="labels"><%=wsdlPerspective.getMessage("FORM_LABEL_SERVICE_DETAILS_DESC")%></td>
+ </tr>
+</table>
+<%
+ WSDLServiceElement wsdlServiceElement = (WSDLServiceElement)serviceNode.getTreeElement();
+ String documentation = wsdlServiceElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+ if (documentation.length() > 0)
+ {
+%>
+<table>
+ <tr>
+ <td height=20 valign="bottom" class="labels"><%=documentation%></td>
+ </tr>
+ <tr>
+ <td height=10>&nbsp;</td>
+ </tr>
+</table>
+<%
+ }
+ Vector bindingNodes = serviceNode.getChildNodes();
+ sectionHeaderInfo.clear();
+ sectionHeaderInfo.setContainerId("Bindings");
+ sectionHeaderInfo.setOtherProperties(bindingNodes);
+%>
+<jsp:include page="/wsdl/forms/bindings_table.jsp" flush="true"/>
+</div>
+<%
+ if (bindingNodes.size() > 0)
+ {
+%>
+<script language="javascript">
+ twist("Bindings","xBindings");
+</script>
+<%
+ }
+%>
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/bindings_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/bindings_table.jsp
new file mode 100644
index 000000000..a10ca074e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/bindings_table.jsp
@@ -0,0 +1,72 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ javax.wsdl.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels"><strong><%=wsdlPerspective.getMessage("FORM_LABEL_BINDINGS")%></strong></td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor" width="20%"><%=wsdlPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor" width="20%"><%=wsdlPerspective.getMessage("FORM_LABEL_BINDING_TYPE")%></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_DOCUMENTATION")%></th>
+ </tr>
+<%
+ Vector bindingNodes = (Vector)sectionHeaderInfo.getOtherProperties();
+ for (int i=0;i<bindingNodes.size();i++)
+ {
+ Node bindingNode = (Node)bindingNodes.elementAt(i);
+ WSDLBindingElement wsdlBindingElement = (WSDLBindingElement)bindingNode.getTreeElement();
+ Binding binding = wsdlBindingElement.getBinding();
+%>
+ <tr>
+ <td class="tablecells"><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSDLNavigatorNodeAction.getActionLink(bindingNode.getNodeId(),false)))%>"><%=binding.getQName().getLocalPart()%></td>
+ <td class="tablecells"><%=wsdlPerspective.getBindingTypeString(wsdlBindingElement.getBindingType())%></td>
+<%
+ WSDLServiceElement wsdlServiceElement = (WSDLServiceElement)wsdlBindingElement.getParentElement();
+ String documentation = wsdlServiceElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+ if (documentation.length() < 1)
+ documentation = controller.getMessage("TABLE_BLANK_PLACEHOLDER");
+%>
+ <td class="tablecells"><%=documentation%></td>
+ </tr>
+<%
+ }
+%>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/endpoint_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/endpoint_table.jsp
new file mode 100644
index 000000000..37ec6d4ff
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/endpoint_table.jsp
@@ -0,0 +1,139 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<script language="javascript">
+ function addEndpoint(tableContainerID, id, name, value, isRemovable)
+ {
+ twistOpen(tableContainerID);
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("tbody").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ if (!isRemovable)
+ {
+ rowCheckbox.disabled = true;
+ }
+ column0.appendChild(rowCheckbox);
+
+ var endPoint;
+ if (isRemovable)
+ {
+ endPoint = document.createElement("input");
+ endPoint.type = "text";
+ endPoint.id = id;
+ endPoint.name = name;
+ if (value != null)
+ endPoint.value = value;
+ endPoint.className = "tabletextenter";
+ }
+ else
+ endPoint = document.createTextNode(value);
+ column1.appendChild(endPoint);
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ tableBody.appendChild(newRow);
+ }
+
+ function handleEndpointCheckAllClick(tableContainerId,checkAllCheckbox)
+ {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ if (!rowCheckbox.disabled)
+ {
+ rowCheckbox.checked = checkAllCheckbox.checked;
+ if (rowCheckbox.checked)
+ highlightRow(table.rows[i],"rowcolor");
+ else
+ highlightRow(table.rows[i],"tablecells");
+ }
+ }
+ }
+</script>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String tableContainerID = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerID);
+ WSDLBindingElement bindingElement = (WSDLBindingElement)sectionHeaderInfo.getOtherProperties();
+ String[] endpoints = bindingElement.getEndPoints();
+ String addressLocation = ((WSDLServiceElement)bindingElement.getParentElement()).getAddressLocation(bindingElement.getBinding());
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_END_POINTS")%></strong>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:addEndpoint('<%=tableContainerID%>', '<%=WSDLActionInputs.END_POINT%>', '<%=WSDLActionInputs.END_POINT%>', '<%=addressLocation%>', true)"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:removeSelectedRows('<%=tableContainerID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerID%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleEndpointCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_END_POINTS")%></th>
+ </tr>
+ </table>
+</div>
+<script language="javascript">
+<%
+ boolean isDefaultAdded = false;
+ for (int i = 0; i < endpoints.length; i++)
+ {
+ if (endpoints[i].equals(addressLocation) && !isDefaultAdded)
+ {
+%>
+ addEndpoint('<%=tableContainerID%>', '<%=WSDLActionInputs.END_POINT%>', "", '<%=endpoints[i]%>', false);
+
+<%
+ isDefaultAdded = true;
+ }
+ else
+ {
+%>
+ addEndpoint('<%=tableContainerID%>', '<%=WSDLActionInputs.END_POINT%>', '<%=WSDLActionInputs.END_POINT%>', '<%=endpoints[i]%>', true);
+<%
+ }
+ }
+%>
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/operations_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/operations_table.jsp
new file mode 100644
index 000000000..bab19e2d3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/operations_table.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels"><strong><%=wsdlPerspective.getMessage("FORM_LABEL_OPERATIONS")%></strong></td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor" width="20%"><%=wsdlPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_DOCUMENTATION")%></th>
+ </tr>
+<%
+ Vector operationNodes = (Vector)sectionHeaderInfo.getOtherProperties();
+ for (int i=0;i<operationNodes.size();i++)
+ {
+ Node operationNode = (Node)operationNodes.elementAt(i);
+ WSDLOperationElement wsdlOperationElement = (WSDLOperationElement)operationNode.getTreeElement();
+%>
+ <tr>
+ <td class="tablecells"><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSDLNavigatorNodeAction.getActionLink(operationNode.getNodeId(),false)))%>"><%=wsdlOperationElement.getOperation().getName()%></a></td>
+<%
+ String documentation = wsdlOperationElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+ if (documentation.length() < 1)
+ documentation = controller.getMessage("TABLE_BLANK_PLACEHOLDER");
+%>
+ <td class="tablecells"><%=documentation%></td>
+ </tr>
+<%
+ }
+%>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/services_table.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/services_table.jsp
new file mode 100644
index 000000000..18c99033b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/services_table.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ java.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="sectionHeaderInfo" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.SectionHeaderInfo" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String tableContainerId = sectionHeaderInfo.getContainerId();
+ StringBuffer twistImageName = new StringBuffer("x");
+ twistImageName.append(tableContainerId);
+%>
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11><a href="javascript:twist('<%=tableContainerId%>','<%=twistImageName.toString()%>')"><img name="<%=twistImageName.toString()%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a></td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels"><strong><%=wsdlPerspective.getMessage("FORM_LABEL_SERVICES")%></strong></td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=tableContainerId%>" style="display:none;">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor" width="20%"><%=wsdlPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_DOCUMENTATION")%></th>
+ </tr>
+<%
+ Vector serviceNodes = (Vector)sectionHeaderInfo.getOtherProperties();
+ for (int i=0;i<serviceNodes.size();i++)
+ {
+ Node serviceNode = (Node)serviceNodes.elementAt(i);
+ WSDLServiceElement wsdlServiceElement = (WSDLServiceElement)serviceNode.getTreeElement();
+%>
+ <tr>
+ <td class="tablecells"><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSDLNavigatorNodeAction.getActionLink(serviceNode.getNodeId(),false)))%>"><%=wsdlServiceElement.getService().getQName().getLocalPart()%></a></td>
+<%
+ String documentation = wsdlServiceElement.getPropertyAsString(WSDLModelConstants.PROP_DOCUMENTATION);
+ if (documentation.length() < 1)
+ documentation = controller.getMessage("TABLE_BLANK_PLACEHOLDER");
+%>
+ <td class="tablecells"><%=documentation%></td>
+ </tr>
+<%
+ }
+%>
+ </table>
+</div>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayFixWFragmentJSP.jsp
new file mode 100644
index 000000000..de802b9b1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayFixWFragmentJSP.jsp
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ISOAPEncArrayFragment frag = (ISOAPEncArrayFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <jsp:include page="/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp" flush="true"/>
+ </td>
+ </tr>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp
new file mode 100644
index 000000000..608414e05
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRFragmentJSP.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+ISOAPEncArrayFragment frag = (ISOAPEncArrayFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerIDBase = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageNameBase = (new StringBuffer("x")).append(tableContainerIDBase).toString();
+String[] groupIDs = frag.getGroupIDs();
+for (int i = 0; i < groupIDs.length; i++) {
+%>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=i + tableContainerIDBase%>','<%=i + twistImageNameBase%>')"><img name="<%=i + twistImageNameBase%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=frag.getName()%>
+ </td>
+ </tr>
+ </table>
+ <span id="<%=i + tableContainerIDBase%>">
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+ IXSDFragment[] childFragments = frag.getGroupMemberFragments(groupIDs[i]);
+ for (int j = 0; j < childFragments.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(childFragments[j].getID());
+%>
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <jsp:include page="<%=childFragments[j].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+ }
+%>
+ </table>
+ </span>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..502a699a0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/SOAPEncArrayRangeWFragmentJSP.jsp
@@ -0,0 +1,89 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupSeqFragment frag = (IXSDGroupSeqFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_SOAP_ENC_ARRAYS")%></th>
+ </tr>
+ <%
+ String[] groupIDs = frag.getGroupIDs();
+ for (int i = 0; i < groupIDs.length || i < xsdConfig.getMinOccurs(); i++) {
+ String groupID;
+ if (i < groupIDs.length)
+ groupID = groupIDs[i];
+ else
+ groupID = frag.createGroupSeqInstance();
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupID);
+ %>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <%
+ for (int j = 0; j < groupMemberFragments.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[j].getID());
+ %>
+ <jsp:include page="<%=groupMemberFragments[j].getWriteFragment()%>" flush="true"/>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexFixWFragmentJSP.jsp
new file mode 100644
index 000000000..4877764eb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexFixWFragmentJSP.jsp
@@ -0,0 +1,75 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDComplexFragment frag = (IXSDComplexFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <%
+ IXSDFragment[] childFrags = frag.getAllFragments();
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ IXSDFragment childFrag;
+ String childFragID;
+ if (i < childFrags.length) {
+ childFrag = childFrags[i];
+ childFragID = childFrag.getID();
+ }
+ else {
+ childFragID = frag.createComplexInstance();
+ childFrag = frag.getFragment(childFragID);
+ }
+ fragID.delete(0, fragID.length());
+ fragID.append(childFragID);
+ %>
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=childFragID%>">
+ <jsp:include page="<%=childFrag.getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRFragmentJSP.jsp
new file mode 100644
index 000000000..672800300
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRFragmentJSP.jsp
@@ -0,0 +1,60 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDComplexFragment frag = (IXSDComplexFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerIDBase = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageNameBase = (new StringBuffer("x")).append(tableContainerIDBase).toString();
+IXSDFragment[] childFrags = frag.getAllFragments();
+for (int i = 0; i < childFrags.length; i++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(childFrags[i].getID());
+%>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=i + tableContainerIDBase%>','<%=i + twistImageNameBase%>')"><img name="<%=i + twistImageNameBase%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=frag.getName()%>
+ </td>
+ </tr>
+ </table>
+ <span id="<%=i + tableContainerIDBase%>">
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <jsp:include page="<%=childFrags[i].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ </table>
+ </span>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..6af5c1f34
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDComplexRangeWFragmentJSP.jsp
@@ -0,0 +1,87 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDComplexFragment frag = (IXSDComplexFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_CONTENT")%></th>
+ </tr>
+ <%
+ IXSDFragment[] childFrags = frag.getAllFragments();
+ for (int i = 0; i < childFrags.length || i < xsdConfig.getMinOccurs(); i++) {
+ IXSDFragment childFrag;
+ String childFragID;
+ if (i < childFrags.length) {
+ childFrag = childFrags[i];
+ childFragID = childFrag.getID();
+ }
+ else {
+ childFragID = frag.createComplexInstance();
+ childFrag = frag.getFragment(childFragID);
+ }
+ fragID.delete(0, fragID.length());
+ fragID.append(childFragID);
+ %>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=childFragID%>">
+ <jsp:include page="<%=childFrag.getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp
new file mode 100644
index 000000000..3a8ad8295
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp
@@ -0,0 +1,201 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.emf.common.util.EList,
+ org.eclipse.xsd.*,
+ org.w3c.dom.Element,
+ org.w3c.dom.NodeList" %>
+
+<jsp:useBean id="sessionID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%!
+private static final String XMLNS_LANG = "xml:lang";
+private static final String DEFAULT_XMLNS_LANG = "en-US";
+%>
+
+<%
+HttpSession currentSession = (HttpSession)application.getAttribute(sessionID.toString());
+Controller controller = (Controller)currentSession.getAttribute("controller");
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDComponent xsdComponent = frag.getXSDToFragmentConfiguration().getXSDComponent();
+XSDAnnotation annotation = null;
+EList appInfoList = null;
+EList docList = null;
+if (xsdComponent instanceof XSDTypeDefinition)
+ annotation = ((XSDTypeDefinition)xsdComponent).getAnnotation();
+else if (xsdComponent instanceof XSDElementDeclaration)
+ annotation = ((XSDElementDeclaration)xsdComponent).getAnnotation();
+if (annotation != null) {
+ appInfoList = annotation.getApplicationInformation();
+ docList = annotation.getUserInformation();
+}
+String appInfoContainerID = "::appInfo";
+String xappInfoContainerID = "x::appInfo";
+String documentationContainerID = "::documentation";
+String xdocumentationContainerID = "x::documentation";
+%>
+
+<script language="javascript">
+ function twist(tableContainerId,twistImageName)
+ {
+ var tableContainer = document.getElementById(tableContainerId);
+ var twistImage = document.images[twistImageName];
+ if (tableContainer.style.display == "none")
+ {
+ tableContainer.style.display = "";
+ twistImage.src = "<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>";
+ twistImage.alt = "<%=HTMLUtils.JSMangle(controller.getMessage("ALT_TWIST_OPENED"))%>";
+ }
+ else
+ {
+ tableContainer.style.display = "none";
+ twistImage.src = "<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>";
+ twistImage.alt = "<%=HTMLUtils.JSMangle(controller.getMessage("ALT_TWIST_CLOSED"))%>";
+ }
+ }
+
+ function twistClose(tableContainerId)
+ {
+ if (document.getElementById(tableContainerId).style.display == "")
+ twist(tableContainerId,"x"+tableContainerId);
+ }
+</script>
+
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=appInfoContainerID%>','<%=xappInfoContainerID%>')"><img name="<%=xappInfoContainerID%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_XSD_APPLICATION_INFORMATION")%></strong>
+ </td>
+ </tr>
+</table>
+<span id="<%=appInfoContainerID%>">
+<table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor" width="100%"><%=wsdlPerspective.getMessage("FORM_LABEL_XSD_APPLICATION_INFORMATION")%></th>
+ </tr>
+ <%
+ boolean openAppInfoTable = false;
+ if (appInfoList != null) {
+ for (int i = 0; i < appInfoList.size(); i++) {
+ Element e = (Element)appInfoList.get(i);
+ String appInfoLang = e.getAttribute(XMLNS_LANG);
+ String appInfoText = null;
+ NodeList nl = e.getChildNodes();
+ for (int j = 0; j < nl.getLength(); j++) {
+ if (nl.item(j).getNodeType() == org.w3c.dom.Node.TEXT_NODE) {
+ appInfoText = nl.item(j).getNodeValue();
+ break;
+ }
+ }
+ if (appInfoText != null)
+ {
+ openAppInfoTable = true;
+ if (appInfoText.trim().length() < 1)
+ appInfoText = controller.getMessage("TABLE_BLANK_PLACEHOLDER");
+ %>
+ <tr>
+ <td class="tablecells"><%=((appInfoLang != null && appInfoLang.length() > 0) ? appInfoLang : DEFAULT_XMLNS_LANG)%></td>
+ <td class="tablecells"><%=appInfoText%></td>
+ </tr>
+ <%
+ }
+ }
+ }
+ %>
+</table>
+</span>
+<%
+if (!openAppInfoTable) {
+%>
+<script language="javascript">
+ twistClose('<%=appInfoContainerID%>');
+</script>
+<%
+}
+%>
+
+<table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=documentationContainerID%>','<%=xdocumentationContainerID%>')"><img name="<%=xdocumentationContainerID%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_XSD_DOCUMENTATION")%></strong>
+ </td>
+ </tr>
+</table>
+<span id="<%=documentationContainerID%>">
+<table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor" width="100%"><%=wsdlPerspective.getMessage("FORM_LABEL_XSD_DOCUMENTATION")%></th>
+ </tr>
+ <%
+ boolean openDocTable = false;
+ if (docList != null) {
+ for (int i = 0; i < docList.size(); i++) {
+ Element e = (Element)docList.get(i);
+ String docLang = e.getAttribute(XMLNS_LANG);
+ String docText = null;
+ NodeList nl = e.getChildNodes();
+ for (int j = 0; j < nl.getLength(); j++) {
+ if (nl.item(j).getNodeType() == org.w3c.dom.Node.TEXT_NODE) {
+ docText = nl.item(j).getNodeValue();
+ break;
+ }
+ }
+ if (docText != null)
+ {
+ openDocTable = true;
+ if (docText.trim().length() < 1)
+ docText = controller.getMessage("TABLE_BLANK_PLACEHOLDER");
+ %>
+ <tr>
+ <td class="tablecells"><%=((docLang != null && docLang.length() > 0) ? docLang : DEFAULT_XMLNS_LANG)%></td>
+ <td class="tablecells"><%=docText%></td>
+ </tr>
+ <%
+ }
+ }
+ }
+ %>
+</table>
+</span>
+<%
+if (!openDocTable) {
+%>
+<script language="javascript">
+ twistClose('<%=documentationContainerID%>');
+</script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp
new file mode 100644
index 000000000..c00694f7c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.Node,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.w3c.dom.Element,
+ javax.xml.rpc.NamespaceConstants,
+ java.util.Hashtable" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+Hashtable soapEnvelopeNamespaceTable = new Hashtable();
+// TODO: Replace "SOAP-ENV" by NamespaceConstants.NSPREFIX_SOAP_ENVELOPE (="soapenv")
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SOAP_ENVELOPE,"SOAP-ENV");
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SCHEMA_XSI,NamespaceConstants.NSPREFIX_SCHEMA_XSI);
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SCHEMA_XSD,NamespaceConstants.NSPREFIX_SCHEMA_XSD);
+Element[] instanceDocuments = frag.genInstanceDocumentsFromParameterValues(!operElement.isUseLiteral(), soapEnvelopeNamespaceTable, XMLUtils.createNewDocument(null));
+StringBuffer sb = new StringBuffer();
+for (int i = 0; i < instanceDocuments.length; i++) {
+ if (instanceDocuments[i] == null)
+ continue;
+ sb.append(XMLUtils.serialize(instanceDocuments[i], true));
+ sb.append(HTMLUtils.LINE_SEPARATOR);
+}
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><%=frag.getName()%></label>
+ </td>
+ </tr>
+</table>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter" readonly><%=sb.toString()%></textarea>
+<%
+ /*
+ StringBuffer url = new StringBuffer();
+ url.append(response.encodeURL(controller.getPathWithContext("/wsdl/fragment/XSDDefaultRFragmentXML.jsp?")));
+ url.append(WSDLActionInputs.FRAGMENT_ID).append("=").append(fragID).append("&");
+ url.append(ActionInputs.NODEID).append("=").append(nodeID).append("&");
+ url.append(ActionInputs.SESSIONID).append("=").append(session.getId());
+ */
+%>
+ <!--
+ <iframe src="" width="100%" height="150px"></iframe>
+ -->
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp
new file mode 100644
index 000000000..a5a0138a7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp
@@ -0,0 +1,98 @@
+<%@ page contentType="text/xml; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*,
+ org.w3c.dom.Element,
+ org.xml.sax.*,
+ org.xml.sax.helpers.*,
+ javax.xml.rpc.NamespaceConstants,
+ javax.xml.parsers.*,
+ java.io.*,
+ java.util.*" %>
+<%
+String fragID = request.getParameter(WSDLActionInputs.FRAGMENT_ID);
+String nodeID = request.getParameter(ActionInputs.NODEID);
+String sessionId = request.getParameter(ActionInputs.SESSIONID);
+HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+Controller controller = (Controller)currentSession.getAttribute("controller");
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID);
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+Hashtable soapEnvelopeNamespaceTable = new Hashtable();
+// TODO: Replace "SOAP-ENV" by NamespaceConstants.NSPREFIX_SOAP_ENVELOPE (="soapenv")
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SOAP_ENVELOPE,"SOAP-ENV");
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SCHEMA_XSI,NamespaceConstants.NSPREFIX_SCHEMA_XSI);
+soapEnvelopeNamespaceTable.put(NamespaceConstants.NSURI_SCHEMA_XSD,NamespaceConstants.NSPREFIX_SCHEMA_XSD);
+Element[] instanceDocuments = new Element[0];
+StringBuffer sb = null;
+try
+{
+ instanceDocuments = frag.genInstanceDocumentsFromParameterValues(!operElement.isUseLiteral(), soapEnvelopeNamespaceTable, XMLUtils.createNewDocument(null));
+ if (instanceDocuments.length == 1)
+ {
+ byte[] b = XMLUtils.serialize(instanceDocuments[0], true).getBytes(HTMLUtils.UTF8_ENCODING);
+ ByteArrayInputStream bais = new ByteArrayInputStream(b);
+ SAXParserFactory saxFactory = SAXParserFactory.newInstance();
+ saxFactory.setValidating(true);
+ SAXParser saxParser = saxFactory.newSAXParser();
+ saxParser.parse(bais,
+ new DefaultHandler()
+ {
+ public void error(SAXParseException e) throws SAXException
+ {
+ throw e;
+ }
+
+ public void fatalError(SAXParseException e) throws SAXException
+ {
+ throw e;
+ }
+
+ public void warning(SAXParseException e) throws SAXException
+ {
+ throw e;
+ }
+ });
+ bais.close();
+ sb = new StringBuffer(new String(b));
+ }
+}
+catch (Throwable t)
+{
+}
+if (sb == null)
+{
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=frag.getName()%></title>
+</head>
+<body>
+<%
+ sb = new StringBuffer();
+ response.setContentType("text/html; charset=UTF-8");
+ for (int i = 0; i < instanceDocuments.length; i++) {
+ if (instanceDocuments[i] == null)
+ continue;
+ sb.append(HTMLUtils.charactersToHTMLEntities(XMLUtils.serialize(instanceDocuments[i], true)));
+ }
+%>
+<%=sb.toString()%>
+</body>
+</html>
+<%
+}
+else
+{
+%>
+<%=sb.toString()%>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp
new file mode 100644
index 000000000..10a2f7f14
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String param = frag.getParameterValue(frag.getID(), 0);
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td>
+ <%
+ if (!frag.validateAllParameterValues()) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter"><%=((param != null) ? param : "")%></textarea>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationRFragmentJSP.jsp
new file mode 100644
index 000000000..d0931f294
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationRFragmentJSP.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDDelegationFragment wrapperFragment = (IXSDDelegationFragment)operElement.getFragmentByID(fragID.toString());
+IXSDFragment delegationFragment = wrapperFragment.getXSDDelegationFragment();
+XSDToFragmentConfiguration xsdConfig = wrapperFragment.getXSDToFragmentConfiguration();
+fragID.delete(0, fragID.length());
+fragID.append(delegationFragment.getID());
+%>
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <jsp:include page="<%=delegationFragment.getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationWFragmentJSP.jsp
new file mode 100644
index 000000000..c34607a31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDelegationWFragmentJSP.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDDelegationFragment wrapperFragment = (IXSDDelegationFragment)operElement.getFragmentByID(fragID.toString());
+IXSDFragment delegationFragment = wrapperFragment.getXSDDelegationFragment();
+XSDToFragmentConfiguration xsdConfig = wrapperFragment.getXSDToFragmentConfiguration();
+fragID.delete(0, fragID.length());
+fragID.append(delegationFragment.getID());
+%>
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <jsp:include page="<%=delegationFragment.getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyRFragmentJSP.jsp
new file mode 100644
index 000000000..ba3ceeed5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyRFragmentJSP.jsp
@@ -0,0 +1,17 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyWFragmentJSP.jsp
new file mode 100644
index 000000000..89a494313
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDEmptyWFragmentJSP.jsp
@@ -0,0 +1,77 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+int minOccurs = xsdConfig.getMinOccurs();
+int maxOccurs = xsdConfig.getMaxOccurs();
+if (minOccurs == maxOccurs) {
+%>
+<input type="hidden" name="<%=frag.getID()%>" value="<%=maxOccurs%>"/>
+<%
+} else {
+ String[] params = frag.getParameterValues(frag.getID());
+%>
+ <table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <label for="<%=frag.getID()%>"><%=wsdlPerspective.getMessage("FORM_LABEL_OCCURANCE")%>&nbsp;<a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <%
+ if (maxOccurs != FragmentConstants.UNBOUNDED) {
+ %>
+ <select id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="selectlist">
+ <%
+ for (int i = minOccurs; i <= maxOccurs; i++) {
+ %>
+ <option value="<%=i%>" <% if (params != null && i == params.length) { %>selected<% } %>><%=i%>
+ <%
+ }
+ %>
+ </select>
+ <%
+ } else {
+ %>
+ <input type="text" id="<%=frag.getID()%>" name="<%=frag.getID()%>" value="<%=((params != null) ? String.valueOf(params.length) : "")%>" class="tabletextenter">
+ <%
+ if (!frag.validateParameterValues(frag.getID())) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ }
+ %>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupAllWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupAllWFragmentJSP.jsp
new file mode 100644
index 000000000..159029224
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupAllWFragmentJSP.jsp
@@ -0,0 +1,190 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupAllFragment frag = (IXSDGroupAllFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+boolean enableGroup = (xsdConfig.getMinOccurs() > 0 || frag.getGroupIDs().length > 0);
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String groupID = frag.getGroupAllInstance();
+String groupCheckboxID = (new StringBuffer(FragmentConstants.XSD_ALL_GROUP_ID)).append(frag.getID()).toString();
+String groupMemberRadioID = (new StringBuffer(groupCheckboxID)).append(frag.getID()).toString();
+%>
+<script language="javascript">
+ function initGroupAll(tableContainerID, twistImageName, fragID, groupID, groupCheckboxID, enable) {
+ var checkbox = document.getElementById(groupCheckboxID);
+ checkbox.checked = enable;
+ enableGroupAll(tableContainerID, twistImageName, fragID, groupID, checkbox);
+ }
+
+ function enableGroupAll(tableContainerID, twistImageName, fragID, groupID, checkbox) {
+ var tableContainer = document.getElementById(tableContainerID);
+ var checkboxTable = checkbox.parentNode.parentNode.parentNode;
+ if (checkbox.checked) {
+ if (tableContainer.style.display == "none")
+ twist(tableContainerID, twistImageName);
+ checkbox.name = fragID;
+ checkbox.value = groupID;
+ }
+ else {
+ if (tableContainer.style.display == "")
+ twist(tableContainerID, twistImageName);
+ checkbox.name = "";
+ checkbox.value = "";
+ }
+ var tds = checkboxTable.getElementsByTagName("td");
+ var checkboxCellIndex = checkbox.parentNode.cellIndex;
+ for (var i = 0; i < tds.length; i++) {
+ if (i == checkboxCellIndex || checkbox.checked)
+ tds.item(i).style.display = "";
+ else
+ tds.item(i).style.display = "none";
+ }
+ }
+
+ function groupAllOrderingMoveUp(tableContainerID) {
+ var table = getTable(tableContainerID);
+ if (table.rows[numberOfHeaderRows].cells[0].getElementsByTagName("input").item(0).checked) {
+ alert('<%=wsdlPerspective.getMessage("MSG_ERROR_CANNOT_MOVE_FIRST_ELEMENT_UP")%>');
+ return;
+ }
+ for (var i = numberOfHeaderRows + 1; i < table.rows.length; i++) {
+ if (table.rows[i].cells[0].getElementsByTagName("input").item(0).checked) {
+ swapRows(table, i-1, i);
+ table.rows[i-1].cells[0].getElementsByTagName("input").item(0).checked = true;
+ return;
+ }
+ }
+ alert('<%=controller.getWSDLPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>');
+ }
+
+ function groupAllOrderingMoveDown(tableContainerID) {
+ var table = getTable(tableContainerID);
+ if (table.rows[table.rows.length - 1].cells[0].getElementsByTagName("input").item(0).checked) {
+ alert('<%=wsdlPerspective.getMessage("MSG_ERROR_CANNOT_MOVE_LAST_ELEMENT_DOWN")%>');
+ return;
+ }
+ for (var i = numberOfHeaderRows; i < table.rows.length - 1; i++) {
+ if (table.rows[i].cells[0].getElementsByTagName("input").item(0).checked) {
+ swapRows(table, i, i+1);
+ table.rows[i+1].cells[0].getElementsByTagName("input").item(0).checked = true;
+ return;
+ }
+ }
+ alert('<%=controller.getWSDLPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>');
+ }
+
+ <%
+ // rowIndex1 must be smaller than rowIndex2 in order to work
+ %>
+ function swapRows(table, rowIndex1, rowIndex2) {
+ var row1ChildNodes = cloneArray(table.rows[rowIndex1].childNodes);
+ var row2ChildNodes = cloneArray(table.rows[rowIndex2].childNodes);
+ table.deleteRow(rowIndex2);
+ table.deleteRow(rowIndex1);
+ var row1 = table.insertRow(rowIndex1);
+ var row2 = table.insertRow(rowIndex2);
+ appendToRow(row1, row2ChildNodes);
+ appendToRow(row2, row1ChildNodes);
+ }
+
+ function cloneArray(oldArray) {
+ var arrayClone = new Array();
+ for (var i = 0; i < oldArray.length; i++) {
+ arrayClone[i] = oldArray[i].cloneNode(true);
+ }
+ return arrayClone;
+ }
+
+ function appendToRow(row, nodesArray) {
+ for (var i = 0; i < nodesArray.length; i++) {
+ row.appendChild(nodesArray[i]);
+ }
+ }
+</script>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <%
+ if (xsdConfig.getMinOccurs() > 0) {
+ %>
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <%
+ }
+ else {
+ %>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <input type="checkbox" id="<%=groupCheckboxID%>" name="<%=frag.getID()%>" value="<%=groupID%>" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_ENABLE_DISABLE_GROUP")%>" onClick="javascript:enableGroupAll('<%=tableContainerID%>', '<%=twistImageName%>', '<%=frag.getID()%>', '<%=groupID%>', this)" checked><label for="<%=groupCheckboxID%>"><%=wsdlPerspective.getMessage("FORM_LABEL_ENABLE_DISABLE_GROUP")%></label>
+ </td>
+ <%
+ }
+ %>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:groupAllOrderingMoveUp('<%=tableContainerID%>')"><%=wsdlPerspective.getMessage("FORM_LABEL_GROUP_ALL_ORDERING_MOVE_UP")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:groupAllOrderingMoveDown('<%=tableContainerID%>')"><%=wsdlPerspective.getMessage("FORM_LABEL_GROUP_ALL_ORDERING_MOVE_DOWN")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="headercolor" width=10></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_ELEMENTS")%></th>
+ </tr>
+ <%
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupID);
+ for (int i = 0; i < groupMemberFragments.length; i++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[i].getID());
+ %>
+ <tr>
+ <td class="tablecells">
+ <input type="radio" class="radio" name="<%=groupMemberRadioID%>" value="<%=fragID.toString()%>" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_ELEMENT_IN_GROUP")%>">
+ </td>
+ <td class="tablecells" width="100%">
+ <input type="hidden" name="<%=groupID%>" value="<%=fragID.toString()%>">
+ <jsp:include page="<%=groupMemberFragments[i].getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
+<%
+if (!enableGroup) {
+%>
+ <script language="javascript">
+ initGroupAll('<%=tableContainerID%>', '<%=twistImageName%>', '<%=frag.getID()%>', '<%=groupID%>', '<%=groupCheckboxID%>', <%=enableGroup%>);
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceFixWFragmentJSP.jsp
new file mode 100644
index 000000000..054cf0cdf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceFixWFragmentJSP.jsp
@@ -0,0 +1,113 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<script language="javascript">
+ function choose(select) {
+ for (var i = 0; i < select.options.length; i++) {
+ var tableContainerID = '<%=FragmentConstants.TABLE_ID%>';
+ tableContainerID += select.options(i).value;
+ showTable(tableContainerID, select.options(i).selected);
+ }
+ }
+
+ function showTable(tableContainerID, show) {
+ var tableContainer = document.getElementById(tableContainerID);
+ if (show)
+ tableContainer.style.display = "";
+ else
+ tableContainer.style.display = "none";
+ }
+</script>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupChoiceFragment frag = (IXSDGroupChoiceFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+%>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="headercolor" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_CHOICES")%></th>
+ <th class="headercolor" width="100%" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_ELEMENTS")%></th>
+ </tr>
+<%
+ XSDParticle[] choices = frag.getChoices();
+ String[] groupIDs = frag.getGroupIDs();
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ String groupID;
+ int choiceIndex;
+ if (i < groupIDs.length) {
+ groupID = groupIDs[i];
+ choiceIndex = frag.getChoiceIndex(groupID);
+ }
+ else {
+ groupID = frag.createGroupChoiceInstance(0);
+ choiceIndex = 0;
+ }
+ IXSDFragment[] choiceFrags = frag.getGroupMemberFragments(groupID);
+%>
+ <tr>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <select id="<%=groupID%>" name="<%=groupID%>" onChange="javascript:choose(this)" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_CHOICES")%>">
+<%
+ for (int j = 0; j < choiceFrags.length; j++) {
+ XSDElementDeclaration xsdElement = (XSDElementDeclaration)choiceFrags[j].getXSDToFragmentConfiguration().getXSDComponent();
+ if (j == choiceIndex) {
+%>
+ <option value="<%=choiceFrags[j].getID()%>" selected><%=xsdElement.getQName()%>
+<%
+ }
+ else {
+%>
+ <option value="<%=choiceFrags[j].getID()%>"><%=xsdElement.getQName()%>
+<%
+ }
+ }
+%>
+ </select>
+ </td>
+ <td class="tablecells">
+<%
+ for (int j = 0; j < choiceFrags.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(choiceFrags[j].getID());
+ String choiceFragTableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(choiceFrags[j].getID()).toString();
+%>
+ <span id="<%=choiceFragTableContainerID%>">
+ <jsp:include page="<%=choiceFrags[j].getWriteFragment()%>" flush="true"/>
+ </span>
+ <script language="javascript">
+ showTable('<%=choiceFragTableContainerID%>', <%=(j == choiceIndex)%>);
+ </script>
+<%
+ }
+%>
+ </td>
+ </tr>
+<%
+ }
+%>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp
new file mode 100644
index 000000000..494cc1c4d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRFragmentJSP.jsp
@@ -0,0 +1,79 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDGroupChoiceFragment frag = (IXSDGroupChoiceFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerIDBase = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageNameBase = (new StringBuffer("x")).append(tableContainerIDBase).toString();
+String[] groupIDs = frag.getGroupIDs();
+if (groupIDs.length == 1) {
+ int choiceIndex = frag.getChoiceIndex(groupIDs[0]);
+ IXSDFragment choiceFrag = frag.getGroupMemberFragments(groupIDs[0])[choiceIndex];
+ fragID.delete(0, fragID.length());
+ fragID.append(choiceFrag.getID());
+%>
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td>
+ <jsp:include page="<%=choiceFrag.getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ </table>
+<%
+}
+else {
+ for (int i = 0; i < groupIDs.length; i++) {
+ int choiceIndex = frag.getChoiceIndex(groupIDs[i]);
+ IXSDFragment choiceFrag = frag.getGroupMemberFragments(groupIDs[i])[choiceIndex];
+ fragID.delete(0, fragID.length());
+ fragID.append(choiceFrag.getID());
+%>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=i + tableContainerIDBase%>','<%=i + twistImageNameBase%>')"><img name="<%=i + twistImageNameBase%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=wsdlPerspective.getMessage("FORM_LABEL_GROUP_NUMBER", String.valueOf(i + 1))%>
+ </td>
+ </tr>
+ </table>
+ <span id="<%=i + tableContainerIDBase%>">
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <jsp:include page="<%=choiceFrag.getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ </table>
+ </span>
+<%
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..e9674b8b0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupChoiceRangeWFragmentJSP.jsp
@@ -0,0 +1,136 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<script language="javascript">
+ function choose(select) {
+ for (var i = 0; i < select.options.length; i++) {
+ var tableContainerID = '<%=FragmentConstants.TABLE_ID%>';
+ tableContainerID += select.options(i).value;
+ showTable(tableContainerID, select.options(i).selected);
+ }
+ }
+
+ function showTable(tableContainerID, show) {
+ var tableContainer = document.getElementById(tableContainerID);
+ if (show)
+ tableContainer.style.display = "";
+ else
+ tableContainer.style.display = "none";
+ }
+</script>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupChoiceFragment frag = (IXSDGroupChoiceFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_CHOICES")%></th>
+ <th class="headercolor" width="100%" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_ELEMENTS")%></th>
+ </tr>
+<%
+ XSDParticle[] choices = frag.getChoices();
+ String[] groupIDs = frag.getGroupIDs();
+ for (int i = 0; i < groupIDs.length || i < xsdConfig.getMinOccurs(); i++) {
+ String groupID;
+ int choiceIndex;
+ if (i < groupIDs.length) {
+ groupID = groupIDs[i];
+ choiceIndex = frag.getChoiceIndex(groupID);
+ }
+ else {
+ groupID = frag.createGroupChoiceInstance(0);
+ choiceIndex = 0;
+ }
+ IXSDFragment[] choiceFrags = frag.getGroupMemberFragments(groupID);
+%>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <select id="<%=groupID%>" name="<%=groupID%>" onChange="javascript:choose(this)" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_CHOICES")%>">
+<%
+ for (int j = 0; j < choiceFrags.length; j++) {
+ XSDElementDeclaration xsdElement = (XSDElementDeclaration)choiceFrags[j].getXSDToFragmentConfiguration().getXSDComponent();
+ if (j == choiceIndex) {
+%>
+ <option value="<%=choiceFrags[j].getID()%>" selected><%=xsdElement.getQName()%>
+<%
+ }
+ else {
+%>
+ <option value="<%=choiceFrags[j].getID()%>"><%=xsdElement.getQName()%>
+<%
+ }
+ }
+%>
+ </select>
+ </td>
+ <td class="tablecells">
+<%
+ for (int j = 0; j < choiceFrags.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(choiceFrags[j].getID());
+ String choiceFragTableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(choiceFrags[j].getID()).toString();
+%>
+ <span id="<%=choiceFragTableContainerID%>">
+ <jsp:include page="<%=choiceFrags[j].getWriteFragment()%>" flush="true"/>
+ </span>
+ <script language="javascript">
+ showTable('<%=choiceFragTableContainerID%>', <%=(j == choiceIndex)%>);
+ </script>
+<%
+ }
+%>
+ </td>
+ </tr>
+<%
+ }
+%>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupRFragmentJSP.jsp
new file mode 100644
index 000000000..40d7db597
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupRFragmentJSP.jsp
@@ -0,0 +1,89 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDGroupFragment frag = (IXSDGroupFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerIDBase = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageNameBase = (new StringBuffer("x")).append(tableContainerIDBase).toString();
+String[] groupIDs = frag.getGroupIDs();
+if (groupIDs.length == 1) {
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupIDs[0]);
+%>
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+ for (int i = 0; i < groupMemberFragments.length; i++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[i].getID());
+%>
+ <tr>
+ <td>
+ <jsp:include page="<%=groupMemberFragments[i].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+ }
+%>
+ </table>
+<%
+}
+else {
+ for (int i = 0; i < groupIDs.length; i++) {
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupIDs[i]);
+%>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=i + tableContainerIDBase%>','<%=i + twistImageNameBase%>')"><img name="<%=i + twistImageNameBase%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=wsdlPerspective.getMessage("FORM_LABEL_GROUP_NUMBER", String.valueOf(i + 1))%>
+ </td>
+ </tr>
+ </table>
+ <span id="<%=i + tableContainerIDBase%>">
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+ for (int j = 0; j < groupMemberFragments.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[j].getID());
+%>
+ <tr>
+ <td width=16>
+ <img width=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
+ </td>
+ <td>
+ <jsp:include page="<%=groupMemberFragments[j].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+ }
+%>
+ </table>
+ </span>
+<%
+ }
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp
new file mode 100644
index 000000000..55d81c059
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqFixWFragmentJSP.jsp
@@ -0,0 +1,55 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupSeqFragment frag = (IXSDGroupSeqFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String[] groupIDs = frag.getGroupIDs();
+for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ String groupID;
+ if (i < groupIDs.length)
+ groupID = groupIDs[i];
+ else
+ groupID = frag.createGroupSeqInstance();
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupID);
+%>
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+ for (int j = 0; j < groupMemberFragments.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[j].getID());
+%>
+ <tr>
+ <td>
+ <jsp:include page="<%=groupMemberFragments[j].getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+ }
+%>
+ </table>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..7a3954c5a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDGroupSeqRangeWFragmentJSP.jsp
@@ -0,0 +1,85 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDGroupSeqFragment frag = (IXSDGroupSeqFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_ELEMENTS")%></th>
+ </tr>
+ <%
+ String[] groupIDs = frag.getGroupIDs();
+ for (int i = 0; i < groupIDs.length || i < xsdConfig.getMinOccurs(); i++) {
+ String groupID;
+ if (i < groupIDs.length)
+ groupID = groupIDs[i];
+ else
+ groupID = frag.createGroupSeqInstance();
+ IXSDFragment[] groupMemberFragments = frag.getGroupMemberFragments(groupID);
+ %>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
+ <%
+ for (int j = 0; j < groupMemberFragments.length; j++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(groupMemberFragments[j].getID());
+ %>
+ <jsp:include page="<%=groupMemberFragments[j].getWriteFragment()%>" flush="true"/>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfoDialog.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfoDialog.jsp
new file mode 100644
index 000000000..d6c86ea15
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfoDialog.jsp
@@ -0,0 +1,52 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.net.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String nodeId = request.getParameter(ActionInputs.NODEID);
+ String fragmentId = request.getParameter(WSDLActionInputs.FRAGMENT_ID);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>
+ <%=wsdlPerspective.getMessage("TITLE_XSD_INFORMATION_DIALOG")%>
+ </title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+<%
+ StringBuffer link = new StringBuffer("wsdl/fragment/XSDInfo_toolbar.jsp?");
+ link.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ link.append('&').append(ActionInputs.NODEID).append('=').append(nodeId);
+ link.append('&').append(WSDLActionInputs.FRAGMENT_ID).append('=').append(fragmentId);
+%>
+ <frame name="<%=WSDLFrameNames.XSD_INFO_TOOLBAR%>" title="<%=controller.getMessage("FRAME_TITLE_XSD_INFORMATION_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext(link.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+<%
+ link.setLength(0);
+ link.append("wsdl/fragment/XSDInfo_content.jsp?");
+ link.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+ link.append('&').append(ActionInputs.NODEID).append('=').append(nodeId);
+ link.append('&').append(WSDLActionInputs.FRAGMENT_ID).append('=').append(fragmentId);
+%>
+ <frame name="<%=WSDLFrameNames.XSD_INFO_CONTENT%>" title="<%=controller.getMessage("FRAME_TITLE_XSD_INFORMATION_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext(link.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_content.jsp
new file mode 100644
index 000000000..e08f88906
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_content.jsp
@@ -0,0 +1,47 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="sessionID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+<%
+ sessionID.append(request.getParameter(ActionInputs.SESSIONID));
+ fragID.append(request.getParameter(WSDLActionInputs.FRAGMENT_ID));
+
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionID.toString());
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ nodeID.append(request.getParameter(ActionInputs.NODEID));
+ Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_XSD_INFORMATION_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<jsp:include page="<%=frag.getInformationFragment()%>" flush="true"/>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_toolbar.jsp
new file mode 100644
index 000000000..30e74dbad
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDInfo_toolbar.jsp
@@ -0,0 +1,50 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(request.getParameter(ActionInputs.SESSIONID));
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(request.getParameter(ActionInputs.NODEID)));
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ IXSDFragment frag = operElement.getFragmentByID(request.getParameter(WSDLActionInputs.FRAGMENT_ID));
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_XSD_INFORMATION_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+</head>
+<body onUnload="top.opener.xsdInfoDialogClosed=true" class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar">
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/wsdl.gif"))%>" width=16 height=16></td>
+ <td valign="middle" align="left" width="*" height=25 nowrap class="text"><%=frag.getName()%></td>
+ </tr>
+ </table>
+ </div>
+</div>
+<script language="javascript">
+ top.opener.xsdInfoDialogClosed = false;
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp
new file mode 100644
index 000000000..68391d371
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp
@@ -0,0 +1,78 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+String fragIDString = fragID.toString();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=fragIDString%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td>
+ <%
+ if (!frag.validateParameterValues(fragIDString)) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <%
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ %>
+ <tr>
+ <td width="60%">
+ <%
+ String value = frag.getParameterValue(frag.getID(), i);
+ %>
+ <input type="text" id="<%=frag.getID()%>" name="<%=fragIDString%>" value="<%=((value != null) ? value : "")%>" size="50" class="tabletextenter">
+ </td>
+ <td valign="center" align="left" nowrap>
+ <a href="javascript:openCalendarBrowser(<%=request.getParameter(ActionInputs.CALENDAR_TYPE)%>,'contentborder','<%=fragIDString%>',<%=i%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
+ </td>
+ <td nowrap width="30%">&nbsp;</td>
+ </tr>
+ <%
+ }
+ %>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..a482df110
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeRangeWFragmentJSP.jsp
@@ -0,0 +1,97 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+int calendarType = Integer.parseInt(request.getParameter(ActionInputs.CALENDAR_TYPE));
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:addSimpleAtomicDateTimeRows(<%=calendarType%>,'<%=tableContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', null, <%=xsdConfig.getMaxOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedDateTimeRows(<%=calendarType%>,'<%=tableContainerID%>',<%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td>
+ <%
+ if (!frag.validateParameterValues(frag.getID())) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th width="90%" class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_VALUES")%></th>
+ <th class="headercolor"><%=controller.getMessage("FORM_LABEL_ACTIONS")%></th>
+ </tr>
+</table>
+</span>
+<%
+String[] values = frag.getParameterValues(frag.getID());
+int i = 0;
+if (values != null) {
+ for ( ; i < values.length; i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicDateTimeRows(<%=calendarType%>,"<%=tableContainerID%>","<%=frag.getID()%>","<%=frag.getID()%>","<%=values[i]%>",<%=xsdConfig.getMaxOccurs()%>);
+ </script>
+<%
+ }
+}
+for ( ; i < xsdConfig.getMinOccurs(); i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicDateTimeRows(<%=calendarType%>,"<%=tableContainerID%>","<%=frag.getID()%>","<%=frag.getID()%>",null,<%=xsdConfig.getMaxOccurs()%>);
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumFixWFragmentJSP.jsp
new file mode 100644
index 000000000..01092d739
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumFixWFragmentJSP.jsp
@@ -0,0 +1,93 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ XSDSimpleAtomicEnumFragment frag = (XSDSimpleAtomicEnumFragment)operElement.getFragmentByID(fragID.toString());
+ XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+ XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+ XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td>
+<%
+ if (!frag.validateParameterValues(frag.getID()))
+ {
+%>
+ <%=HTMLUtils.redAsterisk()%>
+<%
+ }
+%>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+ OptionVector optionVector = frag.getOptionVector();
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++)
+ {
+%>
+ <tr>
+ <td>
+<%
+ String selectedValue = frag.getParameterValue(frag.getID(), i);
+%>
+ <select id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="selectlist">
+<%
+ for (int j = 0; j < optionVector.size(); j++)
+ {
+ String displayValue = optionVector.getDisplayValue(j);
+ String value = optionVector.getValue(j);
+ if (value.equals(selectedValue))
+ {
+%>
+ <option value="<%=value%>" selected><%=displayValue%>
+<%
+ }
+ else
+ {
+%>
+ <option value="<%=value%>"><%=displayValue%>
+<%
+ }
+ }
+%>
+ </select>
+ </td>
+ </tr>
+<%
+ }
+ %>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..7283b87ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicEnumRangeWFragmentJSP.jsp
@@ -0,0 +1,149 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.emf.common.util.EList,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+ WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+ XSDSimpleAtomicEnumFragment frag = (XSDSimpleAtomicEnumFragment)operElement.getFragmentByID(fragID.toString());
+ OptionVector optionVector = frag.getOptionVector();
+ XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+ XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+ XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+ String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+ String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+ String optionsContainerID = (new StringBuffer(FragmentConstants.XSD_ATOMIC_ENUM_ID)).append(frag.getID()).toString();
+%>
+<span id="<%=optionsContainerID%>">
+<%
+ for (int j = 0; j < optionVector.size(); j++) {
+%>
+ <input type="hidden" name="<%=optionsContainerID%>" value="<%=optionVector.getDisplayValue(j)%>">
+ <input type="hidden" name="<%=optionsContainerID%>" value="<%=optionVector.getValue(j)%>">
+<%
+ }
+%>
+</span>
+<script language="javascript">
+ function addSimpleAtomicEnumRows(tableContainerID, optionsContainerID, id, name, value, maxOccurs) {
+ if (checkMaxOccursReached(tableContainerID, maxOccurs))
+ return;
+ twistOpen(tableContainerID);
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("tbody").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var select = document.createElement("select");
+ column1.appendChild(select);
+ select.id = id;
+ select.name = name;
+ select.className = "selectlist";
+ var options = getOptions(optionsContainerID);
+ var index = 0;
+ for (var k = 0; k < options.length; k += 2) {
+ select.options[index] = new Option(options[k].value,options[k+1].value);
+ if (value != null && value == options[k+1].value)
+ select.options[index].selected = true;
+ index++;
+ }
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ tableBody.appendChild(newRow);
+ }
+
+ function getOptions(optionsContainerID) {
+ var optionsContainer = document.getElementById(optionsContainerID);
+ var options = optionsContainer.getElementsByTagName("input");
+ return options;
+ }
+</script>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:addSimpleAtomicEnumRows('<%=tableContainerID%>', '<%=optionsContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', null, <%=xsdConfig.getMaxOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td>
+ <%
+ if (!frag.validateParameterValues(frag.getID())) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_VALUES")%></th>
+ </tr>
+</table>
+</span>
+<%
+String[] values = frag.getParameterValues(frag.getID());
+int i = 0;
+if (values != null) {
+ for ( ; i < values.length; i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicEnumRows('<%=tableContainerID%>', '<%=optionsContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', '<%=values[i]%>', '<%=xsdConfig.getMaxOccurs()%>');
+ </script>
+<%
+ }
+}
+for ( ; i < xsdConfig.getMinOccurs(); i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicEnumRows('<%=tableContainerID%>', '<%=optionsContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', null, '<%=xsdConfig.getMaxOccurs()%>');
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp
new file mode 100644
index 000000000..877601de6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp
@@ -0,0 +1,72 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+%>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td>
+ <%
+ if (!frag.validateParameterValues(frag.getID())) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <%
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ %>
+ <tr>
+ <td>
+ <%
+ String value = frag.getParameterValue(frag.getID(), i);
+ %>
+ <input type="text" id="<%=frag.getID()%>" name="<%=frag.getID()%>" value="<%=((value != null) ? value : "")%>" size="50" class="tabletextenter">
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp
new file mode 100644
index 000000000..e2ceffa78
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicInfoFragmentJSP.jsp
@@ -0,0 +1,323 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.emf.common.util.EList,
+ org.eclipse.xsd.*,
+ java.util.*" %>
+
+<jsp:useBean id="sessionID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+<%
+HttpSession currentSession = (HttpSession)application.getAttribute(sessionID.toString());
+Controller controller = (Controller)currentSession.getAttribute("controller");
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDToFragmentConfiguration().getXSDComponent();
+
+int minLength = -1;
+int maxLength = -1;
+Vector patternVector = new Vector();
+String whiteSpace = null;
+boolean minExclusive = true;
+Object min = null;
+boolean maxExclusive = true;
+Object max = null;
+int totalDigits = -1;
+int fractionDigits = -1;
+
+XSDSimpleTypeDefinition currType = simpleType;
+while (!XSDTypeDefinitionUtil.isRootTypeDefinition(currType)) {
+ // minLength
+ if (minLength < 0) {
+ XSDLengthFacet xsdLengthFacet = currType.getLengthFacet();
+ XSDMinLengthFacet xsdMinLengthFacet = currType.getMinLengthFacet();
+ // port to org.eclipse.xsd
+ if (xsdLengthFacet != null)
+ minLength = xsdLengthFacet.getValue();
+ else if (xsdMinLengthFacet != null)
+ minLength = xsdMinLengthFacet.getValue();
+ }
+ // maxLength
+ if (maxLength < 0) {
+ XSDLengthFacet xsdLengthFacet = currType.getLengthFacet();
+ XSDMaxLengthFacet xsdMaxLengthFacet = currType.getMaxLengthFacet();
+ // port to org.eclipse.xsd
+ if (xsdLengthFacet != null)
+ maxLength = xsdLengthFacet.getValue();
+ else if (xsdMaxLengthFacet != null)
+ maxLength = xsdMaxLengthFacet.getValue();
+ }
+ // patternVector
+ EList xsdPatternFacets = currType.getPatternFacets();
+ if (xsdPatternFacets != null) {
+ for (int i = 0; i < xsdPatternFacets.size(); i++) {
+ XSDPatternFacet xsdPatternFacet = (XSDPatternFacet)xsdPatternFacets.get(i);
+ EList patterns = xsdPatternFacet.getValue();
+ for (int j = 0; j < patterns.size(); j++) {
+ patternVector.add(patterns.get(j));
+ }
+ }
+ }
+ // whiteSpace
+ if (whiteSpace == null) {
+ XSDWhiteSpaceFacet xsdWhiteSpaceFacet = currType.getWhiteSpaceFacet();
+ // port to org.eclipse.xsd
+ if (xsdWhiteSpaceFacet != null)
+ whiteSpace = xsdWhiteSpaceFacet.getValue().getName();
+ }
+ // min in/exclusive
+ if (min == null ) {
+ XSDMinExclusiveFacet xsdMinExclusiveFacet = currType.getMinExclusiveFacet();
+ XSDMinInclusiveFacet xsdMinInclusiveFacet = currType.getMinInclusiveFacet();
+ if (xsdMinExclusiveFacet != null) {
+ min = xsdMinExclusiveFacet.getValue();
+ minExclusive = true;
+ }
+ else if (xsdMinInclusiveFacet != null) {
+ min = xsdMinInclusiveFacet.getValue();
+ minExclusive = false;
+ }
+ }
+ // max in/exclusive
+ if (max == null) {
+ XSDMaxExclusiveFacet xsdMaxExclusiveFacet = currType.getMaxExclusiveFacet();
+ XSDMaxInclusiveFacet xsdMaxInclusiveFacet = currType.getMaxInclusiveFacet();
+ if (xsdMaxExclusiveFacet != null) {
+ max = xsdMaxExclusiveFacet.getValue();
+ maxExclusive = true;
+ }
+ else if (xsdMaxInclusiveFacet != null) {
+ max = xsdMaxInclusiveFacet.getValue();
+ maxExclusive = false;
+ }
+ }
+ // totalDigits
+ if (totalDigits < 0) {
+ XSDTotalDigitsFacet xsdTotalDigitsFacet = currType.getTotalDigitsFacet();
+ if (xsdTotalDigitsFacet != null)
+ totalDigits = xsdTotalDigitsFacet.getValue();
+ }
+ // fractionDigits
+ if (fractionDigits < 0) {
+ XSDFractionDigitsFacet xsdFractionDigitsFacet = currType.getFractionDigitsFacet();
+ if (xsdFractionDigitsFacet != null)
+ fractionDigits = xsdFractionDigitsFacet.getValue();
+ }
+ // walk to base type
+ currType = currType.getBaseTypeDefinition();
+}
+%>
+
+<jsp:include page="/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp" flush="true"/>
+
+<table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+</table>
+<table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_BASE_TYPE")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType).getName()%>
+ </td>
+ </tr>
+</table>
+
+<%
+String minLengthString = (minLength < 0) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : String.valueOf(minLength);
+String maxLengthString = (maxLength < 0) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : String.valueOf(maxLength);
+String[] lengthValues = {minLengthString, maxLengthString};
+if (minLength >= 0 || maxLength >= 0) {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_LENGTH")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_LENGTH_VALUE", lengthValues)%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
+
+<%
+if (patternVector.size() > 0) {
+ String patternContainerID = "::pattern";
+ String xpatternContainerID = "x::pattern";
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=patternContainerID%>','<%=xpatternContainerID%>')"><img name="<%=xpatternContainerID%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <strong><%=wsdlPerspective.getMessage("FORM_LABEL_PATTERN")%></strong>
+ </td>
+ </tr>
+ </table>
+ <span id="<%=patternContainerID%>">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_PATTERN")%>
+ </th>
+ </tr>
+ <%
+ for (int k = 0; k < patternVector.size(); k++) {
+ %>
+ <tr>
+ <td class="tablecells">
+ <%=(String)patternVector.get(k)%>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </span>
+<%
+}
+%>
+
+<%
+if (whiteSpace != null) {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_WHITESPACE")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=whiteSpace%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
+
+<%
+String lowerBound;
+if (minExclusive)
+ lowerBound = wsdlPerspective.getMessage("FORM_LABEL_MIN_EXCLUSIVE", (min == null) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : min.toString());
+else
+ lowerBound = wsdlPerspective.getMessage("FORM_LABEL_MIN_INCLUSIVE", (min == null) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : min.toString());
+String upperBound;
+if (maxExclusive)
+ upperBound = wsdlPerspective.getMessage("FORM_LABEL_MAX_EXCLUSIVE", (max == null) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : max.toString());
+else
+ upperBound = wsdlPerspective.getMessage("FORM_LABEL_MAX_INCLUSIVE", (max == null) ? wsdlPerspective.getMessage("FORM_LABEL_UNBOUNDED") : max.toString());
+if (min != null || max != null) {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_RANGE_OF_VALUES")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=lowerBound + upperBound%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
+
+<%
+if (totalDigits >= 0) {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_TOTAL_DIGITS")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=totalDigits%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
+
+<%
+if (fractionDigits >= 0) {
+%>
+ <table>
+ <tr>
+ <td height=20>&nbsp;</td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsdlPerspective.getMessage("FORM_LABEL_FRACTION_DIGITS")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=fractionDigits%>
+ </td>
+ </tr>
+ </table>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp
new file mode 100644
index 000000000..4fdd4b64d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRFragmentJSP.jsp
@@ -0,0 +1,60 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+String[] labelArgs = {frag.getName(), (xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())};
+String[] params = frag.getParameterValues(frag.getID());
+%>
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+ <tr>
+ <th id="<%=frag.getID()%>" class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=wsdlPerspective.getMessage("FORM_LABEL_ATOMIC_NAME_TYPE", labelArgs)%>
+ </th>
+ <td headers="<%=frag.getID()%>" class="labels" height=25 width="100%" valign="bottom" align="left" nowrap>
+ <%=((params != null && params.length > 0) ? HTMLUtils.charactersToHTMLEntities(params[0]) : wsdlPerspective.getMessage("FORM_LABEL_NULL"))%>
+ </td>
+ </tr>
+ <%
+ if (params != null) {
+ for (int i = 1; i < params.length; i++) {
+ %>
+ <tr>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap></td>
+ <td headers="<%=frag.getID()%>" class="labels" height=25 width="100%" valign="bottom" align="left" nowrap>
+ <%=HTMLUtils.charactersToHTMLEntities(params[i])%>
+ </td>
+ </tr>
+ <%
+ }
+ }
+ %>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..e239e78bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicRangeWFragmentJSP.jsp
@@ -0,0 +1,124 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDFragment frag = operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition)frag.getXSDTypeDefinition();
+XSDTypeDefinition xsdBuiltInType = XSDTypeDefinitionUtil.resolveToXSDBuiltInTypeDefinition(simpleType);
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+%>
+<script language="javascript">
+ function addSimpleAtomicRows(tableContainerID, id, name, value, maxOccurs) {
+ if (checkMaxOccursReached(tableContainerID, maxOccurs))
+ return;
+ twistOpen(tableContainerID);
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("tbody").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var input = document.createElement("input");
+ column1.appendChild(input);
+ input.type = "text";
+ input.id = id;
+ input.name = name;
+ if (value != null && value.length > 0)
+ input.value = value;
+ input.className = "tabletextenter";
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ tableBody.appendChild(newRow);
+ }
+</script>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <label for="<%=frag.getID()%>"><a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a></label>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <%=(xsdBuiltInType != null ? xsdBuiltInType.getName() : simpleType.getName())%>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:addSimpleAtomicRows('<%=tableContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', null, <%=xsdConfig.getMaxOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td>
+ <%
+ if (!frag.validateParameterValues(frag.getID())) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ %>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_VALUES")%></th>
+ </tr>
+</table>
+</span>
+<%
+String[] values = frag.getParameterValues(frag.getID());
+int i = 0;
+if (values != null) {
+ for ( ; i < values.length; i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicRows('<%=tableContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', '<%=values[i]%>', '<%=xsdConfig.getMaxOccurs()%>');
+ </script>
+<%
+ }
+}
+for ( ; i < xsdConfig.getMinOccurs(); i++) {
+%>
+ <script language="javascript">
+ addSimpleAtomicRows('<%=tableContainerID%>', '<%=frag.getID()%>', '<%=frag.getID()%>', null, '<%=xsdConfig.getMaxOccurs()%>');
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListFixWFragmentJSP.jsp
new file mode 100644
index 000000000..09c2300ac
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListFixWFragmentJSP.jsp
@@ -0,0 +1,57 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDSimpleListFragment frag = (IXSDSimpleListFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+IXSDFragment[] childFrags = frag.getAllFragments();
+%>
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ IXSDFragment childFrag;
+ String childFragID;
+ if (i < childFrags.length) {
+ childFrag = childFrags[i];
+ childFragID = childFrag.getID();
+ }
+ else {
+ childFragID = frag.createListInstance();
+ childFrag = frag.getFragment(childFragID);
+ }
+ fragID.delete(0, fragID.length());
+ fragID.append(childFragID);
+%>
+ <tr>
+ <td>
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=childFragID%>">
+ <jsp:include page="<%=childFrag.getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+}
+%>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp
new file mode 100644
index 000000000..032861858
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRFragmentJSP.jsp
@@ -0,0 +1,45 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDSimpleListFragment frag = (IXSDSimpleListFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+IXSDFragment[] childFrags = frag.getAllFragments();
+%>
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+for (int i = 0; i < childFrags.length; i++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(childFrags[i].getID());
+%>
+ <tr>
+ <td>
+ <jsp:include page="<%=childFrags[i].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+}
+%>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..6f7c2d117
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleListRangeWFragmentJSP.jsp
@@ -0,0 +1,87 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDSimpleListFragment frag = (IXSDSimpleListFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsdlPerspective.getMessage("FORM_LABEL_LIST_ITEMS")%></th>
+ </tr>
+ <%
+ IXSDFragment[] childFrags = frag.getAllFragments();
+ for (int i = 0; i < childFrags.length || i < xsdConfig.getMinOccurs(); i++) {
+ IXSDFragment childFrag;
+ String childFragID;
+ if (i < childFrags.length) {
+ childFrag = childFrags[i];
+ childFragID = childFrag.getID();
+ }
+ else {
+ childFragID = frag.createListInstance();
+ childFrag = frag.getFragment(childFragID);
+ }
+ fragID.delete(0, fragID.length());
+ fragID.append(childFragID);
+ %>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <input type="hidden" name="<%=frag.getID()%>" value="<%=childFragID%>">
+ <jsp:include page="<%=childFrag.getWriteFragment()%>" flush="true"/>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionFixWFragmentJSP.jsp
new file mode 100644
index 000000000..9407bde38
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionFixWFragmentJSP.jsp
@@ -0,0 +1,128 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDSimpleUnionFragment frag = (IXSDSimpleUnionFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+%>
+<script language="javascript">
+ function changeUnionMemberType(select) {
+ for (var i = 0; i < select.options.length; i++) {
+ var tableContainerID = '<%=FragmentConstants.TABLE_ID%>';
+ tableContainerID += select.options(i).value;
+ showTable(tableContainerID, select.options(i).selected);
+ }
+ }
+
+ function showTable(tableContainerID, show) {
+ var tableContainer = document.getElementById(tableContainerID);
+ if (show)
+ tableContainer.style.display = "";
+ else
+ tableContainer.style.display = "none";
+ }
+</script>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="headercolor" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_UNION_TYPE")%></th>
+ <th class="headercolor" width="100%" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_UNION_MEMBERS")%></th>
+ </tr>
+ <%
+ XSDSimpleTypeDefinition[] memberTypes = frag.getMemberTypeDefinitions();
+ IXSDFragment[] memberFrags = frag.getAllFragments();
+ for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
+ int typeSelectionIndex = 0;
+ String[] newMemberFragIDs = new String[memberTypes.length];
+ IXSDFragment[] newMemberFrags = new IXSDFragment[memberTypes.length];
+ for (int j = 0; j < memberTypes.length; j++) {
+ if (i < memberFrags.length && memberFrags[i].getXSDTypeDefinition().getQName().equals(memberTypes[j].getQName())) {
+ newMemberFragIDs[j] = memberFrags[i].getID();
+ newMemberFrags[j] = memberFrags[i];
+ typeSelectionIndex = j;
+ }
+ else {
+ newMemberFragIDs[j] = frag.createUnionInstance(j);
+ newMemberFrags[j] = frag.getFragment(newMemberFragIDs[j]);
+ }
+ }
+ %>
+ <tr>
+ <td class="tablecells">
+ <select id="<%=frag.getID()%>" name="<%=frag.getID()%>" onChange="javascript:changeUnionMemberType(this)" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_UNION_TYPE")%>">
+ <%
+ for (int k = 0; k < memberTypes.length; k++) {
+ if (k == typeSelectionIndex) {
+ %>
+ <option value="<%=newMemberFragIDs[k]%>" selected><%=memberTypes[k].getQName()%>
+ <%
+ }
+ else {
+ %>
+ <option value="<%=newMemberFragIDs[k]%>"><%=memberTypes[k].getQName()%>
+ <%
+ }
+ }
+ %>
+ </select>
+ </td>
+ <td class="tablecells">
+ <%
+ for (int l = 0; l < memberTypes.length; l++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(newMemberFragIDs[l]);
+ String memberTableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(newMemberFrags[l].getID()).toString();
+ %>
+ <span id="<%=memberTableContainerID%>">
+ <jsp:include page="<%=newMemberFrags[l].getWriteFragment()%>" flush="true"/>
+ </span>
+ <script language="javascript">
+ showTable('<%=memberTableContainerID%>', <%=(l == typeSelectionIndex)%>);
+ </script>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp
new file mode 100644
index 000000000..ae61fe552
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRFragmentJSP.jsp
@@ -0,0 +1,44 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node operNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)operNode.getTreeElement();
+IXSDSimpleUnionFragment frag = (IXSDSimpleUnionFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+IXSDFragment[] childFrags = frag.getAllFragments();
+%>
+<table cellpadding=0 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
+<%
+for (int i = 0; i < childFrags.length; i++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(childFrags[i].getID());
+%>
+ <tr>
+ <td>
+ <jsp:include page="<%=childFrags[i].getReadFragment()%>" flush="true"/>
+ </td>
+ </tr>
+<%
+}
+%>
+</table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRangeWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRangeWFragmentJSP.jsp
new file mode 100644
index 000000000..0013387d5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleUnionRangeWFragmentJSP.jsp
@@ -0,0 +1,141 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.xsd.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
+
+<%
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
+WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
+IXSDSimpleUnionFragment frag = (IXSDSimpleUnionFragment)operElement.getFragmentByID(fragID.toString());
+XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
+String tableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(frag.getID()).toString();
+String twistImageName = (new StringBuffer("x")).append(tableContainerID).toString();
+String nameAnchorID = (new StringBuffer(FragmentConstants.NAME_ANCHOR_ID)).append(frag.getID()).toString();
+%>
+<script language="javascript">
+ function changeUnionMemberType(select) {
+ for (var i = 0; i < select.options.length; i++) {
+ var tableContainerID = '<%=FragmentConstants.TABLE_ID%>';
+ tableContainerID += select.options(i).value;
+ showTable(tableContainerID, select.options(i).selected);
+ }
+ }
+
+ function showTable(tableContainerID, show) {
+ var tableContainer = document.getElementById(tableContainerID);
+ if (show)
+ tableContainer.style.display = "";
+ else
+ tableContainer.style.display = "none";
+ }
+</script>
+<a name="<%=nameAnchorID%>"/>
+<table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=tableContainerID%>','<%=twistImageName%>')"><img name="<%=twistImageName%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistopened.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_OPENED")%>" class="twist"></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:openXSDInfoDialog('<%=response.encodeURL(controller.getPathWithContext(OpenXSDInfoDialogAction.getActionLink(session.getId(),selectedNode.getNodeId(),fragID.toString())))%>')"><%=frag.getName()%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:createInstance('<%=tableContainerID%>', <%=xsdConfig.getMaxOccurs()%>, '<%=fragID%>', '<%=nameAnchorID%>')"><%=wsdlPerspective.getMessage("FORM_LINK_ADD")%></a>
+ </td>
+ <td class="labels" height=25 valign="bottom" align="left" nowrap>
+ <a href="javascript:checkMinOccursAndRemoveSelectedRows('<%=tableContainerID%>', <%=xsdConfig.getMinOccurs()%>)"><%=wsdlPerspective.getMessage("FORM_LINK_REMOVE")%></a>
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+</table>
+<span id="<%=tableContainerID%>">
+<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="handleCheckAllClick('<%=tableContainerID%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_UNION_TYPE")%></th>
+ <th class="headercolor" width="100%" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_UNION_MEMBERS")%></th>
+ </tr>
+ <%
+ XSDSimpleTypeDefinition[] memberTypes = frag.getMemberTypeDefinitions();
+ IXSDFragment[] memberFrags = frag.getAllFragments();
+ for (int i = 0; i < memberFrags.length || i < xsdConfig.getMinOccurs(); i++) {
+ int typeSelectionIndex = 0;
+ String[] newMemberFragIDs = new String[memberTypes.length];
+ IXSDFragment[] newMemberFrags = new IXSDFragment[memberTypes.length];
+ for (int j = 0; j < memberTypes.length; j++) {
+ if (i < memberFrags.length && memberFrags[i].getXSDTypeDefinition().getQName().equals(memberTypes[j].getQName())) {
+ newMemberFragIDs[j] = memberFrags[i].getID();
+ newMemberFrags[j] = memberFrags[i];
+ typeSelectionIndex = j;
+ }
+ else {
+ newMemberFragIDs[j] = frag.createUnionInstance(j);
+ newMemberFrags[j] = frag.getFragment(newMemberFragIDs[j]);
+ }
+ }
+ %>
+ <tr>
+ <td class="checkboxcells" width=10>
+ <input type="checkbox" onClick="handleRowCheckboxClick()" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>">
+ </td>
+ <td class="tablecells">
+ <select id="<%=frag.getID()%>" name="<%=frag.getID()%>" onChange="javascript:changeUnionMemberType(this)" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_UNION_TYPE")%>">
+ <%
+ for (int k = 0; k < memberTypes.length; k++) {
+ if (k == typeSelectionIndex) {
+ %>
+ <option value="<%=newMemberFragIDs[k]%>" selected><%=memberTypes[k].getQName()%>
+ <%
+ }
+ else {
+ %>
+ <option value="<%=newMemberFragIDs[k]%>"><%=memberTypes[k].getQName()%>
+ <%
+ }
+ }
+ %>
+ </select>
+ </td>
+ <td class="tablecells">
+ <%
+ for (int l = 0; l < memberTypes.length; l++) {
+ fragID.delete(0, fragID.length());
+ fragID.append(newMemberFragIDs[l]);
+ String memberTableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(newMemberFrags[l].getID()).toString();
+ %>
+ <span id="<%=memberTableContainerID%>">
+ <jsp:include page="<%=newMemberFrags[l].getWriteFragment()%>" flush="true"/>
+ </span>
+ <script language="javascript">
+ showTable('<%=memberTableContainerID%>', <%=(l == typeSelectionIndex)%>);
+ </script>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</span>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_enabled.gif
new file mode 100644
index 000000000..0f055924f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_highlighted.gif
new file mode 100644
index 000000000..bcfc403a0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/invoke_wsdl_operation_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_enabled.gif
new file mode 100644
index 000000000..9ffa818f4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_highlighted.gif
new file mode 100644
index 000000000..5455bae67
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/open_wsdl_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_binding_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_binding_node.gif
new file mode 100644
index 000000000..ae386c636
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_binding_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_operation_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_operation_node.gif
new file mode 100644
index 000000000..c211ba23c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_operation_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_service_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_service_node.gif
new file mode 100644
index 000000000..15d08be6c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/images/wsdl_service_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/fragmenttables.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/fragmenttables.jsp
new file mode 100644
index 000000000..c4fb85fa9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/fragmenttables.jsp
@@ -0,0 +1,183 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2002, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+<jsp:include page="/scripts/calendarbrowser.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+
+<script language="javascript">
+ var xsdInfoDialog;
+ var xsdInfoDialogClosed = true;
+ var rowCheckboxName = "rowCheckboxName";
+ var unbounded = <%=FragmentConstants.UNBOUNDED%>;
+
+ function checkMaxOccursReached(tableContainerID, maxOccurs) {
+ var table = getTable(tableContainerID);
+ if (maxOccurs != unbounded && (table.rows.length - numberOfHeaderRows) >= maxOccurs) {
+ alert("<%=HTMLUtils.JSMangle(wsdlPerspective.getMessage("MSG_ERROR_MAX_OCCURS_VIOLATION"))%>");
+ return true;
+ }
+ else
+ return false;
+ }
+
+ function checkMinOccursAndRemoveSelectedRows(tableContainerID, minOccurs) {
+ var table = getTable(tableContainerID);
+ var rowsLength = table.rows.length - numberOfHeaderRows;
+ var checkedRows = 0;
+ for (var i = numberOfHeaderRows; i < table.rows.length; i++) {
+ var tableRow = table.rows[i];
+ var rowCheckbox = tableRow.getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ checkedRows++;
+ }
+ if (checkedRows == 0)
+ alert("<%=HTMLUtils.JSMangle(wsdlPerspective.getMessage("MSG_ERROR_NOTHING_SELECTED"))%>");
+ else if ((rowsLength - checkedRows) < minOccurs)
+ alert("<%=HTMLUtils.JSMangle(wsdlPerspective.getMessage("MSG_ERROR_MIN_OCCURS_VIOLATION"))%>");
+ else
+ removeSelectedRows(tableContainerID);
+ }
+
+ function checkMinOccursAndRemoveSelectedDateTimeRows(calendarType,tableContainerID,minOccurs)
+ {
+ var table = getTable(tableContainerID);
+ var newCalendarTargetRow = calendarTargetRow;
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var rowCheckbox = columns.item(0).getElementsByTagName("input").item(0);
+ if (rowCheckbox.checked)
+ {
+ if (i-numberOfHeaderRows == calendarTargetRow)
+ newCalendarTargetRow = -1;
+ else
+ newCalendarTargetRow--;
+ }
+ }
+ if (newCalendarTargetRow == -1)
+ closeCalendarBrowser();
+ calendarTargetRow = newCalendarTargetRow;
+
+ checkMinOccursAndRemoveSelectedRows(tableContainerID,minOccurs);
+<%
+ // Fix the browse... links.
+%>
+ var table = getTable(tableContainerID);
+ for (var i=numberOfHeaderRows;i<table.rows.length;i++)
+ {
+ var columns = table.rows[i].getElementsByTagName("td");
+ var dateTimeTextField = columns.item(1).getElementsByTagName("input").item(0);
+ setDateTimeBrowseLinkHref(columns.item(2).getElementsByTagName("a").item(0),calendarType,dateTimeTextField.name,i-numberOfHeaderRows);
+ }
+ }
+
+ function createInstance(tableContainerID, maxOccurs, fragmentID, nameAnchorID) {
+ if (checkMaxOccursReached(tableContainerID, maxOccurs))
+ return;
+ twistOpen(tableContainerID);
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("tbody").item(0);
+ var newRow = document.createElement("tr");
+ var newColumn = document.createElement("td");
+ newColumn.appendChild(createHiddenElement("<%=FragmentConstants.FRAGMENT_ID%>", fragmentID));
+ newColumn.appendChild(createHiddenElement("<%=FragmentConstants.NAME_ANCHOR_ID%>", nameAnchorID));
+ newRow.appendChild(newColumn);
+ tableBody.appendChild(newRow);
+ var form = document.getElementsByTagName("form");
+ form[0].action = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/CreateInstanceActionJSP.jsp"))%>";
+ form[0].submit();
+ }
+
+ function openXSDInfoDialog(link) {
+ xsdInfoDialog = window.open(link, "XSDInformationDialog", "height=500,width=500,scrollbars=no,resizable=yes");
+ if (xsdInfoDialog.focus)
+ xsdInfoDialog.focus();
+ }
+
+ function closeXSDInfoDialog()
+ {
+ if (!xsdInfoDialogClosed)
+ xsdInfoDialog.close();
+ }
+
+ function synchronizeFragmentViews(viewID) {
+ var form = document.getElementsByTagName("form");
+ if (viewID == "<%=FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE%>")
+ form[0].appendChild(createHiddenElement("<%=FragmentConstants.FRAGMENT_VIEW_ID%>","<%=FragmentConstants.FRAGMENT_VIEW_SWITCH_FORM_TO_SOURCE%>"));
+ else
+ form[0].appendChild(createHiddenElement("<%=FragmentConstants.FRAGMENT_VIEW_ID%>","<%=FragmentConstants.FRAGMENT_VIEW_SWITCH_SOURCE_TO_FORM%>"));
+ form[0].action = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/SynchronizeFragmentViewsActionJSP.jsp"))%>";
+ form[0].submit();
+ }
+
+ function addSimpleAtomicDateTimeRows(calendarType,tableContainerID,id,name,value,maxOccurs) {
+ if (checkMaxOccursReached(tableContainerID, maxOccurs))
+ return;
+ twistOpen(tableContainerID);
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("tbody").item(0);
+ var newRow = document.createElement("tr");
+ var column0 = document.createElement("td");
+ var column1 = document.createElement("td");
+ var column2 = document.createElement("td");
+
+ var rowCheckbox = createRowCheckbox();
+ column0.appendChild(rowCheckbox);
+
+ var input = document.createElement("input");
+ input.type = "text";
+ input.id = id;
+ input.name = name;
+ if (value != null && value.length > 0)
+ input.value = value;
+ input.className = "tabletextenter";
+ column1.appendChild(input);
+
+ column2.appendChild(createDateTimeBrowseLink(calendarType,name,table.rows.length-1));
+ column2.width = "90%";
+
+ column0.className = "checkboxcells";
+ column1.className = "tablecells";
+ column2.className = "tablecells";
+ newRow.appendChild(column0);
+ newRow.appendChild(column1);
+ newRow.appendChild(column2);
+ tableBody.appendChild(newRow);
+ }
+
+ function createDateTimeBrowseLink(calendarType,name,position)
+ {
+ var link = document.createElement("a");
+ setDateTimeBrowseLinkHref(link,calendarType,name,position);
+ link.appendChild(document.createTextNode("<%=HTMLUtils.JSMangle(controller.getMessage("FORM_LINK_BROWSE"))%>"));
+ return link;
+ }
+
+ function setDateTimeBrowseLinkHref(link,calendarType,name,position)
+ {
+ link.href = "javascript:openCalendarBrowser("+calendarType+",'contentborder','"+name+"',"+position+")";
+ return link;
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlframesets.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlframesets.jsp
new file mode 100644
index 000000000..d0c384952
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlframesets.jsp
@@ -0,0 +1,32 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ function getActionsContainerFrameset()
+ {
+ return perspectiveContent.frames["<%=WSDLFrameNames.WSDL_ACTIONS_CONTAINER%>"].document.getElementsByTagName("frameset").item(0);
+ }
+
+ function processFramesetSizes(framesetSizesForm)
+ {
+ toggleDoubleClickColumnTitle();
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ framesetSizesForm.<%=WSDLActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>.value = perspectiveContentFrameset.cols;
+ framesetSizesForm.<%=WSDLActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>.value = actionsContainerFrameset.rows;
+ framesetSizesForm.submit();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlpanes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlpanes.jsp
new file mode 100644
index 000000000..5b509c095
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/scripts/wsdlpanes.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ var wsdlNavigatorContainer = perspectiveContent.frames["<%=WSDLFrameNames.WSDL_NAVIGATOR_CONTAINER%>"];
+ var wsdlNavigatorToolbar = wsdlNavigatorContainer.frames["<%=WSDLFrameNames.WSDL_NAVIGATOR_TOOLBAR%>"];
+ var wsdlNavigatorContent = wsdlNavigatorContainer.frames["<%=WSDLFrameNames.WSDL_NAVIGATOR_CONTENT%>"];
+ var wsdlActionsContainer = perspectiveContent.frames["<%=WSDLFrameNames.WSDL_ACTIONS_CONTAINER%>"];
+ var wsdlPropertiesContainer = wsdlActionsContainer.frames["<%=WSDLFrameNames.WSDL_PROPERTIES_CONTAINER%>"];
+ var wsdlPropertiesToolbar = wsdlPropertiesContainer.frames["<%=WSDLFrameNames.WSDL_PROPERTIES_TOOLBAR%>"];
+ var wsdlPropertiesContent = wsdlPropertiesContainer.frames["<%=WSDLFrameNames.WSDL_PROPERTIES_CONTENT%>"];
+ var wsdlStatusContainer = wsdlActionsContainer.frames["<%=WSDLFrameNames.WSDL_STATUS_CONTAINER%>"];
+ var wsdlStatusToolbar = wsdlStatusContainer.frames["<%=WSDLFrameNames.WSDL_STATUS_TOOLBAR%>"];
+ var wsdlStatusContent = wsdlStatusContainer.frames["<%=WSDLFrameNames.WSDL_STATUS_CONTENT%>"];
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/soap_envelope_xml.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/soap_envelope_xml.jsp
new file mode 100644
index 000000000..1b6ee0dec
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/soap_envelope_xml.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/xml; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+int soapEnvelopeType = Integer.parseInt(request.getParameter(WSDLActionInputs.SOAP_ENVELOPE_TYPE));
+WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+SOAPMessageQueue soapMessageQueue;
+switch (soapEnvelopeType)
+{
+ case WSDLActionInputs.SOAP_ENVELOPE_TYPE_REQUEST:
+ soapMessageQueue = wsdlPerspective.getSOAPRequestQueue();
+ break;
+ case WSDLActionInputs.SOAP_ENVELOPE_TYPE_RESPONSE:
+ default:
+ soapMessageQueue = wsdlPerspective.getSOAPResponseQueue();
+ break;
+}
+String messages = soapMessageQueue.getMessagesFromList();
+%>
+<%=messages%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_actions_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_actions_container.jsp
new file mode 100644
index 000000000..b0c3d0688
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_actions_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%></title>
+</head>
+<frameset rows="<%=wsdlPerspective.getActionsContainerFramesetRows()%>" bgcolor="#ECE9D8">
+ <frame name="<%=WSDLFrameNames.WSDL_PROPERTIES_CONTAINER%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%>" src="<%=response.encodeURL("wsdl_properties_container.jsp")%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+ <frame name="<%=WSDLFrameNames.WSDL_STATUS_CONTAINER%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%>" src="<%=response.encodeURL("wsdl_status_container.jsp")%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_container.jsp
new file mode 100644
index 000000000..0820de627
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_container.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WSDLFrameNames.WSDL_NAVIGATOR_TOOLBAR%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%>" src="<%=response.encodeURL("wsdl_navigator_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WSDLFrameNames.WSDL_NAVIGATOR_CONTENT%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%>" src="<%=response.encodeURL("wsdl_navigator_content.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_content.jsp
new file mode 100644
index 000000000..41cd80dde
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_content.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/treeview.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/treeview.js"))%>">
+ </script>
+</head>
+<%
+ String selectedAnchorName = "";
+ NodeManager nodeManager = controller.getWSDLPerspective().getNodeManager();
+ int focusedNodeId = nodeManager.getFocusedNodeId();
+ String focusedAnchorName = String.valueOf(focusedNodeId);
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ selectedAnchorName = selectedNode.getAnchorName();
+ if (focusedNodeId == selectedNode.getNodeId())
+ focusedAnchorName = selectedAnchorName;
+ }
+%>
+<body onLoad="self.location.hash='#<%=focusedAnchorName%>';setSelectedAnchorName('<%=selectedAnchorName%>')" class="contentbodymargin">
+ <div id="treecontentborder">
+ <%=nodeManager.renderTreeView(response)%>
+ </div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_toolbar.jsp
new file mode 100644
index 000000000..54b705657
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_navigator_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsdl/scripts/wsdlframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsdl/actions/ResizeWSDLFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WSDLFrameNames.WSDL_NAVIGATOR_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsdl/forms/ProcessWSDLFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/navigator.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsdlPerspective.getPerspectiveContentFramesetCols().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ else
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_NAVIGATOR")%></td>
+<%
+ String altRefresh = controller.getMessage("ALT_REFRESH");
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/RefreshWSDLActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseup(this)" alt="<%=altRefresh%>" title="<%=altRefresh%>"></a></td>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/ClearWSDLActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_perspective_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_perspective_content.jsp
new file mode 100644
index 000000000..ad0a98a49
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_perspective_content.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<frameset cols="<%=wsdlPerspective.getPerspectiveContentFramesetCols()%>" bgcolor="#ECE9D8">
+ <frame name="<%=WSDLFrameNames.WSDL_NAVIGATOR_CONTAINER%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTAINER")%>" src="<%=response.encodeURL("wsdl_navigator_container.jsp")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+ <frame name="<%=WSDLFrameNames.WSDL_ACTIONS_CONTAINER%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%>" src="<%=response.encodeURL("wsdl_actions_container.jsp")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_container.jsp
new file mode 100644
index 000000000..558e23300
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WSDLFrameNames.WSDL_PROPERTIES_TOOLBAR%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%>" src="<%=response.encodeURL("wsdl_properties_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WSDLFrameNames.WSDL_PROPERTIES_CONTENT%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%>" src="<%=response.encodeURL("wsdl_properties_content.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_content.jsp
new file mode 100644
index 000000000..8fb25754c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_content.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null)
+ {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ if (selectedTool != null && selectedTool.getToolType() != ToolTypes.ACTION) {
+ %>
+ <script language="javascript">
+ location="<%=response.encodeURL(controller.getPathWithContext(selectedTool.getFormLink()))%>";
+ </script>
+ <%
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_ACTION_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_NODE_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_toolbar.jsp
new file mode 100644
index 000000000..f321d525c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_properties_toolbar.jsp
@@ -0,0 +1,81 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsdl/scripts/wsdlframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsdl/actions/ResizeWSDLFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WSDLFrameNames.WSDL_PROPERTIES_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsdl/forms/ProcessWSDLFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/actions.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsdlPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (wsdlPerspective.getActionsContainerFramesetRows().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_ACTIONS")%></td>
+<%
+ NodeManager nodeManager = wsdlPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ for(int i=0; i<toolManager.getNumberOfTools(); i++) {
+ Tool tool = (Tool)toolManager.getTool(i);
+ %>
+ <td valign="middle" align="center" width=25 height=25><%=tool.renderTool(response,controller)%></td>
+ <%
+ }
+ }
+%>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_result_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_result_content.jsp
new file mode 100644
index 000000000..15630e82a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_result_content.jsp
@@ -0,0 +1,72 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ int viewID = wsdlPerspective.getStatusContentType();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ function switchReadOnlyFragmentsView() {
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext("wsdl/actions/SwitchReadOnlyFragmentViewsActionJSP.jsp"))%>";
+ }
+</script>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td align="right" class="labels">
+<%
+ if (viewID == wsdlPerspective.STATUS_CONTENT_RESULT_SOURCE)
+ {
+%>
+ <a href="javascript:switchReadOnlyFragmentsView()" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_FORM_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_FORM")%></a>
+<%
+ }
+ else
+ {
+%>
+ <a href="javascript:switchReadOnlyFragmentsView()" title="<%=wsdlPerspective.getMessage("ALT_SWITCH_TO_SOURCE_VIEW")%>"><%=wsdlPerspective.getMessage("FORM_LINK_SOURCE")%></a>
+<%
+ }
+%>
+ </td>
+ </tr>
+ </table>
+<%
+ if (viewID == wsdlPerspective.STATUS_CONTENT_RESULT_SOURCE)
+ {
+%>
+ <jsp:include page="/wsdl/forms/ReadOnlyFragmentsSoapView.jsp" flush="true"/>
+<%
+ }
+ else
+ {
+%>
+ <jsp:include page="/wsdl/forms/ReadOnlyFragmentsFormView.jsp" flush="true"/>
+<%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_container.jsp
new file mode 100644
index 000000000..b03acef31
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_container.jsp
@@ -0,0 +1,39 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ String statusContentSrc = "wsdl_status_content.jsp";
+ switch (wsdlPerspective.getStatusContentType())
+ {
+ case WSDLPerspective.STATUS_CONTENT_RESULT_FORM:
+ statusContentSrc = "wsdl_result_content.jsp";
+ break;
+ case WSDLPerspective.STATUS_CONTENT_RESULT_SOURCE:
+ statusContentSrc = "wsdl_result_content.jsp";
+ break;
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WSDLFrameNames.WSDL_STATUS_TOOLBAR%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%>" src="<%=response.encodeURL("wsdl_status_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WSDLFrameNames.WSDL_STATUS_CONTENT%>" title="<%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%>" src="<%=response.encodeURL(statusContentSrc)%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_content.jsp
new file mode 100644
index 000000000..043e76512
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_content.jsp
@@ -0,0 +1,39 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+ wsdlPerspective.setStatusContentType(WSDLPerspective.STATUS_CONTENT_DEFAULT);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <table>
+ <tr>
+ <td>
+ <pre>
+<%=wsdlPerspective.getMessageQueue().getMessagesFromList()%>
+ </pre>
+ </td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_toolbar.jsp
new file mode 100644
index 000000000..58dc71fa7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/wsdl_status_toolbar.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsdlPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsdl/scripts/wsdlframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsdl/actions/ResizeWSDLFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WSDLFrameNames.WSDL_STATUS_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsdl/forms/ProcessWSDLFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/status.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsdlPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (wsdlPerspective.getActionsContainerFramesetRows().endsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_STATUS")%></td>
+<%
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsdl/wsdl_status_content.jsp"))%>" target="<%=WSDLFrameNames.WSDL_STATUS_CONTENT%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_browser.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_browser.jsp
new file mode 100644
index 000000000..076bf96e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_browser.jsp
@@ -0,0 +1,57 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.net.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ String wsdlTypeString = request.getParameter(ActionInputs.WSDL_TYPE);
+ int wsdlType = ActionInputs.WSDL_TYPE_SERVICE_INTERFACE;
+ try
+ {
+ wsdlType = Integer.parseInt(wsdlTypeString);
+ }
+ catch (NumberFormatException e)
+ {
+ }
+ controller.setWSDLType(wsdlType);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>
+<%
+ String wsdlSource;
+ if (wsdlType == ActionInputs.WSDL_TYPE_SERVICE_INTERFACE)
+ wsdlSource = controller.getMessage("WSDL_TYPE_SERVICE_INTERFACES");
+ else
+ wsdlSource = controller.getMessage("WSDL_TYPE_SERVICES");
+
+ StringBuffer sessionIdParam = new StringBuffer(ActionInputs.SESSIONID);
+ sessionIdParam.append('=').append(sessionId);
+
+ StringBuffer toolbarLink = new StringBuffer("wsdl_toolbar.jsp?");
+ toolbarLink.append(ActionInputs.SESSIONID).append('=').append(sessionId);
+%>
+ <%=controller.getMessage("TITLE_WSDL_BROWSER",wsdlSource)%>
+ </title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=FrameNames.WSDL_TOOLBAR%>" title="<%=controller.getMessage("FRAME_TITLE_WSDL_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext(toolbarLink.toString()))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=FrameNames.WSDL_CONTENT%>" title="<%=controller.getMessage("FRAME_TITLE_WSDL_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext(ProxyLoadPageAction.getActionLink(sessionId,"wsdl_content.jsp")))%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp
new file mode 100644
index 000000000..0b06d08ca
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp
@@ -0,0 +1,301 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.core.resources.*,
+ org.eclipse.core.runtime.*,
+ org.eclipse.jst.ws.internal.common.*,
+ org.eclipse.jst.ws.internal.consumption.wsfinder.WSFinderRegistry,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.util.Uddi4jHelper,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ javax.wsdl.extensions.soap.*,
+ javax.wsdl.extensions.http.*,
+ javax.wsdl.extensions.*,
+ javax.wsdl.*,
+ java.util.*,
+ java.net.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+ int wsdlType = controller.getWSDLType();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title><%=controller.getMessage("FRAME_TITLE_WSDL_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+</script>
+<script language="javascript">
+ var sectionIds = ["workbench","favorites"];
+ function fillWebProjects()
+ {
+ var x = 0;
+<%
+ {
+ IWorkspaceRoot iWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject[] projects = iWorkspaceRoot.getProjects();
+ for (int i=0;i<projects.length;i++)
+ {
+ if (!projects[i].isOpen())
+ continue;
+ if (ResourceUtils.isWebProject(projects[i]))
+ {
+%>
+ document.forms[0].<%=ActionInputs.PROJECT%>.options[x++] = new Option("<%=HTMLUtils.JSMangle(projects[i].getName())%>","<%=HTMLUtils.JSMangle(projects[i].getName())%>");
+<%
+ }
+ }
+ }
+%>
+ if (document.forms[0].<%=ActionInputs.PROJECT%>.options.length > 0)
+ {
+ document.forms[0].<%=ActionInputs.PROJECT%>.options[0].selected = true;
+ fillWSDLFiles(document.forms[0].<%=ActionInputs.PROJECT%>.options[0].value);
+ }
+ }
+
+<%! private Vector wsdlURLs_ = new Vector(); %>
+
+ function fillWSDLFiles(selectedWebProjectName)
+ {
+ var currentNumberOfOptions = document.forms[0].<%=ActionInputs.QUERY_INPUT_WEBPROJECT_WSDL_URL%>.options.length;
+ for (var i=0;i<currentNumberOfOptions;i++)
+ document.forms[0].<%=ActionInputs.QUERY_INPUT_WEBPROJECT_WSDL_URL%>.options[0] = null;
+<%
+ {
+ List ws = WSFinderRegistry.getInstance().getWebServices();
+ IWorkspaceRoot iWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject[] projects = iWorkspaceRoot.getProjects();
+ for (int i=0;i<projects.length;i++)
+ {
+ if (!projects[i].isOpen())
+ continue;
+ if (ResourceUtils.isWebProject(projects[i]))
+ {
+%>
+ if (selectedWebProjectName == "<%=HTMLUtils.JSMangle(projects[i].getName())%>")
+ {
+ var x=0;
+<%
+ try
+ {
+ //IBaseWebNature webNature = (IBaseWebNature)projects[i].getNature(IWebNatureConstants.J2EE_NATURE_ID);
+ String contextRoot = null;//webNature.getContextRoot();
+ wsdlURLs_.removeAllElements();
+ for (Iterator it = ws.iterator(); it.hasNext();)
+ {
+ String wsdl = it.next().toString();
+ String file = (new URL(wsdl)).getFile();
+ int contextRootLen = contextRoot.length();
+ if (file.length() > contextRootLen && contextRoot.equals(file.substring(1, contextRootLen+1)) && (file.length() < contextRootLen+2 || file.charAt(contextRootLen+1) == '/'))
+ {
+ wsdlURLs_.add(wsdl);
+ }
+ }
+ if (wsdlType == ActionInputs.WSDL_TYPE_SERVICE_INTERFACE)
+ {
+ final String wsdlFolder = null;//webNature.getRootPublishableFolder().getFullPath().append("wsdl").toString();
+ projects[i].accept(new IResourceVisitor()
+ {
+ public boolean visit(IResource resource)
+ {
+ if (resource.getType() == IResource.FILE)
+ {
+ IPath resourceFullPath = resource.getFullPath();
+ String ext = resourceFullPath.getFileExtension();
+ if (ext != null && ext.equalsIgnoreCase("wsdl") && resourceFullPath.toString().startsWith(wsdlFolder))
+ {
+ String wsdl = ResourceUtils.getURLFromPath(resourceFullPath, null, null);
+ if (!wsdlURLs_.contains(wsdl))
+ wsdlURLs_.add(wsdl);
+ }
+ }
+ return true;
+ }
+ });
+ Uddi4jHelper uddi4jHelper = new Uddi4jHelper();
+ for (int index = 0; index < wsdlURLs_.size(); index++)
+ {
+ Definition wsdlDocument = uddi4jHelper.getWSDLDefinition(wsdlURLs_.get(index).toString());
+ if (!uddi4jHelper.isServiceInterface(wsdlDocument) && !uddi4jHelper.isServiceInterfaceWithBindingsOnly(wsdlDocument))
+ {
+ wsdlURLs_.remove(index);
+ index--;
+ }
+ }
+ }
+ for (Iterator it = wsdlURLs_.iterator(); it.hasNext();)
+ {
+ String wsdl = HTMLUtils.JSMangle(it.next().toString());
+ %>
+ document.forms[0].<%=ActionInputs.QUERY_INPUT_WEBPROJECT_WSDL_URL%>.options[x++] = new Option("<%=wsdl%>","<%=wsdl%>");
+ <%
+ }
+ }
+ catch (CoreException ce)
+ {
+ }
+%>
+ }
+<%
+ }
+ }
+ }
+%>
+ }
+
+ function fillFavoriteWSDLFiles()
+ {
+ var x = 0;
+<%
+ FavoritesPerspective favoritesPerspective = controller.getFavoritesPerspective();
+ NodeManager favoritesNodeManager = favoritesPerspective.getNodeManager();
+ TreeElement favoritesMainElement = favoritesNodeManager.getRootNode().getTreeElement();
+ TreeElement favoriteWSDLServicesElement = (TreeElement)(favoritesMainElement.getElements(FavoritesModelConstants.REL_WSDL_SERVICE_FOLDER_NODE).nextElement());
+ Enumeration favoriteWSDLServiceElements = favoriteWSDLServicesElement.getElements(FavoritesModelConstants.REL_WSDL_SERVICE_NODE);
+ while (favoriteWSDLServiceElements.hasMoreElements())
+ {
+ FavoritesWSDLServiceElement favoriteWSDLServiceElement = (FavoritesWSDLServiceElement)favoriteWSDLServiceElements.nextElement();
+ String url = HTMLUtils.JSMangle((favoriteWSDLServiceElement.getService().getDescriptions())[0].getLocation());
+%>
+ document.forms[0].<%=ActionInputs.QUERY_INPUT_FAVORITE_WSDL_URL%>.options[x++] = new Option("<%=url%>","<%=url%>");
+<%
+ }
+%>
+ }
+
+ function toggleForm(formIndex)
+ {
+ for (var i=0;i<sectionIds.length;i++)
+ {
+ if (i == formIndex)
+ document.getElementById(sectionIds[i]).style.display = "";
+ else
+ document.getElementById(sectionIds[i]).style.display = "none";
+ }
+ }
+
+ function setDefaults()
+ {
+ fillWebProjects();
+ fillFavoriteWSDLFiles();
+ document.getElementById(sectionIds[0]).style.display = "";
+ var loadScreenTable = document.getElementById("loadScreen");
+ if (loadScreenTable.rows.length > 0)
+ loadScreenTable.deleteRow(0);
+ document.getElementById("mainScreen").style.display = "";
+ }
+</script>
+</head>
+
+<body class="contentbodymargin">
+ <div id="contentborder">
+ <table id="loadScreen">
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_LOAD_IN_PROGRESS")%>
+ </td>
+ </tr>
+ </table>
+ <div id="mainScreen" style="display:none;">
+ <form style="margin-top:0">
+<%
+ if (wsdlType == ActionInputs.WSDL_TYPE_SERVICE)
+ {
+%>
+ <table>
+ <tr>
+ <td> <%=controller.getMessage("FORM_LABEL_WSDL_SOURCE")%> </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="radio" name="selectFrom" onClick="toggleForm(0)" checked><%=controller.getMessage("FORM_LABEL_WSDL_SOURCE_WEBPROJECTS")%>
+ <input type="radio" name="selectFrom" onClick="toggleForm(1)"><%=controller.getMessage("FORM_LABEL_WSDL_SOURCE_FAVORITES")%>
+ </td>
+ </tr>
+ </table>
+<%
+ }
+%>
+ <div id="workbench" style="display:none;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" class="labels"><%=controller.getMessage("FORM_LABEL_WEB_PROJECT")%></td>
+ </tr>
+ <tr>
+ <td nowrap>
+ <select name="<%=ActionInputs.PROJECT%>" onChange="fillWSDLFiles(this.value)" class="selectlist">
+ </select>
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_REFRESH")%>" onClick="document.location.reload()" class="button">
+ </td>
+ </tr>
+ <tr>
+ <td height=10 valign="bottom" class="labels"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></td>
+ </tr>
+ <tr>
+ <td>
+ <select name="<%=ActionInputs.QUERY_INPUT_WEBPROJECT_WSDL_URL%>" class="selectlist">
+ </select>
+ </td>
+ </tr>
+ </table>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" nowrap align="left">
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_GO")%>" onClick="top.opener.targetWSDLURLElement.value=this.form.<%=ActionInputs.QUERY_INPUT_WEBPROJECT_WSDL_URL%>.value;top.close()" class="button">
+ </td>
+ <td height=30 valign="bottom" nowrap align="left">
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_CANCEL")%>" onClick="top.close()" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </div>
+ <div id="favorites" style="display:none;">
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" class="labels"><%=controller.getMessage("FORM_LABEL_WSDL_URL")%></td>
+ </tr>
+ <tr>
+ <td>
+ <select name="<%=ActionInputs.QUERY_INPUT_FAVORITE_WSDL_URL%>" class="selectlist">
+ </td>
+ </table>
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=30 valign="bottom" nowrap align="left">
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_GO")%>" onClick="top.opener.targetWSDLURLElement.value=this.form.<%=ActionInputs.QUERY_INPUT_FAVORITE_WSDL_URL%>.value;top.close()" class="button">
+ </td>
+ <td height=30 valign="bottom" nowrap align="left">
+ <input type="button" value="<%=controller.getMessage("FORM_BUTTON_CANCEL")%>" onClick="top.close()" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+ </div>
+ </form>
+ </div>
+ </div>
+<script language="javascript">
+ setDefaults();
+ resumeProxyLoadPage();
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_toolbar.jsp
new file mode 100644
index 000000000..d4ccc5802
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_toolbar.jsp
@@ -0,0 +1,42 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<%
+ String sessionId = request.getParameter(ActionInputs.SESSIONID);
+ HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
+ Controller controller = (Controller)currentSession.getAttribute("controller");
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FRAME_TITLE_WSDL_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+</head>
+<body onUnload="top.opener.wsdlWindowClosed=true" class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar">
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/wsdl.gif"))%>" width=16 height=16></td>
+ <td valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_WSDL_BROWSER")%></td>
+ </tr>
+ </table>
+ </div>
+</div>
+<script language="javascript">
+ top.opener.wsdlWindowClosed = false;
+</script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsexplorer.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsexplorer.jsp
new file mode 100644
index 000000000..a90aa8be5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsexplorer.jsp
@@ -0,0 +1,88 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.URLUtils,
+ java.util.Enumeration,
+ java.net.*,
+ java.io.*"%>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript">
+ function initWindowName(name)
+ {
+ window.name = name;
+ }
+ </script>
+ <%
+ String sessionId = session.getId();
+ %>
+ <jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session">
+ <%
+ // Add the session to the application. This allows us to resurrect the session even if the browser chooses not to participate.
+ application.setAttribute(sessionId,session);
+
+ if (session.getMaxInactiveInterval() > 0)
+ session.setMaxInactiveInterval(-1);
+
+ // LaunchOptionManager (below) handles most options,
+ // but need to get state and install locations earlier,
+ // specifically before controller.init().
+ Enumeration paramNames = request.getParameterNames();
+ while (paramNames.hasMoreElements())
+ {
+ String paramName = (String)paramNames.nextElement();
+ String[] paramValues = request.getParameterValues(paramName);
+ if (paramValues != null && paramValues.length > 0)
+ {
+ String decodedParamName = URLUtils.decode(paramName);
+ if (decodedParamName.equals(LaunchOptions.DEFAULT_FAVORITES_LOCATION))
+ {
+ controller.setDefaultFavoritesLocation(paramValues[0]);
+ }
+ else if (decodedParamName.equals(LaunchOptions.STATE_LOCATION))
+ {
+ controller.setStateLocation(paramValues[0]);
+ }
+ }
+ }
+
+ // controller.init()
+ controller.init(sessionId,application,request.getContextPath());
+ %>
+ </jsp:useBean>
+ <%
+ // preload from LaunchOptionManager
+ String key = request.getParameter(URLUtils.encode(WSExplorerContext.ID));
+ if (key != null && key.length() > 0)
+ {
+ LaunchOptionsManager manager = LaunchOptionsManager.getInstance();
+ manager.manage(key, sessionId, application);
+ }
+ %>
+ <jsp:include page="/actionengine.jsp" flush="true"/>
+ <title><%=controller.getMessage("TITLE_WSEXPLORER")%></title>
+</head>
+<%
+// reset perspective content to blank
+controller.enablePerspectiveContentBlank(true);
+%>
+<frameset rows="0,35,*" border=0 onload="javascript:initWindowName('<%=FrameNames.WINDOW_NAME_WSEXPLORER_JSP%>')">
+ <frame name="<%=FrameNames.PERSPECTIVE_WORKAREA%>" title="<%=controller.getMessage("FRAME_TITLE_PERSPECTIVE_WORKAREA")%>" frameborder=0 noresize>
+ <frame name="<%=FrameNames.PERSPECTIVE_TOOLBAR%>" title="<%=controller.getMessage("FRAME_TITLE_PERSPECTIVE_TOOLBAR")%>" src="<%=response.encodeURL(controller.getPathWithContext("perspective_toolbar.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=0 noresize>
+ <frame name="<%=FrameNames.PERSPECTIVE_CONTENT%>" title="<%=controller.getMessage("FRAME_TITLE_PERSPECTIVE_CONTENT")%>" src="<%=response.encodeURL(controller.getPathWithContext("perspective_content.jsp"))%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearNodeConfirmJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearNodeConfirmJSP.jsp
new file mode 100644
index 000000000..19a52b625
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearNodeConfirmJSP.jsp
@@ -0,0 +1,34 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.ClearWSILAction"%>
+
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <script language="javascript">
+ if (confirm("<%=controller.getWSILPerspective().getMessage("MSG_CONFIRM_REMOVE_NODE", controller.getWSILPerspective().getNodeManager().getSelectedNode().getNodeName())%>")) {
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ClearWSILAction.getActionLink(controller.getWSILPerspective().getNodeManager().getSelectedNode().getNodeId())))%>";
+ }
+ else {
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ }
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearWSILActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearWSILActionJSP.jsp
new file mode 100644
index 000000000..31bb13f68
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ClearWSILActionJSP.jsp
@@ -0,0 +1,18 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.ClearWSILAction"%>
+
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ ClearWSILAction action = new ClearWSILAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<%@ include file="/actions/ClearNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSDLToFileSystemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSDLToFileSystemActionJSP.jsp
new file mode 100644
index 000000000..b55b9461d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSDLToFileSystemActionJSP.jsp
@@ -0,0 +1,24 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.io.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ ImportWSDLToFileSystemAction action = new ImportWSDLToFileSystemAction(controller);
+%>
+<%@ include file="/actions/ImportToFileSystemAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSILToFileSystemActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSILToFileSystemActionJSP.jsp
new file mode 100644
index 000000000..0edcd8e50
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ImportWSILToFileSystemActionJSP.jsp
@@ -0,0 +1,24 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ java.io.*" %>
+
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ ImportWSILToFileSystemAction action = new ImportWSILToFileSystemAction(controller);
+%>
+<%@ include file="/actions/ImportToFileSystemAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILActionJSP.jsp
new file mode 100644
index 000000000..327402cbd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILActionJSP.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+</head>
+<body>
+<%
+// Prepare the action.
+OpenWSILAction action = new OpenWSILAction(controller);
+
+// Load the parameters for the action from the servlet request.
+boolean inputsValid = action.populatePropertyTable(request);
+if (!inputsValid) {
+%>
+ <script language="javascript">
+ wsilPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_content.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+<%
+}
+else {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ if (actionResult) {
+%>
+ <script language="javascript">
+ if (isMicrosoftInternetExplorer()) {
+ wsilNavigatorContent.location="<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_navigator_content.jsp"))%>";
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_perspective_content.jsp"))%>";
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ wsilPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_content.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+<%
+ }
+}
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILLinkActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILLinkActionJSP.jsp
new file mode 100644
index 000000000..7da401633
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/OpenWSILLinkActionJSP.jsp
@@ -0,0 +1,67 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.OpenWSILLinkAction"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+</head>
+<body>
+<%
+// Prepare the action.
+OpenWSILLinkAction action = new OpenWSILLinkAction(controller);
+
+// Load the parameters for the action from the servlet request.
+boolean inputsValid = action.populatePropertyTable(request);
+if (!inputsValid) {
+%>
+ <script language="javascript">
+ wsilPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_content.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+<%
+}
+else {
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+ if (actionResult) {
+%>
+ <script language="javascript">
+ if (isMicrosoftInternetExplorer()) {
+ wsilNavigatorContent.location="<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_navigator_content.jsp"))%>";
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_perspective_content.jsp"))%>";
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ wsilPropertiesContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_content.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+<%
+ }
+}
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/RefreshActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/RefreshActionJSP.jsp
new file mode 100644
index 000000000..0c11a7e75
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/RefreshActionJSP.jsp
@@ -0,0 +1,63 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.Action,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*"%>
+
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ Action action = RefreshAction.newAction(request, controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <%
+ if (!actionResult) {
+ if (action instanceof RefreshWSILAction) {
+ %>
+ <jsp:include page="/wsil/actions/ClearNodeConfirmJSP.jsp" flush="true"/>
+ <%
+ }
+ else {
+ %>
+ <script language="javascript">
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+ <%
+ }
+ %>
+ <%
+ }
+ else {
+ %>
+ <script language="javascript">
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+ <%
+ }
+ %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ResizeWSILFramesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ResizeWSILFramesActionJSP.jsp
new file mode 100644
index 000000000..1da495566
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/ResizeWSILFramesActionJSP.jsp
@@ -0,0 +1,42 @@
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Create the action.
+ ResizeWSILFramesAction action = new ResizeWSILFramesAction(controller);
+
+ // Populate the action with the request properties.
+ boolean result = action.populatePropertyTable(request);
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<jsp:include page="/wsil/scripts/wsilframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+</head>
+<body>
+<%
+ if (result)
+ {
+ action.execute(false);
+
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<script language="javascript">
+ if (isMicrosoftInternetExplorer())
+ {
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ perspectiveContentFrameset.setAttribute("cols","<%=wsilPerspective.getPerspectiveContentFramesetCols()%>");
+ actionsContainerFrameset.setAttribute("rows","<%=wsilPerspective.getActionsContainerFramesetRows()%>");
+ }
+ else
+ perspectiveContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_perspective_content.jsp"))%>";
+</script>
+<%
+ }
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILNodeActionJSP.jsp
new file mode 100644
index 000000000..7f94c89f9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILNodeAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ SelectWSILNodeAction action = new SelectWSILNodeAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILToolActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILToolActionJSP.jsp
new file mode 100644
index 000000000..338dfd6a0
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SelectWSILToolActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action.
+ SelectWSILToolAction action = new SelectWSILToolAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/SelectNodeToolAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SwitchPerspectiveFromWSILActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SwitchPerspectiveFromWSILActionJSP.jsp
new file mode 100644
index 000000000..57d07b2a4
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/SwitchPerspectiveFromWSILActionJSP.jsp
@@ -0,0 +1,30 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ // Prepare the action
+ SwitchPerspectiveFromWSILAction action = new SwitchPerspectiveFromWSILAction(controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ // Determine if the action was added to the history list.
+ boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<jsp:include page="/scripts/switchperspective.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WSILImportWSILToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WSILImportWSILToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..8d53132ef
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WSILImportWSILToWorkbenchActionJSP.jsp
@@ -0,0 +1,22 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILImportWSILToWorkbenchAction action = new WSILImportWSILToWorkbenchAction(controller);
+%>
+<%@ include file="/actions/ImportToWorkbenchAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToFavoritesActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToFavoritesActionJSP.jsp
new file mode 100644
index 000000000..ba0c01b41
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToFavoritesActionJSP.jsp
@@ -0,0 +1,39 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction"%>
+
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+AddToFavoritesAction action = AddToFavoritesAction.newAction(request, controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action
+action.execute();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <script language="javascript">
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..10e5ae7c1
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToUDDIPerspectiveActionJSP.jsp
@@ -0,0 +1,56 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <jsp:include page="/scripts/panes.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+</head>
+<body>
+ <%
+ // Prepare the action.
+ Action action = AddToUDDIPerspectiveAction.newAction(request, controller);
+
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+
+ // Run the action and obtain the return code (fail/success).
+ boolean actionResult = action.execute();
+
+ if (actionResult)
+ {
+ controller.getUDDIPerspective().getNavigatorManager().makeSelectedNodeVisible();
+ %>
+ <script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_UDDI,false)))%>";
+ </script>
+ <%
+ }
+ else
+ {
+ %>
+ <script language="javascript">
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+ <%
+ }
+ %>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp
new file mode 100644
index 000000000..80bc6891b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilAddToWSDLPerspectiveActionJSP.jsp
@@ -0,0 +1,53 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.ShowPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.WsilFrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.WsilAddToWSDLPerspectiveAction"%>
+
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<%
+// Prepare the action.
+WsilAddToWSDLPerspectiveAction action = new WsilAddToWSDLPerspectiveAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+if (actionResult) {
+%>
+ <script language="javascript">
+ perspectiveWorkArea.location = "<%=response.encodeURL(controller.getPathWithContext(ShowPerspectiveAction.getActionLink(ActionInputs.PERSPECTIVE_WSDL,false)))%>";
+ </script>
+<%
+}
+else {
+%>
+ <script language="javascript">
+ wsilPropertiesContainer.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_properties_container.jsp"))%>";
+ wsilStatusContent.location = "<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>";
+ </script>
+<%
+}
+%>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp
new file mode 100644
index 000000000..8bbd71c72
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilCheckFavoriteExistsActionJSP.jsp
@@ -0,0 +1,72 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils,
+ java.util.Enumeration"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+ <form action="<%=response.encodeURL(controller.getPathWithContext("wsil/actions/WsilAddToFavoritesActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+<%
+ Enumeration paramNames = request.getParameterNames();
+ while (paramNames.hasMoreElements()) {
+ String paramName = (String)paramNames.nextElement();
+ String[] paramValues = request.getParameterValues(paramName);
+ for (int i = 0; i < paramValues.length; i++) {
+%>
+ <input type="hidden" name="<%=paramName%>" value="<%=paramValues[i]%>">
+<%
+ }
+ }
+%>
+ </form>
+</body>
+</html>
+<%
+if (request.getParameter(WsilActionInputs.MULTIPLE_LINK_ACTION) == null) {
+ // Prepare the action.
+ AddToFavoritesAction action = AddToFavoritesAction.newAction(request, controller);
+ // Load the parameters for the action from the servlet request.
+ action.populatePropertyTable(request);
+ if (action.favoriteExists()) {
+%>
+ <script language="javascript">
+ if (confirm("<%=HTMLUtils.JSMangle(controller.getWSILPerspective().getMessage("MSG_QUESTION_OVERWRITE_FAVORITES"))%>"))
+ document.forms[0].submit();
+ </script>
+<%
+ }
+ else {
+%>
+ <script language="javascript">
+ document.forms[0].submit();
+ </script>
+<%
+ }
+}
+else {
+%>
+ <script language="javascript">
+ document.forms[0].submit();
+ </script>
+<%
+}
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilImportWSDLToWorkbenchActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilImportWSDLToWorkbenchActionJSP.jsp
new file mode 100644
index 000000000..3daac68cd
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilImportWSDLToWorkbenchActionJSP.jsp
@@ -0,0 +1,22 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WsilImportWSDLToWorkbenchAction action = new WsilImportWSDLToWorkbenchAction(controller);
+%>
+<%@ include file="/actions/ImportToWorkbenchAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilLaunchWebServiceWizardActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilLaunchWebServiceWizardActionJSP.jsp
new file mode 100644
index 000000000..284c8398a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilLaunchWebServiceWizardActionJSP.jsp
@@ -0,0 +1,19 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WsilLaunchWebServiceWizardAction action = new WsilLaunchWebServiceWizardAction(controller);
+%>
+<%@ include file="/actions/LaunchWebServiceWizardAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilToggleNodeActionJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilToggleNodeActionJSP.jsp
new file mode 100644
index 000000000..b82cdb09b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/actions/WsilToggleNodeActionJSP.jsp
@@ -0,0 +1,33 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.actions.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+// Prepare the action.
+WsilToggleNodeAction action = new WsilToggleNodeAction(controller);
+
+// Load the parameters for the action from the servlet request.
+action.populatePropertyTable(request);
+
+// Run the action and obtain the return code (fail/success).
+boolean actionResult = action.execute();
+
+// Determine if the action was added to the history list.
+boolean isAddedToHistory = action.isAddedToHistory();
+%>
+<%@ include file="/actions/ToggleNodeAction.inc" %>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/OpenWSILForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/OpenWSILForm.jsp
new file mode 100644
index 000000000..587438749
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/OpenWSILForm.jsp
@@ -0,0 +1,98 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.constants.FrameNames,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+WSILPerspective wsilPerspective = controller.getWSILPerspective();
+FormTool formTool = (FormTool)wsilPerspective.getNodeManager().getSelectedNode().getToolManager().getSelectedTool();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_OPEN_WSIL")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+<jsp:include page="/wsil/scripts/wsilPanes.jsp" flush="true"/>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/scripts/formutils.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("wsil/actions/OpenWSILActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" onSubmit="return handleSubmit(this)">
+ <%
+ String titleImagePath = "wsil/images/open_wsil_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_OPEN_WSIL");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsilPerspective.getMessage("FORM_LABEL_OPEN_WSIL_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=25 valign="bottom">
+ <label for="input_wsil_url"><%=wsilPerspective.getMessage("WSIL_URL")%></label>
+ <%
+ if (!formTool.isInputValid(WsilActionInputs.WSIL_URL)) {
+ %>
+ <%=HTMLUtils.redAsterisk()%>
+ <%
+ }
+ String wsilURL = (String)formTool.getProperty(WsilActionInputs.WSIL_URL);
+ if (wsilURL == null)
+ wsilURL = "";
+ %>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input type="text" id="input_wsil_url" name="<%=WsilActionInputs.WSIL_URL%>" value="<%=wsilURL%>" size="50" class="textenter">
+ </td>
+ </tr>
+ </table>
+ <%
+ String inspectionTypeString = (String)formTool.getProperty(WsilActionInputs.WSIL_INSPECTION_TYPE);
+ int inspectionType = WsilActionInputs.WSIL_DETAILS;
+ if (inspectionTypeString != null)
+ inspectionType = Integer.parseInt(inspectionTypeString);
+ %>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td class="labels" height=30 valign="bottom">
+ <label for="inspection_type"><%=wsilPerspective.getMessage("FORM_LABEL_CHOOSE_WSIL_INSPECTION_TYPE")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom">
+ <select id="inspection_type" name="<%=WsilActionInputs.WSIL_INSPECTION_TYPE%>" class="selectlist">
+ <option value="<%=WsilActionInputs.WSIL_DETAILS%>" <% if (inspectionType == WsilActionInputs.WSIL_DETAILS) { %>selected<% } %>><%=wsilPerspective.getMessage("FORM_LABEL_WSIL")%>
+ <option value="<%=WsilActionInputs.WSDL_SERVICES%>" <% if (inspectionType == WsilActionInputs.WSDL_SERVICES) { %>selected<% } %>><%=wsilPerspective.getMessage("FORM_LABEL_WSDL_SERVICE")%>
+ <option value="<%=WsilActionInputs.UDDI_SERVICES%>" <% if (inspectionType == WsilActionInputs.UDDI_SERVICES) { %>selected<% } %>><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_SERVICE")%>
+ <option value="<%=WsilActionInputs.UDDI_BUSINESSES%>" <% if (inspectionType == WsilActionInputs.UDDI_BUSINESSES) { %>selected<% } %>><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_BUSINESS")%>
+ <option value="<%=WsilActionInputs.WSIL_LINKS%>" <% if (inspectionType == WsilActionInputs.WSIL_LINKS) { %>selected<% } %>><%=wsilPerspective.getMessage("FORM_LABEL_WSIL_LINKS")%>
+ </select>
+ </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/ProcessWSILFramesetsForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/ProcessWSILFramesetsForm.jsp
new file mode 100644
index 000000000..532e6da04
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/ProcessWSILFramesetsForm.jsp
@@ -0,0 +1,27 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request"/>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request"/>
+<form action="<%=response.encodeURL(controller.getPathWithContext(formAction.toString()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data" style="margin-top:0;margin-bottom:0">
+ <input name="<%=ActionInputs.FRAME_NAME%>" type="hidden" value="<%=formFrameName%>">
+ <input name="<%=WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>" type="hidden" value="<%=wsilPerspective.getPerspectiveContentFramesetCols()%>">
+ <input name="<%=WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>" type="hidden" value="<%=wsilPerspective.getActionsContainerFramesetRows()%>">
+</form>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiBusinessDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiBusinessDetailsPage.jsp
new file mode 100644
index 000000000..298b9a218
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiBusinessDetailsPage.jsp
@@ -0,0 +1,126 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToUDDIPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ int viewID = selectedNode.getViewId();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ String inquiryAPI = null;
+ String businessKey = null;
+ String discoveryURL = null;
+ WsilUddiBusinessElement link = null;
+ if (selectedElement instanceof WsilElement) {
+ ListElement le = ((WsilElement)selectedElement).getAllUDDILinks().getElementWithViewId(viewID);
+ link = (WsilUddiBusinessElement)le.getObject();
+ if (link != null) {
+ abstracts.addAll(link.getLinkAbstracts());
+ abstractLangs.addAll(link.getLinkAbstractLangs());
+ inquiryAPI = link.getUDDILinkInquiryAPI();
+ businessKey = link.getUDDILinkBusinessKey();
+ discoveryURL = link.getUDDILinkDiscoveryURL();
+ }
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_UDDI_BUSINESS_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_UDDI_LINK_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof WsilElement && link != null) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=ActionInputs.VIEWID%>" value="<%=viewID%>">
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsilPerspective.getMessage("FORM_LABEL_INQUIRY_API")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((inquiryAPI != null) ? inquiryAPI : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsilPerspective.getMessage("FORM_LABEL_BUSINESS_KEY")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((businessKey != null) ? businessKey : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsilPerspective.getMessage("FORM_LABEL_DISCOVERY_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((discoveryURL != null) ? discoveryURL : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <jsp:include page="/wsil/scripts/wsilAbstractTable.jsp" flush="true"/>
+
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiServiceDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiServiceDetailsPage.jsp
new file mode 100644
index 000000000..798303e97
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/UddiServiceDetailsPage.jsp
@@ -0,0 +1,132 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToUDDIPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="nameLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="names" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ int viewID = selectedNode.getViewId();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ String inquiryAPI = null;
+ String serviceKey = null;
+ String discoveryURL = null;
+ WsilServiceElement service = null;
+ if (selectedElement instanceof WsilElement) {
+ ListElement le = ((WsilElement)selectedElement).getAllUDDIServices().getElementWithViewId(viewID);
+ service = (WsilServiceElement)le.getObject();
+ if (service != null) {
+ names.addAll(service.getServiceNames());
+ nameLangs.addAll(service.getServiceNameLangs());
+ abstracts.addAll(service.getServiceAbstracts());
+ abstractLangs.addAll(service.getServiceAbstractLangs());
+ inquiryAPI = ((WsilUddiServiceElement)service).getUDDIServiceInquiryAPI();
+ serviceKey = ((WsilUddiServiceElement)service).getUDDIServiceKey();
+ discoveryURL = ((WsilUddiServiceElement)service).getUDDIServiceDiscoveryURL();
+ }
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_UDDI_SERVICE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_WSIL_SERVICE_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof WsilElement && service != null) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=ActionInputs.VIEWID%>" value="<%=viewID%>">
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_INQUIRY_API")%></strong>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((inquiryAPI != null) ? inquiryAPI : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_SERVICE_KEY")%></strong>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((serviceKey != null) ? serviceKey : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <br>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_DISCOVERY_URL")%></strong>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=((discoveryURL != null) ? discoveryURL : wsilPerspective.getMessage("FORM_LABEL_NA"))%>
+ </td>
+ </tr>
+ </table>
+
+ <jsp:include page="/wsil/scripts/wsilNameTable.jsp" flush="true"/>
+
+ <jsp:include page="/wsil/scripts/wsilAbstractTable.jsp" flush="true"/>
+
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WSILImportWSILToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WSILImportWSILToWorkbenchForm.jsp
new file mode 100644
index 000000000..8863f9ca3
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WSILImportWSILToWorkbenchForm.jsp
@@ -0,0 +1,110 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.util.*,
+ org.eclipse.core.resources.*,
+ org.eclipse.core.runtime.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+WSILPerspective wsilPerspective = controller.getWSILPerspective();
+NodeManager nodeManager = wsilPerspective.getNodeManager();
+Node selectedNode = nodeManager.getSelectedNode();
+WsilElement wsilElement = (WsilElement)selectedNode.getTreeElement();
+%>
+</jsp:useBean>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=controller.getMessage("FORM_TITLE_IMPORT_TO_WORKBENCH")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+ <jsp:include page="/scripts/formutils.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext("wsil/actions/WSILImportWSILToWorkbenchActionJSP.jsp"))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" enctype="multipart/form-data">
+ <input type="hidden" name="<%=ActionInputs.IMPORT_FILE%>" value="<%=ActionInputs.IMPORT_FILE%>">
+ <%
+ String titleImagePath = "images/import_to_workbench_highlighted.gif";
+ String title = wsilPerspective.getMessage("ATL_IMPORT_WSIL_TO_WORKBENCH");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td>
+ <%=wsilPerspective.getMessage("FORM_LABEL_IMPORT_WSIL_TO_WORKBENCH_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <table>
+ <tr>
+ <td class="labels" height=40 valign="center">
+ <label for="select_workbench_project_name"><%=controller.getMessage("WORKBENCH_PROJECT_NAME")%></label>
+ </td>
+ <td class="labels" height=40 valign="center" nowrap>
+ <%
+ IWorkspaceRoot iWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject[] projects = iWorkspaceRoot.getProjects();
+ %>
+ <select id="select_workbench_project_name" name="<%=ActionInputs.WORKBENCH_PROJECT_NAME%>" class="selectlist">
+ <%
+ for (int i = 0; i < projects.length; i++)
+ {
+ try
+ {
+ if (!projects[i].isOpen())
+ continue;
+ String projectName = projects[i].getName();
+ %>
+ <option value="<%=projectName%>"><%=projectName%>
+ <%
+ }
+ catch (Exception e) {}
+ }
+ %>
+ </select>
+ </td>
+ </tr>
+ </table>
+ <table width="95%" border=0 cellpadding=3 cellspacing=0>
+ <tr>
+ <td>
+ <label for="input_imported_wsil_file_name"><%=controller.getMessage("WSIL_FILE_NAME")%></label>
+ </td>
+ </tr>
+ <tr>
+ <td height=10 valign="bottom" width="60%">
+<%
+ String wsilFileName = "temp.wsil";
+ String wsilURL = wsilElement.getWsilUrl();
+ if (wsilURL.endsWith(".wsil"))
+ {
+ int lastSeparatorPos = Math.max(wsilURL.lastIndexOf("/"), wsilURL.lastIndexOf("\\"));
+ if (lastSeparatorPos > 0)
+ wsilFileName = wsilURL.substring(lastSeparatorPos+1, wsilURL.length());
+ }
+%>
+ <input type="text" id="input_imported_wsil_file_name" name="<%=ActionInputs.IMPORTED_FILE_NAME%>" value="<%=wsilFileName%>" size=50 class="textenter">
+ </td>
+ </tr>
+ </table>
+<jsp:include page="/forms/simpleCommon_table.jsp" flush="true"/>
+ </form>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsdlServiceDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsdlServiceDetailsPage.jsp
new file mode 100644
index 000000000..5f80745a9
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsdlServiceDetailsPage.jsp
@@ -0,0 +1,148 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.apache.wsil.QName,
+ java.util.Vector,
+ java.util.Enumeration" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="nameLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="names" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+<%
+ String bindingTable = "bindingTable";
+ String xbindingTable = "xbindingTable";
+
+ WSILPerspective wsilPerspective =controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ int viewID = selectedNode.getViewId();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WsilServiceElement service = null;
+ String wsdlURL = null;
+ Vector wsdlBindings = new Vector();
+ if (selectedElement instanceof WsilElement) {
+ ListElement le = ((WsilElement)selectedElement).getAllWSDLServices().getElementWithViewId(viewID);
+ service = (WsilServiceElement)le.getObject();
+ if (service != null) {
+ names.addAll(service.getServiceNames());
+ nameLangs.addAll(service.getServiceNameLangs());
+ abstracts.addAll(service.getServiceAbstracts());
+ abstractLangs.addAll(service.getServiceAbstractLangs());
+ wsdlURL = ((WsilWsdlServiceElement)service).getWSDLServiceURL();
+ wsdlBindings = ((WsilWsdlServiceElement)service).getWSDLBinding();
+ }
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_WSDL_SERVICE_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_WSIL_SERVICE_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof WsilElement && service != null) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=ActionInputs.VIEWID%>" value="<%=viewID%>">
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_URL")%></strong>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=wsdlURL%>
+ </td>
+ </tr>
+ </table>
+
+ <jsp:include page="/wsil/scripts/wsilNameTable.jsp" flush="true"/>
+
+ <jsp:include page="/wsil/scripts/wsilAbstractTable.jsp" flush="true"/>
+
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=bindingTable%>','<%=xbindingTable%>')"><img name="<%=xbindingTable%>" src="/wsexplorer/images/twistclosed.gif" class="twist"></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_WSDL_BINDINGS")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="/wsexplorer/images/keyline.gif" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=bindingTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_NAMESPACE_URI")%></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_LOCAL_NAME")%></th>
+ </tr>
+ <%
+ Enumeration e = wsdlBindings.elements();
+ while (e.hasMoreElements()) {
+ QName qname = (QName)e.nextElement();
+ %>
+ <tr>
+ <td class="tablecells" nowrap><%=qname.getNamespaceURI()%></td>
+ <td class="tablecells" nowrap><%=qname.getLocalName()%></td>
+ </tr>
+ <%
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=bindingTable%>','<%=xbindingTable%>');
+ </script>
+
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilDetailsPage.jsp
new file mode 100644
index 000000000..f8ecdaf69
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilDetailsPage.jsp
@@ -0,0 +1,88 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.WsilElement,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction,
+ java.util.Enumeration" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+<%
+ WSILPerspective wsilPerspective =controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WsilElement wsilElement = null;
+ if (selectedElement instanceof WsilElement) {
+ wsilElement = (WsilElement)selectedElement;
+ abstracts.addAll(wsilElement.getWSILAbstracts());
+ abstractLangs.addAll(wsilElement.getWSILAbstractLangs());
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_WSIL_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>">
+
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_WSIL_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof WsilElement) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=ActionInputs.VIEWID%>" value="<%=ActionInputs.VIEWID_DEFAULT%>">
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_URL")%></strong>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=wsilElement.getWsilUrl()%>
+ </td>
+ </tr>
+ </table>
+
+ <jsp:include page="/wsil/scripts/wsilAbstractTable.jsp" flush="true"/>
+
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilImportWSDLToWorkbenchForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilImportWSDLToWorkbenchForm.jsp
new file mode 100644
index 000000000..ceaff7f65
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilImportWSDLToWorkbenchForm.jsp
@@ -0,0 +1,50 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*" %>
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ Tool selectedTool = selectedNode.getToolManager().getSelectedTool();
+%>
+<jsp:useBean id="formProperties" class="java.util.Hashtable" scope="request">
+<%
+ if (selectedTool instanceof ListWSDLServicesTool)
+ {
+ int viewId = selectedNode.getViewId();
+ WsilElement wsilElement = (WsilElement)selectedNode.getTreeElement();
+ ListElement le = wsilElement.getAllWSDLServices().getElementWithViewId(viewId);
+ WsilWsdlServiceElement wsilWsdlServiceElement = (WsilWsdlServiceElement)le.getObject();
+ formProperties.put("wsdlURL",wsilWsdlServiceElement.getWSDLServiceURL());
+ }
+ formProperties.put("formActionLink","wsil/actions/WsilImportWSDLToWorkbenchActionJSP.jsp");
+%>
+</jsp:useBean>
+<%
+ if (selectedTool instanceof ListWSDLServicesTool)
+ {
+%>
+<jsp:include page="/forms/ImportWSDLAndWSILToWorkbenchForm.jsp" flush="true"/>
+<%
+ }
+ else if (selectedTool instanceof ListUDDIServicesTool)
+ {
+%>
+<jsp:include page="/forms/ImportToWorkbenchForm.jsp" flush="true"/>
+<%
+ }
+%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLaunchWebServiceWizardForm.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLaunchWebServiceWizardForm.jsp
new file mode 100644
index 000000000..799195ec7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLaunchWebServiceWizardForm.jsp
@@ -0,0 +1,20 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="formActionLink" class="java.lang.StringBuffer" scope="request">
+<%
+ formActionLink.append("wsil/actions/WsilLaunchWebServiceWizardActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:include page="/forms/LaunchWebServiceWizardForm.jsp" flush="true"/>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLinkDetailsPage.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLinkDetailsPage.jsp
new file mode 100644
index 000000000..2d4b7ec7f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/forms/WsilLinkDetailsPage.jsp
@@ -0,0 +1,84 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+<%
+ WSILPerspective wsilPerspective =controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ ToolManager currentToolManager = selectedNode.getCurrentToolManager();
+ int viewID = selectedNode.getViewId();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+ WsilWsilLinkElement link = null;
+ if (selectedElement instanceof WsilElement) {
+ ListElement le = ((WsilElement)selectedElement).getAllWSILLinks().getElementWithViewId(viewID);
+ link = (WsilWsilLinkElement)le.getObject();
+ if (link != null) {
+ abstractLangs.addAll(link.getLinkAbstractLangs());
+ abstracts.addAll(link.getLinkAbstracts());
+ }
+ }
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FORM_TITLE_WSIL_LINK_DETAILS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "images/details_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_WSIL_LINK_DETAILS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <%
+ if (selectedElement instanceof WsilElement && link != null) {
+ %>
+
+ <table width="95%" border=0 cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="singleheadercolor" height=20 valign="bottom" align="left">
+ <%=wsilPerspective.getMessage("FORM_LABEL_URL")%>
+ </th>
+ </tr>
+ <tr>
+ <td class="tablecells">
+ <%=link.getWSILLinkLocation()%>
+ </td>
+ </tr>
+ </table>
+
+ <jsp:include page="/wsil/scripts/wsilAbstractTable.jsp" flush="true"/>
+<jsp:useBean id="currentToolManagerHash" class="java.util.Hashtable" scope="request">
+<%
+ currentToolManagerHash.put(ActionInputs.CURRENT_TOOL_MANAGER,currentToolManager);
+%>
+</jsp:useBean>
+<jsp:include page="/forms/otherActions.jsp" flush="true"/>
+
+ <%
+ }
+ %>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_enabled.gif
new file mode 100644
index 000000000..e65d19a11
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_highlighted.gif
new file mode 100644
index 000000000..4aa3ddcb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/add_to_UDDI_perspective_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_enabled.gif
new file mode 100644
index 000000000..c351daff7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_highlighted.gif
new file mode 100644
index 000000000..53e1335da
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_UDDI_service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_enabled.gif
new file mode 100644
index 000000000..6dc028508
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_highlighted.gif
new file mode 100644
index 000000000..428c8ea5e
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSDL_service_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_enabled.gif
new file mode 100644
index 000000000..0fa09842f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_highlighted.gif
new file mode 100644
index 000000000..c34bbe6a8
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_WSIL_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_enabled.gif
new file mode 100644
index 000000000..bd1e37adc
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_highlighted.gif
new file mode 100644
index 000000000..d51b97517
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/list_business_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_enabled.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_enabled.gif
new file mode 100644
index 000000000..459cc6e4f
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_enabled.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_highlighted.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_highlighted.gif
new file mode 100644
index 000000000..261775f64
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/open_wsil_highlighted.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/wsil_node.gif b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/wsil_node.gif
new file mode 100644
index 000000000..7c5916fb6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/images/wsil_node.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilAbstractTable.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilAbstractTable.jsp
new file mode 100644
index 000000000..1083233d6
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilAbstractTable.jsp
@@ -0,0 +1,82 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="abstractLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="abstracts" class="java.util.Vector" scope="request"/>
+
+<jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+
+<%
+String abstractTable = "abstractTable";
+String xabstractTable = "xabstractTable";
+String showAllAbstractID = "showAllAbstractID";
+WSILPerspective wsilPerspective =controller.getWSILPerspective();
+%>
+
+<script language="javascript">
+ function showAbstract(tableContainerID) {
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var hiddenInput = document.getElementById('<%=showAllAbstractID%>');
+ <%
+ for (int i = 0; i < abstracts.size(); i++) {
+ %>
+ addRowToAbstractTable(tableBody,
+ "<%=HTMLUtils.JSMangle((String)abstractLangs.elementAt(i))%>",
+ "<%=HTMLUtils.JSMangle((String)abstracts.elementAt(i))%>");
+ <%
+ }
+ %>
+ }
+
+ function addRowToAbstractTable(tableBody, lang, abst) {
+ var newRow = document.createElement("tr");
+ addKeyValueToRow(newRow, lang, abst);
+ tableBody.appendChild(newRow);
+ }
+</script>
+
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=abstractTable%>','<%=xabstractTable%>')"><img name="<%=xabstractTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_ABSTRACT")%></strong>
+ </td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=abstractTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor" width="100%"><%=wsilPerspective.getMessage("FORM_LABEL_ABSTRACT")%></th>
+ </tr>
+ </table>
+</div>
+
+<script language="javascript">
+ showAbstract('<%=abstractTable%>');
+ twistInit('<%=abstractTable%>','<%=xabstractTable%>');
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilFormSubmit.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilFormSubmit.jsp
new file mode 100644
index 000000000..eb25f00aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilFormSubmit.jsp
@@ -0,0 +1,43 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/formsubmit.jsp" flush="true"/>
+<jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+<script language="javascript">
+ function isSomethingSelected(tableContainerId) {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows; i<table.rows.length; i++) {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ if (rowCheckbox.checked)
+ return true;
+ }
+ alert("<%=controller.getWSILPerspective().getMessage("MSG_ERROR_NOTHING_SELECTED")%>");
+ return false;
+ }
+
+ function setFormLocationAndSubmit(tableContainerId, form, location) {
+ if (isSomethingSelected(tableContainerId))
+ setLocationAndSubmit(form, location);
+ }
+
+ function setLocationAndSubmit(form, location) {
+ if (handleSubmit(form))
+ {
+ form.action = location;
+ form.submit();
+ }
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilNameTable.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilNameTable.jsp
new file mode 100644
index 000000000..162887d9a
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilNameTable.jsp
@@ -0,0 +1,82 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.util.HTMLUtils" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:useBean id="nameLangs" class="java.util.Vector" scope="request"/>
+<jsp:useBean id="names" class="java.util.Vector" scope="request"/>
+
+<jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+
+<%
+String nameTable = "nameTable";
+String xnameTable = "xnameTable";
+String showAllNameID = "showAllNameID";
+WSILPerspective wsilPerspective =controller.getWSILPerspective();
+%>
+
+<script language="javascript">
+ function showName(tableContainerID) {
+ var table = getTable(tableContainerID);
+ var tableBody = table.getElementsByTagName("TBODY").item(0);
+ var hiddenInput = document.getElementById('<%=showAllNameID%>');
+ <%
+ for (int i = 0; i < names.size(); i++) {
+ %>
+ addRowToNameTable(tableBody,
+ "<%=HTMLUtils.JSMangle((String)nameLangs.elementAt(i))%>",
+ "<%=HTMLUtils.JSMangle((String)names.elementAt(i))%>");
+ <%
+ }
+ %>
+ }
+
+ function addRowToNameTable(tableBody, lang, name) {
+ var newRow = document.createElement("tr");
+ addKeyValueToRow(newRow, lang, name);
+ tableBody.appendChild(newRow);
+ }
+</script>
+
+<table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=nameTable%>','<%=xnameTable%>')"><img name="<%=xnameTable%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=40 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_NAME")%></strong>
+ </td>
+ </tr>
+</table>
+
+<table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+</table>
+
+<div id="<%=nameTable%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_LANGUAGE")%></th>
+ <th class="headercolor" width="100%"><%=wsilPerspective.getMessage("FORM_LABEL_NAME")%></th>
+ </tr>
+ </table>
+</div>
+
+<script language="javascript">
+ showName('<%=nameTable%>');
+ twistInit('<%=nameTable%>','<%=xnameTable%>');
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilPanes.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilPanes.jsp
new file mode 100644
index 000000000..07c5b3bea
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilPanes.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ var wsilNavigatorContainer = perspectiveContent.frames["<%=WsilFrameNames.WSIL_NAVIGATOR_CONTAINER%>"];
+ var wsilNavigatorToolbar = wsilNavigatorContainer.frames["<%=WsilFrameNames.WSIL_NAVIGATOR_TOOLBAR%>"];
+ var wsilNavigatorContent = wsilNavigatorContainer.frames["<%=WsilFrameNames.WSIL_NAVIGATOR_CONTENT%>"];
+ var wsilActionsContainer = perspectiveContent.frames["<%=WsilFrameNames.WSIL_ACTIONS_CONTAINER%>"];
+ var wsilPropertiesContainer = wsilActionsContainer.frames["<%=WsilFrameNames.WSIL_PROPERTIES_CONTAINER%>"];
+ var wsilPropertiesToolbar = wsilPropertiesContainer.frames["<%=WsilFrameNames.WSIL_PROPERTIES_TOOLBAR%>"];
+ var wsilPropertiesContent = wsilPropertiesContainer.frames["<%=WsilFrameNames.WSIL_PROPERTIES_CONTENT%>"];
+ var wsilStatusContainer = wsilActionsContainer.frames["<%=WsilFrameNames.WSIL_STATUS_CONTAINER%>"];
+ var wsilStatusToolbar = wsilStatusContainer.frames["<%=WsilFrameNames.WSIL_STATUS_TOOLBAR%>"];
+ var wsilStatusContent = wsilStatusContainer.frames["<%=WsilFrameNames.WSIL_STATUS_CONTENT%>"];
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilTable.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilTable.jsp
new file mode 100644
index 000000000..625126bca
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilTable.jsp
@@ -0,0 +1,82 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*"%>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<jsp:include page="/scripts/tables.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+</script>
+<script language="javascript">
+
+ function wsilHandleCheckAllClick(tableContainerId, checkAllCheckbox) {
+ var table = getTable(tableContainerId);
+ for (var i=numberOfHeaderRows; i<table.rows.length; i++) {
+ var rowCheckboxCell = table.rows[i].getElementsByTagName("td").item(0);
+ var rowCheckbox = rowCheckboxCell.childNodes[0];
+ rowCheckbox.checked = checkAllCheckbox.checked;
+ if (rowCheckbox.checked) {
+ highlightRow(table.rows[i],"rowcolor");
+ rowCheckbox.name = "<%=ActionInputs.VIEWID%>";
+ }
+ else {
+ highlightRow(table.rows[i],"tablecells");
+ rowCheckbox.name = "";
+ }
+ }
+ }
+
+ function validateCheckBoxInput(checkbox, isChecked) {
+ if (isChecked) {
+ checkbox.name = "<%=ActionInputs.VIEWID%>";
+ }
+ else {
+ checkbox.name = "";
+ }
+ handleRowCheckboxClick();
+ }
+
+ function twistInit(tableContainerId,twistImageName) {
+ var tableContainer = document.getElementById(tableContainerId);
+ var table = getTable(tableContainerId);
+ if (table.rows.length > numberOfHeaderRows) {
+ tableContainer.style.display = "none";
+ twist(tableContainerId, twistImageName);
+ }
+ else {
+ tableContainer.style.display = "";
+ twist(tableContainerId, twistImageName);
+ }
+ }
+
+ function addKeyValueToRow(row, key, value) {
+ var keyText = document.createTextNode(key);
+ var valueText = document.createTextNode(value);
+ var newCol = document.createElement("td");
+ var newCol2 = document.createElement("td");
+ newCol.appendChild(keyText);
+ newCol.className = "tablecells";
+ newCol2.appendChild(valueText);
+ newCol2.className = "tablecells";
+ row.appendChild(newCol);
+ row.appendChild(newCol2);
+ }
+
+ function clearTable(tableBody, numHeader) {
+ for(var i = numHeader; i < tableBody.rows.length; i++) {
+ tableBody.deleteRow(i);
+ i--;
+ }
+ }
+
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilframesets.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilframesets.jsp
new file mode 100644
index 000000000..382673f2b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/scripts/wsilframesets.jsp
@@ -0,0 +1,32 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:include page="/scripts/panes.jsp" flush="true"/>
+<script language="javascript">
+ function getActionsContainerFrameset()
+ {
+ return perspectiveContent.frames["<%=WsilFrameNames.WSIL_ACTIONS_CONTAINER%>"].document.getElementsByTagName("frameset").item(0);
+ }
+
+ function processFramesetSizes(framesetSizesForm)
+ {
+ toggleDoubleClickColumnTitle();
+ var perspectiveContentFrameset = getPerspectiveContentFrameset();
+ var actionsContainerFrameset = getActionsContainerFrameset();
+ framesetSizesForm.<%=WsilActionInputs.FRAMESET_COLS_PERSPECTIVE_CONTENT%>.value = perspectiveContentFrameset.cols;
+ framesetSizesForm.<%=WsilActionInputs.FRAMESET_ROWS_ACTIONS_CONTAINER%>.value = actionsContainerFrameset.rows;
+ framesetSizesForm.submit();
+ }
+</script>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiBusinessView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiBusinessView.jsp
new file mode 100644
index 000000000..e8b93b239
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiBusinessView.jsp
@@ -0,0 +1,157 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Vector,
+ java.util.Enumeration,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddBusinessToUDDIPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divUDDIBusinessList = "divUDDIBusinessList";
+ String xdivUDDIBusinessList = "xdivUDDIBusinessList";
+
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("VIEW_TITLE_UDDI_BUSINESSES")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+ </script>
+ <jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_business_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_LIST_UDDI_LINKS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsilPerspective.getMessage("FORM_LABEL_LIST_UDDI_BUSINESSES_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof WsilElement) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=WsilActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divUDDIBusinessList%>','<%=xdivUDDIBusinessList%>')"><img name="<%=xdivUDDIBusinessList%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_BUSINESS")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divUDDIBusinessList%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="wsilHandleCheckAllClick('<%=divUDDIBusinessList%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_ITEM_NUMBER")%></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_BUSINESS_NAME")%></th>
+ </tr>
+ <%
+ ListManager uddiLinks = ((WsilElement)selectedElement).getAllUDDILinks();
+ Enumeration e = uddiLinks.getListElements();
+ int itemNum = 1;
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ for (int i = 0; i < sortedVector.size(); i++) {
+ ListElement le = (ListElement)sortedVector.elementAt(i);
+ WsilUddiBusinessElement uddiLink = (WsilUddiBusinessElement)le.getObject();
+ String name = uddiLink.getName();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=ActionInputs.VIEWID%>" value="<%=le.getViewId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <%
+ if (name != null) {
+ %>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=String.valueOf(itemNum)%></a></td>
+ <td class="tablecells"><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=name%></a></td>
+ <%
+ }
+ else {
+ %>
+ <td class="tablecells" nowrap><%=String.valueOf(itemNum)%></td>
+ <td class="tablecells"><%=wsilPerspective.getMessage("FORM_LABEL_UNAVAILABLE_UDDI_BUSINESS")%>&nbsp;<%=uddiLink.getUDDILinkBusinessKey()%></td>
+ <%
+ }
+ %>
+ </tr>
+ <%
+ itemNum++;
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divUDDIBusinessList%>','<%=xdivUDDIBusinessList%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divUDDIBusinessList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddBusinessToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_FAVORITES")%>" onClick="setFormLocationAndSubmit('<%=divUDDIBusinessList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_REFRESH")%>" onClick="setFormLocationAndSubmit('<%=divUDDIBusinessList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RefreshAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+</div>
+
+<script language="javascript">
+ resumeProxyLoadPage();
+</script>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiServicesView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiServicesView.jsp
new file mode 100644
index 000000000..08548ec4b
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/UddiServicesView.jsp
@@ -0,0 +1,158 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Vector,
+ java.util.Enumeration,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddServiceToUDDIPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.RefreshAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divUDDIServiceList = "divUDDIServiceList";
+ String xdivUDDIServiceList = "xdivUDDIServiceList";
+
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("VIEW_TITLE_UDDI_SERVICES")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/resumeproxyloadpage.js"))%>">
+ </script>
+ <jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_UDDI_service_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_LIST_UDDI_SERVICES");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsilPerspective.getMessage("FORM_LABEL_LIST_UDDI_SERVICES_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+
+ <%
+ if (selectedElement instanceof WsilElement) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=WsilActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=20 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divUDDIServiceList%>','<%=xdivUDDIServiceList%>')"><img name="<%=xdivUDDIServiceList%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=20 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_SERVICE")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divUDDIServiceList%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="wsilHandleCheckAllClick('<%=divUDDIServiceList%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_ITEM_NUMBER")%></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_UDDI_SERVICE_NAME")%></th>
+ </tr>
+ <%
+ ListManager uddiServices = ((WsilElement)selectedElement).getAllUDDIServices();
+ Enumeration e = uddiServices.getListElements();
+ int itemNum = 1;
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ for (int i = 0; i < sortedVector.size(); i++) {
+ ListElement le = (ListElement)sortedVector.elementAt(i);
+ WsilUddiServiceElement uddiService = (WsilUddiServiceElement)le.getObject();
+ String name = uddiService.getName();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=ActionInputs.VIEWID%>" value="<%=le.getViewId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <%
+ if (name != null) {
+ %>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=String.valueOf(itemNum)%></a></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=name%></a></td>
+ <%
+ }
+ else {
+ %>
+ <td class="tablecells" nowrap><%=String.valueOf(itemNum)%></td>
+ <td class="tablecells" nowrap><%=wsilPerspective.getMessage("FORM_LABEL_UNAVAILABLE_UDDI_SERVICE")%>&nbsp;<%=uddiService.getUDDIServiceKey()%></td>
+ <%
+ }
+ %>
+ </tr>
+ <%
+ itemNum++;
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divUDDIServiceList%>','<%=xdivUDDIServiceList%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_UDDI_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divUDDIServiceList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddServiceToUDDIPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_FAVORITES")%>" onClick="setFormLocationAndSubmit('<%=divUDDIServiceList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_REFRESH")%>" onClick="setFormLocationAndSubmit('<%=divUDDIServiceList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(RefreshAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+</div>
+
+<script language="javascript">
+ resumeProxyLoadPage();
+</script>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsdlServicesView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsdlServicesView.jsp
new file mode 100644
index 000000000..0c29c75cb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsdlServicesView.jsp
@@ -0,0 +1,134 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Vector,
+ java.util.Enumeration,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.AddToFavoritesAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.WsilAddToWSDLPerspectiveAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divWSDLList = "divWSDLList";
+ String xdivWSDLList = "xdivWSDLList";
+
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("VIEW_TITLE_WSDL_SERVICES")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_WSDL_service_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_LIST_WSDL_SERVICES");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsilPerspective.getMessage("FORM_LABEL_LIST_WSDL_SERVICES_DESC")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof WsilElement) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=WsilActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divWSDLList%>','<%=xdivWSDLList%>')"><img name="<%=xdivWSDLList%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=25 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_WSDL_SERVICE")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divWSDLList%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="wsilHandleCheckAllClick('<%=divWSDLList%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_ITEM_NUMBER")%></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_URL")%></th>
+ </tr>
+ <%
+ ListManager wsdlServices = ((WsilElement)selectedElement).getAllWSDLServices();
+ Enumeration e = wsdlServices.getListElements();
+ int itemNum = 1;
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ for (int i = 0; i < sortedVector.size(); i++) {
+ ListElement le = (ListElement)sortedVector.elementAt(i);
+ WsilWsdlServiceElement wsdlService = (WsilWsdlServiceElement)le.getObject();
+ String wsdlURL = wsdlService.getWSDLServiceURL();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=ActionInputs.VIEWID%>" value="<%=le.getViewId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=String.valueOf(itemNum)%></a></td>
+ <td class="tablecells" nowrap><%=wsdlURL%></td>
+ </tr>
+ <%
+ itemNum++;
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divWSDLList%>','<%=xdivWSDLList%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_WSDL_PERSPECTIVE")%>" onClick="setFormLocationAndSubmit('<%=divWSDLList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(WsilAddToWSDLPerspectiveAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_FAVORITES")%>" onClick="setFormLocationAndSubmit('<%=divWSDLList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(AddToFavoritesAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsilLinksView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsilLinksView.jsp
new file mode 100644
index 000000000..925323beb
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/views/WsilLinksView.jsp
@@ -0,0 +1,130 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="java.util.Vector,
+ java.util.Enumeration,
+ org.eclipse.wst.ws.internal.explorer.platform.util.QuickSort,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.WSILPerspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.SelectWSILToolAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions.OpenWSILLinkAction,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ String divWSILList = "divWSILList";
+ String xdivWSILList = "xdivWSILList";
+
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ TreeElement selectedElement = selectedNode.getTreeElement();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("VIEW_TITLE_WSIL_LINKS")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <jsp:include page="/wsil/scripts/wsilTable.jsp" flush="true"/>
+ <jsp:include page="/wsil/scripts/wsilFormSubmit.jsp" flush="true"/>
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <%
+ String titleImagePath = "wsil/images/list_WSIL_highlighted.gif";
+ String title = wsilPerspective.getMessage("ALT_LIST_WSIL_LINKS");
+ %>
+ <%@ include file = "/forms/formheader.inc" %>
+ <table>
+ <tr>
+ <td class="labels">
+ <%=wsilPerspective.getMessage("FORM_LABEL_LIST_WSIL_LINKS")%>
+ </td>
+ </tr>
+ </table>
+ <form action="<%=response.encodeURL(controller.getPathWithContext(OpenWSILLinkAction.getBaseActionLink()))%>" method="post" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>" style="margin-top:10px;">
+ <%
+ if (selectedElement instanceof WsilElement) {
+ %>
+ <input type="hidden" name="<%=ActionInputs.NODEID%>" value="<%=selectedNode.getNodeId()%>">
+ <input type="hidden" name="<%=WsilActionInputs.MULTIPLE_LINK_ACTION%>" value="1">
+ <table border=0 cellpadding=6 cellspacing=0>
+ <tr>
+ <td height=25 valign="bottom" align="left" nowrap width=11>
+ <a href="javascript:twist('<%=divWSILList%>','<%=xdivWSILList%>')"><img name="<%=xdivWSILList%>" src="<%=response.encodeURL(controller.getPathWithContext("images/twistclosed.gif"))%>" alt="<%=controller.getMessage("ALT_TWIST_CLOSED")%>" class="twist"></a>
+ </td>
+ <td height=25 valign="bottom" align="left" nowrap class="labels">
+ <strong><%=wsilPerspective.getMessage("FORM_LABEL_WSIL_LINKS")%></strong>
+ </td>
+ </tr>
+ </table>
+
+ <table width="95%" border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td valign="top" height=10><img src="<%=response.encodeURL(controller.getPathWithContext("images/keyline.gif"))%>" height=2 width="100%"></td>
+ </tr>
+ </table>
+
+ <div id="<%=divWSILList%>">
+ <table width="95%" cellpadding=3 cellspacing=0 class="tableborder">
+ <tr>
+ <th class="checkboxcells" width=10><input type="checkbox" onClick="wsilHandleCheckAllClick('<%=divWSILList%>',this)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ALL_CHECK_BOX")%>"></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_ITEM_NUMBER")%></th>
+ <th class="headercolor"><%=wsilPerspective.getMessage("FORM_LABEL_URL")%></th>
+ </tr>
+ <%
+ ListManager wsilLinks = ((WsilElement)selectedElement).getAllWSILLinks();
+ Enumeration e = wsilLinks.getListElements();
+ int itemNum = 1;
+ Vector sortedVector = new Vector();
+ while (e.hasMoreElements()) {
+ sortedVector.add(e.nextElement());
+ }
+ QuickSort.sort(sortedVector);
+ for (int i = 0; i < sortedVector.size(); i++) {
+ ListElement le = (ListElement)sortedVector.elementAt(i);
+ WsilWsilLinkElement wsilLink = (WsilWsilLinkElement)le.getObject();
+ String url = wsilLink.getWSILLinkLocation();
+ %>
+ <tr>
+ <td class="checkboxcells" width=10><input type="checkbox" name="<%=ActionInputs.VIEWID%>" value="<%=le.getViewId()%>" onClick="validateCheckBoxInput(this, this.checked)" title="<%=controller.getMessage("FORM_CONTROL_TITLE_SELECT_ROW_CHECK_BOX")%>"></td>
+ <td class="tablecells" nowrap><a href="<%=response.encodeURL(controller.getPathWithContext(SelectWSILToolAction.getActionLink(selectedNode.getNodeId(), selectedNode.getToolManager().getSelectedToolId(), le.getViewId(), 0, false)))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><%=String.valueOf(itemNum)%></a></td>
+ <td class="tablecells" nowrap><%=url%></td>
+ </tr>
+ <%
+ itemNum++;
+ }
+ %>
+ </table>
+ </div>
+ <script language="javascript">
+ twistInit('<%=divWSILList%>','<%=xdivWSILList%>');
+ </script>
+
+ <table border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <td height=40 valign="bottom">
+ <input type="button" value="<%=wsilPerspective.getMessage("FORM_LABEL_ADD_TO_NAVIGATOR")%>" onClick="setFormLocationAndSubmit('<%=divWSILList%>', this.form, '<%=response.encodeURL(controller.getPathWithContext(OpenWSILLinkAction.getBaseActionLink()))%>')" class="button">
+ </td>
+ <td nowrap width="90%">&nbsp;</td>
+ </tr>
+ </table>
+
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_actions_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_actions_container.jsp
new file mode 100644
index 000000000..4acecc332
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_actions_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%></title>
+</head>
+<frameset rows="<%=wsilPerspective.getActionsContainerFramesetRows()%>" bgcolor="#ECE9D8">
+ <frame name="<%=WsilFrameNames.WSIL_PROPERTIES_CONTAINER%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%>" src="<%=response.encodeURL("wsil_properties_container.jsp")%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+ <frame name="<%=WsilFrameNames.WSIL_STATUS_CONTAINER%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%>" src="<%=response.encodeURL("wsil_status_container.jsp")%>" scrolling="no" frameborder=1 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_container.jsp
new file mode 100644
index 000000000..02ba26bce
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_container.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WsilFrameNames.WSIL_NAVIGATOR_TOOLBAR%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%>" src="<%=response.encodeURL("wsil_navigator_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WsilFrameNames.WSIL_NAVIGATOR_CONTENT%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%>" src="<%=response.encodeURL("wsil_navigator_content.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_content.jsp
new file mode 100644
index 000000000..1520d2b3d
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_content.jsp
@@ -0,0 +1,49 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/treeview.css"))%>">
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/browserdetect.js"))%>">
+ </script>
+ <script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/treeview.js"))%>">
+ </script>
+</head>
+<%
+ String selectedAnchorName = "";
+ NodeManager nodeManager = controller.getWSILPerspective().getNodeManager();
+ int focusedNodeId = nodeManager.getFocusedNodeId();
+ String focusedAnchorName = String.valueOf(focusedNodeId);
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ selectedAnchorName = selectedNode.getAnchorName();
+ if (focusedNodeId == selectedNode.getNodeId())
+ focusedAnchorName = selectedAnchorName;
+ }
+%>
+<body onLoad="self.location.hash='#<%=focusedAnchorName%>';setSelectedAnchorName('<%=selectedAnchorName%>')" class="contentbodymargin">
+ <div id="treecontentborder">
+ <%=nodeManager.renderTreeView(response)%>
+ </div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_toolbar.jsp
new file mode 100644
index 000000000..c769cd550
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_navigator_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_NAVIGATOR_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsil/scripts/wsilframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsil/actions/ResizeWSILFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WsilFrameNames.WSIL_NAVIGATOR_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsil/forms/ProcessWSILFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/navigator.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsilPerspective.getPerspectiveContentFramesetCols().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ else
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_NAVIGATOR")%></td>
+<%
+ String altRefresh = wsilPerspective.getMessage("ALT_REFRESH_WSIL");
+ String altClear = wsilPerspective.getMessage("ALT_CLEAR_WSIL");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsil/actions/RefreshActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/refresh_enabled.gif"))%>';mouseup(this)" alt="<%=altRefresh%>" title="<%=altRefresh%>"></a></td>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsil/actions/ClearWSILActionJSP.jsp"))%>" target="<%=FrameNames.PERSPECTIVE_WORKAREA%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_perspective_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_perspective_content.jsp
new file mode 100644
index 000000000..e7a42ddda
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_perspective_content.jsp
@@ -0,0 +1,28 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<frameset cols="<%=wsilPerspective.getPerspectiveContentFramesetCols()%>" bgcolor="#ECE9D8">
+ <frame name="<%=WsilFrameNames.WSIL_NAVIGATOR_CONTAINER%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_NAVIGATOR_CONTAINER")%>" src="<%=response.encodeURL("wsil_navigator_container.jsp")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+ <frame name="<%=WsilFrameNames.WSIL_ACTIONS_CONTAINER%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_ACTIONS_CONTAINER")%>" src="<%=response.encodeURL("wsil_actions_container.jsp")%>" marginwidth=0 marginheight=0 scrolling="no" frameborder=1>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_container.jsp
new file mode 100644
index 000000000..b336e546c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WsilFrameNames.WSIL_PROPERTIES_TOOLBAR%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%>" src="<%=response.encodeURL("wsil_properties_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WsilFrameNames.WSIL_PROPERTIES_CONTENT%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%>" src="<%=response.encodeURL("wsil_properties_content.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_content.jsp
new file mode 100644
index 000000000..ee74a031c
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_content.jsp
@@ -0,0 +1,73 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+<%
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null)
+ {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ Tool selectedTool = toolManager.getSelectedTool();
+ if (selectedTool != null && selectedTool.getToolType() != ToolTypes.ACTION) {
+ %>
+ <script language="javascript">
+ location="<%=response.encodeURL(controller.getPathWithContext(selectedTool.getFormLink()))%>";
+ </script>
+ <%
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_ACTION_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+ }
+ else {
+ %>
+<table>
+ <tr>
+ <td>
+ <%=controller.getMessage("MSG_ERROR_NO_NODE_SELECTED")%>
+ </td>
+ </tr>
+</table>
+ <%
+ }
+%>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_toolbar.jsp
new file mode 100644
index 000000000..7e8762ff5
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_properties_toolbar.jsp
@@ -0,0 +1,81 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_PROPERTIES_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsil/scripts/wsilframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsil/actions/ResizeWSILFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WsilFrameNames.WSIL_PROPERTIES_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsil/forms/ProcessWSILFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/actions.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsilPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (wsilPerspective.getActionsContainerFramesetRows().startsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_ACTIONS")%></td>
+<%
+ NodeManager nodeManager = wsilPerspective.getNodeManager();
+ Node selectedNode = nodeManager.getSelectedNode();
+ if (selectedNode != null) {
+ ToolManager toolManager;
+ if (selectedNode.getViewId() == ActionInputs.VIEWID_DEFAULT)
+ toolManager = selectedNode.getToolManager();
+ else
+ toolManager = selectedNode.getViewToolManager();
+ for(int i=0; i<toolManager.getNumberOfTools(); i++) {
+ Tool tool = (Tool)toolManager.getTool(i);
+ %>
+ <td valign="middle" align="center" width=25 height=25><%=tool.renderTool(response,controller)%></td>
+ <%
+ }
+ }
+%>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_container.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_container.jsp
new file mode 100644
index 000000000..e0834c5c7
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_container.jsp
@@ -0,0 +1,29 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_CONTAINER")%></title>
+</head>
+<frameset rows="33,*" border=0 bgcolor="#ECE9D8">
+ <frame name="<%=WsilFrameNames.WSIL_STATUS_TOOLBAR%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%>" src="<%=response.encodeURL("wsil_status_toolbar.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+ <frame name="<%=WsilFrameNames.WSIL_STATUS_CONTENT%>" title="<%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%>" src="<%=response.encodeURL("wsil_status_content.jsp")%>" noresize scrolling="no" frameborder=0 marginwidth=0 marginheight=0>
+</frameset>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_content.jsp
new file mode 100644
index 000000000..d1b719935
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_content.jsp
@@ -0,0 +1,38 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_CONTENT")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/windows.css"))%>">
+</head>
+<body class="contentbodymargin">
+<div id="contentborder">
+ <table>
+ <tr>
+ <td>
+ <pre>
+<%=wsilPerspective.getMessageQueue().getMessagesFromList()%>
+ </pre>
+ </td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_toolbar.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_toolbar.jsp
new file mode 100644
index 000000000..ce2d4ee35
--- /dev/null
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsil/wsil_status_toolbar.jsp
@@ -0,0 +1,66 @@
+<%
+/*******************************************************************************
+ * Copyright (c) 2001, 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
+ *******************************************************************************/
+%>
+<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective.*,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants.*" %>
+
+<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
+<%
+ WSILPerspective wsilPerspective = controller.getWSILPerspective();
+%>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><%=wsilPerspective.getMessage("FRAME_TITLE_STATUS_TOOLBAR")%></title>
+ <link rel="stylesheet" type="text/css" href="<%=response.encodeURL(controller.getPathWithContext("css/toolbar.css"))%>">
+<jsp:include page="/wsil/scripts/wsilframesets.jsp" flush="true"/>
+<script language="javascript" src="<%=response.encodeURL(controller.getPathWithContext("scripts/toolbar.js"))%>">
+</script>
+</head>
+<body class="toolbarbodymargin">
+<div id="toolbarborder">
+ <div id="toolbar" ondblclick="processFramesetSizes(document.forms[0])">
+<jsp:useBean id="formAction" class="java.lang.StringBuffer" scope="request">
+<%
+ formAction.append("wsil/actions/ResizeWSILFramesActionJSP.jsp");
+%>
+</jsp:useBean>
+<jsp:useBean id="formFrameName" class="java.lang.StringBuffer" scope="request">
+<%
+ formFrameName.append(WsilFrameNames.WSIL_STATUS_CONTAINER);
+%>
+</jsp:useBean>
+<jsp:include page="/wsil/forms/ProcessWSILFramesetsForm.jsp" flush="true"/>
+ <table width="100%" height=25 cellpadding=0 cellspacing=0 border=0>
+ <tr>
+ <td valign="middle" align="center" width=25 height=25><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/status.gif"))%>" width=16 height=16></td>
+<%
+ String doubleClickColumnTitle = null;
+ if (wsilPerspective.getPerspectiveContentFramesetCols().endsWith("100%"))
+ {
+ if (wsilPerspective.getActionsContainerFramesetRows().endsWith("100%"))
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_RESTORE");
+ }
+ if (doubleClickColumnTitle == null)
+ doubleClickColumnTitle = controller.getMessage("ALT_DOUBLE_CLICK_TO_MAXIMIZE");
+%>
+ <td id="doubleclickcolumn" title="<%=doubleClickColumnTitle%>" valign="middle" align="left" width="*" height=25 nowrap class="text"><%=controller.getMessage("ALT_STATUS")%></td>
+<%
+ String altClear = controller.getMessage("ALT_CLEAR");
+%>
+ <td valign="middle" align="center" width=25 height=25><a href="<%=response.encodeURL(controller.getPathWithContext("wsil/wsil_status_content.jsp"))%>" target="<%=WsilFrameNames.WSIL_STATUS_CONTENT%>"><img class="normal" src="<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>" width=16 height=16 onMouseOver="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mouseover(this)" onMouseOut="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseout(this)" onMouseDown="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_highlighted.gif"))%>';mousedown(this)" onMouseUp="src='<%=response.encodeURL(controller.getPathWithContext("images/clear_enabled.gif"))%>';mouseup(this)" alt="<%=altClear%>" title="<%=altClear%>"></a></td>
+ </tr>
+ </table>
+ </div>
+</div>
+</body>
+</html>

Back to the top