diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java')
-rw-r--r-- | bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java deleted file mode 100644 index 269113fea8..0000000000 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.xml.ui.internal.nsedit; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.wst.xml.core.internal.XMLCorePlugin; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; -import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry; -import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog; -import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo; - - - -public class CommonAddNamespacesDialog extends Dialog { - protected CommonAddNamespacesControl addNamespacesControl; - protected List existingNamespaces; - protected List namespaceInfoList; - protected Button okButton; - protected HashMap preferredPrefixTable = new HashMap(); - protected IPath resourceLocation; - protected String title; - - public CommonAddNamespacesDialog(Shell parentShell, String title, IPath resourceLocation, List existingNamespaces) { - super(parentShell); - this.resourceLocation = resourceLocation; - setShellStyle(getShellStyle() | SWT.RESIZE); - this.title = title; - this.existingNamespaces = existingNamespaces; - preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/", "wsdl"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/soap/", "soap"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/http/", "http"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/mime/", "mime"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://schemas.xmlsoap.org/soap/encoding/", "soapenc"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://schemas.xmlsoap.org/soap/envelope/", "soapenv"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://www.w3.org/2001/XMLSchema-instance", "xsi"); //$NON-NLS-1$ //$NON-NLS-2$ - preferredPrefixTable.put("http://www.w3.org/2001/XMLSchema", "xsd"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - protected void addBuiltInNamespaces(List list) { - String xsiNamespace = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$ - String xsdNamespace = "http://www.w3.org/2001/XMLSchema"; //$NON-NLS-1$ - if (!isAlreadyDeclared(xsiNamespace)) { - list.add(new NamespaceInfo("http://www.w3.org/2001/XMLSchema-instance", "xsi", null)); //$NON-NLS-1$ //$NON-NLS-2$ - } - if (!isAlreadyDeclared(xsdNamespace)) { - list.add(new NamespaceInfo("http://www.w3.org/2001/XMLSchema", "xsd", null)); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - - protected void addCatalogMapToList(ICatalog catalog, List list) { - ICatalogEntry[] entries = catalog.getCatalogEntries(); - for (int i = 0; i < entries.length; i++) { - ICatalogEntry entry = entries[i]; - if ((entry.getEntryType() == ICatalogEntry.ENTRY_TYPE_PUBLIC) && entry.getURI().endsWith(".xsd")) { //$NON-NLS-1$ - if (!isAlreadyDeclared(entry.getKey())) { - NamespaceInfo namespaceInfo = new NamespaceInfo(entry.getKey(), "xx", null); //$NON-NLS-1$ - list.add(namespaceInfo); - } - } - } - } - - protected void buttonPressed(int buttonId) { - if (buttonId == IDialogConstants.OK_ID) { - namespaceInfoList = addNamespacesControl.getNamespaceInfoList(); - } - super.buttonPressed(buttonId); - } - - public void computeAddablePrefixes(List addableList, List exisitingList) { - HashMap map = new HashMap(); - for (Iterator i = exisitingList.iterator(); i.hasNext();) { - NamespaceInfo info = (NamespaceInfo) i.next(); - if (info.prefix != null) { - map.put(info.prefix, info); - } - } - for (Iterator i = addableList.iterator(); i.hasNext();) { - NamespaceInfo info = (NamespaceInfo) i.next(); - if (info.uri != null) { - String prefix = (String) preferredPrefixTable.get(info.uri); - info.prefix = getUniquePrefix(map, prefix, info.uri); - map.put(info.prefix, info); - } - } - } - - public int createAndOpen() { - create(); - getShell().setText(title); - Rectangle r = getShell().getBounds(); - getShell().setBounds(r.x + 80, r.y + 80, r.width, r.height); - setBlockOnOpen(true); - return open(); - } - - protected void createButtonsForButtonBar(Composite parent) { - okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); - createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); - } - - protected Control createContents(Composite parent) { - Control control = super.createContents(parent); - return control; - } - - - - protected Control createDialogArea(Composite parent) { - Composite dialogArea = (Composite) super.createDialogArea(parent); - addNamespacesControl = new CommonAddNamespacesControl(dialogArea, SWT.NONE, resourceLocation); - List list = new ArrayList(); - - addBuiltInNamespaces(list); - ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog(); - INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs(); - for (int i = 0; i < nextCatalogs.length; i++) { - INextCatalog catalog = nextCatalogs[i]; - ICatalog referencedCatalog = catalog.getReferencedCatalog(); - if (referencedCatalog != null) { - if (XMLCorePlugin.USER_CATALOG_ID.equals(referencedCatalog.getId())) { - ICatalog userCatalog = referencedCatalog; - addCatalogMapToList(userCatalog, list); - - } - else if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId())) { - ICatalog systemCatalog = referencedCatalog; - addCatalogMapToList(systemCatalog, list); - } - } - } - - computeAddablePrefixes(list, existingNamespaces); - - addNamespacesControl.setNamespaceInfoList(list); - return dialogArea; - } - - public List getNamespaceInfoList() { - return namespaceInfoList; - } - - protected String getPreferredPrefix(String namespaceURI) { - return (String) preferredPrefixTable.get(namespaceURI); - } - - private String getUniquePrefix(HashMap prefixMap, String prefix, String uri) { - if (prefix == null) { - int lastIndex = uri.lastIndexOf('/'); - if (lastIndex == uri.length() - 1) { - uri = uri.substring(0, lastIndex); - lastIndex = uri.lastIndexOf('/'); - } - prefix = uri.substring(lastIndex + 1); - if ((prefix.length() > 20) || (prefix.indexOf(':') != -1)) { - prefix = null; - } - } - if (prefix == null) { - prefix = "p"; //$NON-NLS-1$ - } - if (prefixMap.get(prefix) != null) { - String base = prefix; - for (int count = 0; prefixMap.get(prefix) != null; count++) { - prefix = base + count; - } - } - return prefix; - } - - protected boolean isAlreadyDeclared(String namespaceURI) { - boolean result = false; - for (Iterator i = existingNamespaces.iterator(); i.hasNext();) { - NamespaceInfo namespaceInfo = (NamespaceInfo) i.next(); - if (namespaceURI.equals(namespaceInfo.uri)) { - result = true; - break; - } - } - return result; - } -} |